Skip to content

A fork of the NeoGeoSolver.NET repo meant to be used in Grasshopper 2.0

License

Notifications You must be signed in to change notification settings

DavidRutten/NeoGeoSolverForGrasshopper

Repository files navigation

NeoGeoSolver

This project provdes a geometric constraint solver as a set of reusable C# components.

Prerequisites

  • .NET 7

Getting started

$ git clone https://github.com/TrevorDArcyEvans/NeoGeoSolver.NET.git
$ cd NeoGeoSolver.NET
$ dotnet restore
$ dotnet build
$ dotnet test

Supported constraints

  • arc circ concentric
  • arcs concentric
  • points coincident
  • points distance
  • points horizontal
  • points vertical
  • point on circle
  • point to line distance
  • circle diameter
  • circles equal diameter
  • line length
  • lines equal length
  • line tangent to circle
  • angle (between two lines)
  • line horizontal
  • line vertical
  • lines parallel
  • lines perpendicular

Unsupported constraints

  • arc circ equal radius
  • collinear lines
  • point on arc
  • arc radius
  • arcs equal radius
  • point to point vertical distance
  • point to point horizontal distance
  • point to line vertical distance
  • point to line horizontal distance
  • concentric arcs
    • use points coincident
  • concentric circles
    • use points coincident
  • concentric circ arc
    • use points coincident

Further work

  • change arc definition to centre-radius-start_angle-end_angle
  • implement unsupported constraints
  • remove unused constraints
    • tangent (use line-entity distance with zero distance)
    • point on (use point-entity distance with zero distance)
    • equal value (might be useful?)
    • points angle
  • remove unused entities
    • function (no docs + not normally used in CAD)
    • spline (no docs + not normally used in CAD)
    • ellipse + ellipsearc (not normally used in CAD)
  • more unit tests for solver
    • multiple constraints
  • portable UI aka test harness

Further information

Acknowledgements

This repository was forked from BimCAD which in turn was forked from NoteCAD.

About

A fork of the NeoGeoSolver.NET repo meant to be used in Grasshopper 2.0

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 93.4%
  • HTML 4.9%
  • CSS 1.2%
  • Dockerfile 0.5%