cadquery icon indicating copy to clipboard operation
cadquery copied to clipboard

Adding existing geometry into sketches?

Open l29ah opened this issue 1 year ago • 1 comments
trafficstars

I want to make holes spaced out all around the edge of my part. It's easy to put holes along existing vertices, but i'm not sure how to split up the lines to get more vertices. I've made a Wire in my Workplane and figured distribute() would be appropriate to do it, but seems like it's only accessible inside a Sketch. Meanwhile in a Sketch i don't have access to any external geometry it seems, even with tag() and select(). How can i do it? So far my attempts look like:

import cadquery as cq

shit = cq.Workplane('XY').box(5, 5, 5)
shitfaced = shit.faces('>Z').edges().toPending().offset2D(-0.5, forConstruction=True).tag('loh')
#ok = shitfaced.positions() #project()#sketch().select('loh').distribute(10)

l29ah avatar May 14 '24 15:05 l29ah

The Sketch API has to be updated to enable such things. I think currently the easiest method would be:

import cadquery as cq

base = cq.Workplane().box(5, 5, 5)
f = base.faces('>Z').edges().toPending().offset2D(-0.5, forConstruction=True).val()

locs = f.positions((1/8)*i for i in range(8))

#import numpy as np
#locs = f.positions(np.linspace(0,1,8,endpoint=False))

result = base.pushPoints(locs).circle(0.4).cutBlind(-1)

adam-urbanczyk avatar May 16 '24 05:05 adam-urbanczyk