Commit Graph

103 Commits

Author SHA1 Message Date
Alex Shvartzkop e55da55e04 Remove debugging code from STEP exporter. 2024-05-26 08:05:25 +03:00
Alex Shvartzkop b89d4a7f20 3D model export improvements:
- Option to export pads separately from tracks+vias
- Options export silkscreen and soldermask as flat faces
- Improve 3D model export dialog layout
- Use VisMaterialTool to specify metallic-roughness for glTF.
- Less OCCT boolean operations (faster, less bugs)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2072
2024-05-25 22:27:01 +03:00
Alex Shvartzkop 615f216ef6 STEP export: don't double-check the wire. 2024-05-19 04:08:43 +03:00
Alex Shvartzkop 1a0ce67155 STEP export: reverse Wire when adding it to Face as a hole.
Better fix for https://gitlab.com/kicad/code/kicad/-/issues/17446

(cherry picked from commit 1264230973)
2024-05-19 04:02:35 +03:00
Alex Shvartzkop e00219f459 STEP export: allow closing (and constructing) the wire with 1nm edges.
This is ok (and required) because we don't mess with BRepBuilderAPI::Precision nowadays.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18030

(cherry picked from commit 5b1c84b5dd)
2024-05-18 22:52:41 +03:00
Alex Shvartzkop 0772739cf1 3D model export: Improve 3D layer placement calculation algorithm.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18035
2024-05-17 18:20:24 +03:00
Alex Shvartzkop fd438cb8e0 VRML to XCAFDoc reader is only available in OCCT 7.7.0+ 2024-05-16 22:52:19 +03:00
Alex Shvartzkop 8fd12d8b7e Allow reading VRML models for glTF export.
Note that some VRML 2.0 models fill fail until our patches are integrated into OCCT 7.9.0.
2024-05-16 21:57:48 +03:00
Alex Shvartzkop 2179685dd2 STEP export: Use TDocStd_XLinkTool to copy model with colors instead of our DIY routine.
Now supports older OCCT versions.
Also puts components at a higher level in the hierarchy.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17549
2024-05-16 13:01:40 +03:00
dsa-t e2294a769a Revert "STEP export: Use TDocStd_XLinkTool to copy model with colors instead of our DIY routine."
This reverts commit f735c9bdc2
2024-05-15 22:55:19 +00:00
Alex Shvartzkop f735c9bdc2 STEP export: Use TDocStd_XLinkTool to copy model with colors instead of our DIY routine.
Also puts components at a higher level in the hierarchy.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17549
2024-05-16 01:33:06 +03:00
Alex Shvartzkop 0e58f1bad4 Improve approximateLineChainWithArcs algorithm. 2024-05-14 18:07:53 +03:00
Alex Shvartzkop 7d37cebfdf Fix orientations of some footprint STEP models.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17631
2024-04-28 23:11:26 +03:00
Alex Shvartzkop b3bc352c57 Use default stackup if stackup is not defined in STEP/BREP/XAO export. 2024-04-26 15:25:48 +03:00
Alex Shvartzkop c8db8d087e Remove debug line. 2024-04-26 02:40:22 +03:00
Alex Shvartzkop 9e673bb891 Polyfill GetOneShape from OCCT. 2024-04-26 02:36:17 +03:00
Alex Shvartzkop 1ae9e9b676 ADDED: XAO export for SALOME / Gmsh workflows.
Pad surfaces are assigned as face groups.
2024-04-26 01:53:43 +03:00
Alex Shvartzkop da1926d723 STEP/BREP export: ensure pad surface is a separate face.
Useful for FEM simulation.
2024-04-25 15:34:52 +03:00
Alex Shvartzkop 5f81e01f43 ADDED: --net-filter option to STEP/BREP export CLI. 2024-04-24 18:28:53 +03:00
Alex Shvartzkop 3f32f0c2d8 STEP/BREP export: approximate zone polygons with arcs.
- Speeds up processing significantly
- STEP file size reduction to 30%
2024-04-23 19:25:23 +03:00
Alex Shvartzkop bbab5a979a STEP export: Remove autosave prefix from label names.
The autosave file is used if the board was modified.
2024-04-22 04:06:04 +03:00
Alex Shvartzkop c68e3ceb44 ADDED: Export inner PCB copper layers to STEP / BREP / GLTF.
Also adds options to exclude board body and components.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16855
2024-04-22 03:39:46 +03:00
Alex Shvartzkop cd2925d3d7 ADDED: Fuse Shapes option for STEP/BREP/GLTF export.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17777
2024-04-19 03:43:26 +03:00
aris-kimi d00cda3b2f Fix build with OCC 7.5.x 2024-04-18 18:09:42 +00:00
jean-pierre charras 3da5616939 step/step_pcb_model.cpp: add missing includes. 2024-04-18 13:55:49 +02:00
Alex Shvartzkop 55fb70ae65 STEP export: use fused shapes for pads instead of polygon approximations. 2024-04-18 13:44:14 +03:00
Alex Shvartzkop b50a1c967f Report errors and warnings when using BRep cutting algorithm. 2024-04-18 13:44:14 +03:00
Alex Shvartzkop 01fedb86e2 Fix shadowed variable. 2024-04-17 18:22:22 +03:00
Alex Shvartzkop d97ac47509 Try to use parallel processing in BRep cutting algorithm. 2024-04-17 18:15:17 +03:00
Alex Shvartzkop d98d7f9017 ADDED: Support 3D shape export in BREP format.
BREP doesn't support colors or label names,
but is much faster to write/read compared to STEP.
2024-04-17 17:31:10 +03:00
Alex Shvartzkop bf16f757ed STEP export: disable history to speed up hole cutting. 2024-04-17 16:09:03 +03:00
dsa-t 822409225a STEP export: don't fail when can't construct a wire.
This can happen with very small shapes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17774


(cherry picked from commit 481c1592ae)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2024-04-16 22:36:34 +00:00
Alex Shvartzkop 800ff9ffb1 STEP export: add location info to edge add failures. 2024-03-19 23:10:37 +03:00
Alex Shvartzkop 75037dd1d1 STEP export: handle small segments connecting two arcs better.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17499
2024-03-19 22:53:30 +03:00
jean-pierre charras 63dd4aed93 Step exporter: workaround to fix issue for boards with main round outline
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17446
2024-03-19 11:19:37 +01:00
Alex Shvartzkop 85b1978408 Use 64-bit type to represent microseconds.
int and long are 32-bit on Windows, causing overflows.
2024-03-03 21:40:26 +03:00
Roberto Fernandez Bautista a4929f9c27 Step exporter: handle circles correctly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17137
2024-03-02 19:09:33 +01:00
Alex Shvartzkop 5900f6baa4 Do not call MakeShapes in AddCopperPolygonShapes when polyset is empty.
Ease of debugging.

(cherry picked from commit 0184dfb625)
2024-02-23 22:15:17 +03:00
Marek Roszko b2c6e2de1f Fix file not found msg contents for step resolving 2024-02-15 23:10:57 -05:00
Jeff Young da46a96623 Update a few strings based on new string freeze policy. 2024-02-05 15:49:57 +00:00
Alex Shvartzkop 4a1245e85a STEP: export copper plating for vias/pads (25 micrometers).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16694
2024-02-02 00:29:03 +03:00
Alex Shvartzkop 3ed196859f STEP export: build a segment from last point for segment case as well.
https://gitlab.com/kicad/code/kicad/-/issues/16807
2024-01-29 19:59:41 +03:00
Alex Shvartzkop 9345b73af5 Don't crash when OCC fails to read a model and didn't open the doc. 2023-12-06 03:16:46 +03:00
Alex Shvartzkop 5de55b8c4a STEP export: fix a Bnd_BoundSortBox usage bug. 2023-11-21 14:21:12 +03:00
Alex Shvartzkop 58b9d68084 STEP export: make use of footprint names instead of "SOLID".
Should help when importing into software that does deduplication
based on label names (e.g. SolidWorks).
2023-11-21 14:11:16 +03:00
Alex Shvartzkop f3fdfa73e6 STEP export: Do not set BRepBuilderAPI precision.
This caused issues when loading some STEP models.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15485
2023-11-21 00:47:38 +03:00
Alex Shvartzkop 8dfad68d69 ADDED: option to optimize exported STEP files (disable pcurves) 2023-11-19 15:23:17 +03:00
Alex Shvartzkop 1321c8c6af STEP export: fix an issue when cutting circular holes in zones. 2023-11-19 14:04:31 +03:00
Alex Shvartzkop 254c8accc2 Remove some debugging messages. 2023-10-15 03:28:25 +03:00
Jeff Young 62d959ed0e Don't assume an error location for PAD::GetEffectivePolygon().
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.

Also reverts part of the change to always use polygons for PNS::SOLIDs.  A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00