BasAutomation.Geometry 1.0.0

dotnet add package BasAutomation.Geometry --version 1.0.0
                    
NuGet\Install-Package BasAutomation.Geometry -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BasAutomation.Geometry" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BasAutomation.Geometry" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="BasAutomation.Geometry" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BasAutomation.Geometry --version 1.0.0
                    
#r "nuget: BasAutomation.Geometry, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BasAutomation.Geometry@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BasAutomation.Geometry&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=BasAutomation.Geometry&version=1.0.0
                    
Install as a Cake Tool

BasAutomation.Geometry

A small, dependency-free 2D/3D computational geometry library for .NET.

It provides the plain-managed geometry primitives — no CAD kernel, no COM, no native dependencies — that sit underneath the BasAutomation Inventor add-ins and the transient-BRep beam blog series.

Install

dotnet add package BasAutomation.Geometry

What's in it

  • CorePoint2D / Point3D, Vector2D / Vector3D, Matrix2D / Matrix3D, Plane3D, Box2D / Box3D, OrientedBox3D, Rectangle2D, miter-plane math
  • CurvesLine2D / Line3D, Arc2D / Arc3D, Circle2D / Circle3D, Ellipse2D / Ellipse3D, behind ICurve2D / ICurve3D, plus Path3D, contour offsetting, and curve ordering/intersection helpers
  • Surfaces — swept-surface construction from profile curves: cylinder, cone and torus sweeps, a line-sweep classifier (radial/tangential/tilted), and an exact rational B-spline sweep for elliptical profiles
  • Coordinate systemsCoordinateSystem2D / CoordinateSystem3D transforms, face-aligned frames, rigid-motion fitting, orientation following
  • Ray castingRay3D and intersection utilities
  • Validation — cross-section validation with structured issues

Everything targets net8.0 and has zero package dependencies.

Example

using BasAutomation.Geometry;

var start = new Point3D(0, 0, 0);
var end   = new Point3D(10, 0, 0);

var dir = (end - start).Normalized();       // Vector3D
var arc = new Arc3D(/* centre, normal, radius, angles */);

bool ccw = arc.IsCounterClockwise;

Note for CAD interop

This library is intentionally CAD-kernel independent. When you use it to drive Autodesk Inventor's TransientGeometry / TransientBRep API, you convert these managed primitives into Inventor's COM types at the boundary (a thin Point3D → Inventor.Point style bridge). The library itself has no Inventor reference, so it stays usable in tests, services, and non-CAD contexts.

License

MIT © Bas Nederveen — Bas Automation Services

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 51 8/20/2026