Commit Graph

65 Commits

Author SHA1 Message Date
bklronin d7ebbf45d5 feat: add CLI logging for debugging
- Add logging module with DEBUG level
- Log MainWindow initialization
- Log Viewer3DWidget initialization and mesh operations
- Log mouse events in Sketch2DWidget
- Log extrude operations with detailed steps
- Log component and sketch management
2026-03-14 09:01:20 +01:00
bklronin daed79dac6 chore: update .gitignore and remove pycache from tracking 2026-03-14 08:59:25 +01:00
bklronin e13769840b fix: ensure renderer is initialized before operations
- Add _ensure_initialized() method to Viewer3DWidget
- Queue pending meshes until widget is shown
- Add remove_mesh() method to PygfxRenderer
- Fix all viewer methods to check initialization
2026-03-14 08:59:12 +01:00
bklronin 5371bf7c38 fix: implement custom compute_normals for pygfx
pygfx doesn't have a compute_normals function, so we implement
our own vertex normal computation from positions and face indices.
2026-03-14 08:57:52 +01:00
bklronin bf00310889 feat: implement full GUI with all features from old codebase
- Main window with left/center/right panel layout
- 2D sketch widget with drawing tools (line, rectangle, circle)
- Constraint tools (coincident, horizontal, vertical, distance, midpoint)
- Snapping system (point, midpoint, horizontal, vertical, angle, grid)
- 3D viewer widget using pygfx
- Component timeline with buttons
- Sketch and body list management
- Operations (extrude, cut, combine, revolve)
- Workplane tools (origin, face, flip, move)
- Export functionality (STEP, IGES, STL)
- Import STEP/IGES files
- Code tab for CadQuery scripting
2026-03-14 08:56:13 +01:00
bklronin 8c6a413137 fix: correct OCP API usage for mesh, bounding box, and volume
- Fix BRep_Tool.Triangulation_s to use TopoDS.Face_s for face casting
- Fix BRepBndLib.AddClose_s import and usage
- Fix BRepGProp.VolumeProperties_s and SurfaceProperties_s imports
- Fix _get_shape to handle Workplane objects stored in shape attribute
- Fix OCCSketchEntity to properly inherit from SketchEntity
- Update pyproject.toml dependency versions
2026-03-14 08:52:45 +01:00
bklronin fe23ca610c feat: Replace SDF kernel with OpenCASCADE, VTK with pygfx
Major architecture migration:

- Remove SDF-based geometry kernel (sdf/)
- Remove VTK renderer (drawing_modules/)
- Remove old mesh modules (mesh_modules/)

New components:
- geometry/base.py: Abstract geometry kernel interface
- geometry_occ/kernel.py: OpenCASCADE implementation via CadQuery/OCP
- geometry_occ/sketch.py: 2D sketching with constraint solving
- rendering/base.py: Abstract renderer interface
- rendering/pygfx_renderer.py: WebGPU-based renderer
- models/data_model.py: Project, Component, Sketch, Body classes
- main.py: New Qt-based application

Features:
- STEP/IGES import/export
- Exact BRep geometry (vs approximate SDF mesh)
- Parametric sketching with constraints
- Boolean operations (union, difference, intersection)
- Fillet and chamfer operations
- Modern pygfx renderer (~30MB vs VTK ~200MB)

Dependencies:
- cadquery >= 2.4
- ocp >= 7.9.3
- pygfx >= 0.7.0
- wgpu >= 0.19.0
- PySide6 >= 6.9.0
2026-03-14 08:45:07 +01:00
bklronin d6044e551a - Improved sketching 2025-11-16 17:48:05 +01:00
bklronin 11d053fda4 Fix sketcher mode handling to prevent unintended line creation during drag operations
Major changes:
- Fixed right-click handler to directly set mode to NONE instead of relying on main app signal handling
- Added safety checks in left-click handler to prevent drawing when no draggable point is found in NONE mode
- Enhanced mode compatibility by treating Python None as SketchMode.NONE in set_mode() method
- Added comprehensive debug logging for mode changes and interaction state tracking
- Resolved integration issue where persistent constraint modes were prematurely reset by main app
- Ensured point dragging is only enabled in NONE mode, preventing accidental polyline creation

This fixes the reported issue where deactivating the line tool would still create lines when dragging,
and ensures proper mode transitions between drawing tools and selection/drag mode.
2025-08-16 22:30:18 +02:00
bklronin 54261bb8fd - added sdf folder ( doesnt work via pip or git=) 2025-08-16 20:33:44 +02:00
bklronin d373b50644 - added screenshot 2025-06-01 10:08:35 +02:00
BKLronin 0a9d557ce0 Merge pull request 'structure' (#7) from structure into master
Reviewed-on: BKLronin/fluency#7
2025-06-01 10:05:29 +02:00
bklronin c1911e3fac - added MIT license 2025-06-01 10:00:12 +02:00
bklronin 6cf70b9ae2 - Fixed redraw when component changed 2025-04-13 16:40:54 +02:00
bklronin 4d7b2cdbad - Added enabling of midpsnap and prepared others
- Show dimesnion on hover
2025-03-29 22:36:11 +01:00
bklronin f26a596159 - Added contrain displayed next to line
- Slight change to point check from solver.
2025-03-28 21:17:19 +01:00
bklronin 2a7f718b3e - Added construction lines switching
- Moved callbacks into sketchwidget from main.
- Changed reset on right click
2025-02-16 22:00:59 +01:00
bklronin 878b6093b7 - Added new buttons and settings 2025-01-02 19:28:43 +01:00
BKLronin 15cc30edac Merge pull request 'structure' (#6) from structure into master
Reviewed-on: BKLronin/fluency#6
2025-01-02 19:20:35 +01:00
bklronin 3e88e41e4b - Added new buttons and settings 2025-01-02 14:39:36 +01:00
bklronin e9383f76a2 - delete sketch working
- added mid point snap
- added hovering line with distance
2025-01-01 21:35:43 +01:00
bklronin f5861b8bd1 - Drawing bodys depending on the selected compo
- Cut working
- Edit sketch working
2024-12-31 23:48:20 +01:00
bklronin 601121dc15 - changing compos including sketches and bodies 2024-12-31 17:21:56 +01:00
bklronin 6c8462a7f3 - changing compos for sketches works 2024-12-31 14:34:41 +01:00
bklronin 8530f6f8b9 - Added new componnt controls 2024-12-31 00:36:26 +01:00
bklronin 6ef88925b1 - Added new componnt controls 2024-12-31 00:33:30 +01:00
bklronin d75d59f311 - Sketch projection partly works again :) 2024-12-30 20:12:46 +01:00
bklronin 842799b35f - Sketch projection partly works again :) 2024-12-30 13:54:15 +01:00
bklronin a5202e1630 - Basic oop sketch widget implement 2024-10-26 18:02:06 +02:00
bklronin 79c1aa106f -Changed multi layer render
- added ignore
- prepraed sketchwidget
2024-10-26 14:40:58 +02:00
bklronin d86e108552 - Updated requirements.txt 2024-08-16 22:18:39 +02:00
bklronin 511b5da78a - Bsic sketch to object approach 2024-08-16 20:21:21 +02:00
bklronin b80185e93e - Bsic sketch to object approach 2024-07-28 13:46:55 +02:00
bklronin cebe1b41e7 - UI update sketch and body to the sides 2024-07-24 08:39:39 +02:00
bklronin e3a8d55850 - intial transit 2024-07-23 15:25:50 +02:00
bklronin df336aaea7 Layered rendering
inverted interactor
Befrore fork
2024-07-18 20:42:01 +02:00
bklronin a8d15d7b4b Fixed interactor
Added proj lines selected
2024-07-17 16:53:25 +02:00
bklronin 048ace83ce - Projection and extrusion fixed again 2024-07-16 20:11:24 +02:00
bklronin c6f48a6e78 - Fixed 2d sketch with transfrom 2024-07-16 18:02:27 +02:00
bklronin 0c3e4eeb5e - Sketch projection and extrude in place working 2024-07-13 13:46:13 +02:00
bklronin d2b8d9540a - Working project and draw on exiting 2024-07-11 20:16:20 +02:00
bklronin cb471b4108 - More projection and extrusion in place 2024-07-10 23:19:43 +02:00
bklronin b5c965bf2e - Basic 2D projection 2024-07-09 15:45:34 +02:00
bklronin 5ff48c0f5e - Basic 2D projection 2024-07-08 22:14:25 +02:00
bklronin 9daf263aad - Implemented vtk base for viewing 2024-07-04 22:58:52 +02:00
bklronin fcabe449f8 - Re enebaled mesh generation
- fixed line tool right button break line
- implemented main buffer for pt-line distance
2024-07-01 13:34:42 +02:00
bklronin e9098108d2 - Transition to functions for entity retrieval 2024-06-28 22:52:23 +02:00
bklronin 24e4d1028b - Added püoint to line incl detection
- Added draggable points
- added fhunctions for solv retreival
2024-06-28 14:22:27 +02:00
bklronin e10e26565e - Added distance and quadrant
- added line distance to drawn lines
2024-06-26 18:16:56 +02:00
bklronin 3e85a11787 - Added distance and quadrant
- added line distance to drawn lines
2024-06-26 17:42:13 +02:00