Skip to content

Faster makeFromWires#768

Merged
jmwright merged 5 commits intomasterfrom
face-speed
May 16, 2021
Merged

Faster makeFromWires#768
jmwright merged 5 commits intomasterfrom
face-speed

Conversation

@adam-urbanczyk
Copy link
Copy Markdown
Member

Related to #766

@adam-urbanczyk adam-urbanczyk added OCC feature Requires coding at OCC implementation level speedup labels May 14, 2021
@adam-urbanczyk
Copy link
Copy Markdown
Member Author

I see quite significant (10x) speedup with this PR. We could make this roughly 2x faster, but that would require many more changes.

@codecov
Copy link
Copy Markdown

codecov bot commented May 15, 2021

Codecov Report

Merging #768 (6f847e2) into master (7493e61) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #768   +/-   ##
=======================================
  Coverage   94.64%   94.65%           
=======================================
  Files          32       32           
  Lines        7250     7256    +6     
  Branches      789      789           
=======================================
+ Hits         6862     6868    +6     
  Misses        255      255           
  Partials      133      133           
Impacted Files Coverage Δ
cadquery/occ_impl/shapes.py 92.41% <100.00%> (+0.04%) ⬆️
cadquery/selectors.py 98.14% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7493e61...6f847e2. Read the comment docs.

@marcus7070
Copy link
Copy Markdown
Member

Wow, this code:

import cadquery as cq
from itertools import product

num = 49
hole_dim = 1
wall_thick = 0.2
outer_dim = num * hole_dim + (num + 1) * wall_thick

vals = [wall_thick + (hole_dim + wall_thick) * idx for idx in range(num)]
points = [(x, y) for x, y in product(vals, repeat=2)]

grid = (
    cq.Workplane()
    .rect(outer_dim, outer_dim, centered=False)
    .pushPoints(points)
    .rect(hole_dim, hole_dim, centered=False)
    .extrude(2)
)

went from 111 seconds down to 4.4s. That's fantastic, thanks very much @adam-urbanczyk!

Copy link
Copy Markdown
Member

@marcus7070 marcus7070 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've rendered a bunch of my models with this code now and nothing has broken, looks great to me!

Copy link
Copy Markdown
Member

@jmwright jmwright left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks a lot @adam-urbanczyk ! This yields incredible improvements.

@jmwright jmwright merged commit 05e42a7 into master May 16, 2021
@marcus7070 marcus7070 deleted the face-speed branch May 16, 2021 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCC feature Requires coding at OCC implementation level speedup

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants