-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DXF multilayer support #1267
DXF multilayer support #1267
Conversation
You might to want to wait with this until #1226 is merged. |
@adam-urbanczyk Will do. Once merged I'll rebase this work on master |
6130774
to
9efdc6c
Compare
Codecov Report
@@ Coverage Diff @@
## master #1267 +/- ##
==========================================
+ Coverage 94.17% 94.24% +0.07%
==========================================
Files 26 26
Lines 5455 5495 +40
Branches 926 932 +6
==========================================
+ Hits 5137 5179 +42
+ Misses 188 187 -1
+ Partials 130 129 -1
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
9efdc6c
to
9c95724
Compare
I've rebased this on master pulling in #1226 which introduced parameters Should
1. Properties of the DXF documentProperties of the DXF document applying to all shapes added with dxf = DxfDocument(approx: Optional[Literal["spline", "arc"]] = None, tolerance: float = 1e-3)
dxf.add_shape(shape) 2. Properties of the shape being addedProperty of the shape added with dxf = DxfDocument()
dxf.add_shape(shape, approx: Optional[Literal["spline", "arc"]] = None, tolerance: float = 1e-3) 3. Properties of both the DXF document and the shapeProperties of the DXF document applying to all shapes added with dxf = DxfDocument(approx: Optional[Literal["spline", "arc"]] = None, tolerance: float = 1e-3)
dxf.add_shape(shape, approx: Optional[Literal["spline", "arc"]] = None, tolerance: float = 1e-3) |
Definitely a property of the document. You might also add an option to override on per-shape basis, but I personally don't have such a use case. |
d4d5a28
to
263364c
Compare
@lorenzncode you might want to integrate #1278 into this PR |
e97795e
to
e510edc
Compare
@adam-urbanczyk back to you for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, last two remarks regarding diff coverage. Could you extend the tests?
* Set DXF layer color to ezdxf default white/black * Add exporters DxfDocument import * DXF units, colors doc udpate
I've added the fix from #1278. Thanks @sethfischer! |
Thanks @sethfischer |
Thank you @adam-urbanczyk and @lorenzncode |
A proposed approach to #1171.
Also supports:
Closes #1171
Closes #1188
Closes #1259
Todo
Notes
cadquery.occ_impl.exporters.dxf.exportDXF
has be refactored but there is no change to the public API._dxf_*
have been refactored to better facilitate unit testing. There is no change to algorithm of these methods.Example use
Screenshot of resulting
multilayer-demo.dxf
viewed in LibreCAD:This still works as expected but is refactored to call
DxfDocument
and DXF document units are mm:Export DXF with document units other then the default: