bklronin
742d06d242
- Render improvements, camera plane, update
2026-07-13 23:01:35 +02:00
bklronin
c78d0af78c
- added renderer
...
- Added undo
2026-07-13 06:54:21 +02:00
bklronin
dda9db822b
- added renderer
...
- Added undo
2026-07-12 23:25:59 +02:00
bklronin
9f1387fe68
- added renderer
...
- Added undo
2026-07-12 22:21:43 +02:00
bklronin
210e3cfb5d
- added renderer
2026-07-12 22:21:20 +02:00
bklronin
b8516fff91
- Working assembly multi :)
2026-07-11 21:42:08 +02:00
bklronin
d7e5929a13
- Working assembly multi :)
2026-07-11 21:29:58 +02:00
bklronin
2b2afbc479
- Added save file foramt
...
- Split main.py refactor
2026-07-11 15:39:30 +02:00
bklronin
b0aebdc04f
- Added save file foramt
...
- Split main.py refactor
2026-07-11 09:34:38 +02:00
bklronin
be22c44a3f
- Added save file foramt
...
- Split main.py refactor
2026-07-07 22:40:40 +02:00
bklronin
80ba3cc70a
- Added save file foramt
...
- Split main.py refactor
2026-07-07 21:51:27 +02:00
bklronin
5269c0897c
- Added save file foramt
...
- Split main.py refactor
2026-07-05 22:16:08 +02:00
bklronin
3a169007f7
- assembly draft
2026-07-05 19:36:27 +02:00
bklronin
b595b88e04
- assembly draft
2026-07-05 10:16:49 +02:00
bklronin
9f10a5c5e5
- UI refinement, button position ui file as source no dirty drafting anymore
2026-07-04 16:16:04 +02:00
bklronin
6ba742ddf5
- sketch enhacements
2026-07-04 12:10:58 +02:00
bklronin
01833e4af2
- sketch enhacements
2026-07-03 21:49:05 +02:00
bklronin
f860ff3e77
- removed cadquery deoendency
2026-07-01 20:03:00 +02:00
bklronin
9938f4ddd4
- Basic operations
2026-06-29 23:30:02 +02:00
bklronin
f6422e0847
- Tons of addtions
2026-06-28 22:51:52 +02:00
bklronin
f8f16ea800
- Tons of addtions
2026-06-28 21:12:34 +02:00
bklronin
54ac2c098a
- Improved sketching
2026-06-14 10:10:37 +02:00
bklronin
ea34e7e29d
- Improved sketching
2026-06-14 10:10:33 +02:00
bklronin
7091f530ee
fix: use RenderWidget and add animation callback for camera controls
...
- Change from RenderCanvas to RenderWidget for embedded Qt widget
- Add _animate() callback for canvas.request_draw()
- Update render() to use request_draw() for continuous rendering
- This enables OrbitController to work properly with mouse events
2026-03-14 09:12:12 +01:00
bklronin
75d4820292
fix: register OrbitController events with renderer
...
Use controller.register_events(renderer) instead of canvas to properly
enable camera rotation/pan/zoom controls in the 3D viewer.
2026-03-14 09:09:32 +01:00
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