GeometryAnalyzer

A Rhino plugin for analyzing curve geometry properties with exportable results. This project demonstrates fundamental concepts in Rhino plugin development, packaging, and cross-platform distribution.

GeometryAnalyzer

A Rhino plugin that analyzes curve geometry properties and exports results to CSV. Built as a learning project to demonstrate plugin architecture, RhinoCommon API usage, cross-platform UI development, and modern .NET packaging for CAD applications.

Curve Analysis

Comprehensive analysis of curve properties including length, type, validity, and geometric characteristics

Educational Project

Demonstrates Rhino plugin development fundamentals, from basic commands to UI creation and packaging

Export Capabilities

Generate standardized CSV reports for integration with spreadsheet workflows and documentation

Cross-Platform

Built for Rhino 8 with .NET 8.0, supporting both macOS and Windows environments

Key Features

📏 Geometry Analysis

  • Curve length, type identification, and validity checking
  • Bounding box dimensions and area calculation for closed curves
  • NURBS-specific data (degree, spans, control points)
  • Real-time property evaluation

📊 Results Interface

  • Grid-based results dialog with sortable columns
  • Clear visualization of curve properties
  • Selection highlighting and data export
  • Professional UI built with Eto.Forms

💾 Data Export

  • CSV export functionality for external analysis
  • Structured data format for spreadsheet integration
  • Batch processing of multiple curves
  • Error handling and validation reporting

Technology Stack

  • Language: C# with .NET 8.0
  • Framework: RhinoCommon API
  • UI: Eto.Forms (cross-platform)
  • Packaging: Yak Package Manager
  • Platform: Rhino 8 (macOS tested, Windows compatible)

Analysis Properties

PropertyDescriptionUse Case
LengthPrecise curve measurementManufacturing specifications
TypeCurve classification (Arc, Line, NURBS, etc.)Design documentation
Closed/PlanarTopological propertiesQuality control validation
Bounding BoxSpatial dimensions (Width/Height/Depth)Layout planning
AreaSurface area for closed planar curvesMaterial calculations
ValidityGeometric integrity checkingError detection

Development Approach

🏗️ Plugin Architecture

  • Command-based structure following Rhino conventions
  • Separation of concerns (Analysis/UI/Commands)
  • Extensible design for additional geometry types
  • Error handling and user feedback

🎨 Cross-Platform UI

  • Native look and feel on each platform
  • Responsive layout with proper sizing
  • Keyboard shortcuts and accessibility features
  • Professional data grid presentation

📦 Modern Packaging

  • Yak package manager integration
  • Automated build process with shell scripts
  • Version control and dependency management
  • Installation via PackageManager command

Potential Applications

  • CAD Quality Control: Validate curve properties before manufacturing
  • Design Documentation: Generate standardized geometry reports
  • Educational Tool: Learn curve mathematics and CAD concepts
  • Batch Processing: Analyze multiple design elements simultaneously

Made With

  • Plugin development best practices
  • Cross-platform compatibility focus
  • Clean, maintainable code structure
  • Comprehensive documentation

Learning Project

GeometryAnalyzer serves as a foundation for understanding Rhino plugin development. The project demonstrates essential concepts including RhinoCommon API usage, Eto.Forms UI development, package management, and cross-platform deployment strategies.

Visit github.com/dmc2015/GeometryAnalyzer to explore the implementation.