
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
Property | Description | Use Case |
---|---|---|
Length | Precise curve measurement | Manufacturing specifications |
Type | Curve classification (Arc, Line, NURBS, etc.) | Design documentation |
Closed/Planar | Topological properties | Quality control validation |
Bounding Box | Spatial dimensions (Width/Height/Depth) | Layout planning |
Area | Surface area for closed planar curves | Material calculations |
Validity | Geometric integrity checking | Error 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.