bklronin
d52106a48a
fix: update pygfx integration for current API
...
- Use rendercanvas.qt.RenderCanvas instead of wgpu.gui.qt.WgpuCanvas
- Fix camera position API: use camera.local.position instead of camera.position.set()
- Fix light position API: use light.local.position
- Fix PygfxRenderObject to properly inherit from RenderObject
- Change add_mesh/add_wireframe/add_points/add_grid/add_axes to return string ID
- Update base Renderer class to return str instead of RenderObject
- Add custom compute_normals() function for mesh normals
2026-03-14 09:06:38 +01:00
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