How towareesh/intersectioncurve works
IntersectionCurve is a Fusion 360 add-in for batch creation of intersection curves. The user selects one target and multiple intersectors, runs the command, and receives created-sketch and curve counts plus skips or errors. The sampled execution path validates selections, runs the use case inside a Fusion transaction, reports progress, intersects each item, groups created sketches, and displays a summary. The graph also includes profiling and shared event/logging utilities. Some subsystem links come from the source index or README; unsampled implementations are not treated as inspected.
Main entry points: use_cases.py Batch use case · execute.py Execute handler · fusion_geometry.py Geometry adapter · command_created.py Command setup
Components 22
Command UI
- Add-in entry
IntersectionCurve.py - Command registration
commands/intersectionCurves/entry.py - Command setup
commands/intersectionCurves/command_created.py - Selection inputs
commands/intersectionCurves/inputs.py - Execute handler
commands/intersectionCurves/execute.py
Intersection Core
- Batch use case
lib/intersectionCurves/application/use_cases.py - Domain DTOs
lib/intersectionCurves/domain/models.py - Domain errors
lib/intersectionCurves/domain/errors.py - Geometry contract
lib/intersectionCurves/ports/geometry.py - Logger contract
lib/intersectionCurves/ports/logger.py - Progress contract
lib/intersectionCurves/ports/progress.py - Transaction contract
lib/intersectionCurves/ports/transaction.py
Fusion Adapters
- Selection adapter
lib/intersectionCurves/adapters/fusion_selection.py - Geometry adapter
lib/intersectionCurves/adapters/fusion_geometry.py - Fusion logger
lib/intersectionCurves/adapters/fusion_logger.py - Progress adapter
lib/intersectionCurves/adapters/fusion_progress.py - Transaction adapter
lib/intersectionCurves/adapters/fusion_transaction.py
Runtime Support
- Profiling
lib/intersectionCurves/infrastructure/profiler.py - Callflow tracing
lib/intersectionCurves/infrastructure/callflow_profiler.py - Event utilities
lib/fusionAddInUtils/event_utils.py - General utilities
lib/fusionAddInUtils/general_utils.py
Other components
- Fusion user
Connections 28
- Fusion user → Command registration: runs command
readme.md - Add-in entry → Command registration: starts
IntersectionCurve.py - Command registration → Command setup: registers handler
commands/intersectionCurves/entry.py - Command setup → Selection inputs: defines inputs
commands/intersectionCurves/command_created.py - Command setup → Execute handler: registers handler
commands/intersectionCurves/command_created.py - Execute handler → Selection adapter: reads selections
commands/intersectionCurves/execute.py - Execute handler → Batch use case: runs
commands/intersectionCurves/execute.py - Execute handler → Geometry adapter: constructs
commands/intersectionCurves/execute.py - Execute handler → Fusion logger: constructs
commands/intersectionCurves/execute.py - Execute handler → Progress adapter: constructs
commands/intersectionCurves/execute.py - Execute handler → Transaction adapter: constructs
commands/intersectionCurves/execute.py - Execute handler → Profiling: starts and stops
commands/intersectionCurves/execute.py - Execute handler → Callflow tracing: starts and stops
commands/intersectionCurves/execute.py - Batch use case → Geometry adapter: intersects and groups
lib/intersectionCurves/application/use_cases.py - Batch use case → Transaction adapter: begins and commits
lib/intersectionCurves/application/use_cases.py - Batch use case → Progress adapter: checks and reports
lib/intersectionCurves/application/use_cases.py - Batch use case → Domain DTOs: builds report
lib/intersectionCurves/application/use_cases.py - Batch use case → Domain errors: handles errors
lib/intersectionCurves/application/use_cases.py - Batch use case → Geometry contract: depends on contract
lib/intersectionCurves/application/use_cases.py - Batch use case → Logger contract: depends on contract
lib/intersectionCurves/application/use_cases.py - Batch use case → Progress contract: depends on contract
lib/intersectionCurves/application/use_cases.py - Batch use case → Transaction contract: depends on contract
lib/intersectionCurves/application/use_cases.py - Selection adapter → Domain DTOs: converts selections
lib/intersectionCurves/adapters/fusion_selection.py - Selection adapter → Domain errors: raises validation
lib/intersectionCurves/adapters/fusion_selection.py - Geometry adapter → Domain DTOs: returns curve data
lib/intersectionCurves/adapters/fusion_geometry.py - Geometry adapter → Domain errors: raises geometry errors
lib/intersectionCurves/adapters/fusion_geometry.py - Geometry adapter → Logger contract: logs events
lib/intersectionCurves/adapters/fusion_geometry.py - Event utilities → General utilities: handles errors
lib/fusionAddInUtils/event_utils.py