Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
skConstraint / Newbie to featurescript
emory_krall
Member Posts: 15 PRO
I'm just starting to work with featurescript and I have no
programming experience so there are some large gaps in my knowledge.
I've
been working off of a script written by someone who actually knew what
they were doing which imports solid tool-bodies from a separate context
and uses them to create machining details at specified sketch points.
I've successfully adapted it a few times for different types of
hardware, but now I'm trying something more advanced.
The
purpose of the script is to create CNC machining details for mounting
hinges in a cabinet door. The exact distance of the door edge to the
side of the cabinet can vary, so (thinking like a CAD user, not a
programmer) I'm attempting to locate the hinges using points sketched on
the back of the door, then have the script project the points onto the side of cabinet and place the machining details based on the projected points.
Searching discussion questions led me to skConstraint. The discussions in
those posts made me understand skConstraint might not be the best way to solve my problem, but I couldn't find any alternative solutions. In any case, I
almost have it working now - the script is successfully creating a new point in a
new sketch for every point in the queried sketch, but it's constraining
all of them to a single point of the queried sketch.
This is the script:
Open to any suggestions (including not using skConstraint)!
1
Comments
It looks like you have made some progress and are now trying to use the `project()` call directly.
The code that you are using:
is likely failing. I signature of the function you are trying to target is project(plane is Place, vector is Vector). The first argument should be a plane (which is what you are inputting) and the second argument should be a Vector representing a single point in 3d space. You are passing in a query for a bunch of points. I would adapt that line of code to read as follows:
https://cad.onshape.com/FsDoc/library.html#evaluateQuery-Context-Query
https://cad.onshape.com/FsDoc/library.html#evVertexPoint-Context-map
At the end of this loop, newPoints will be a list of 3d world space positions representing the locations of backDoorPoints projected onto doorPlane. If you want to actually create point bodies at those locations, you will need to call opPoint.
https://cad.onshape.com/FsDoc/library.html#opPoint-Context-Id-map
Separate note here. Importing other part studios at the top of the Feature Studio is no longer always the best practice. You may want to check out our new(ish) reference parameter, which allows you to actually select a part studio as a parameter of the feature, if you want the user of this feature to be able to change to a different part studio on the fly. If you are always going to be referencing this same Part Studio, and never need to change that, then I would stick with the import over the reference parameter.
https://cad.onshape.com/FsDoc/uispec.html#references