'CadQuery: Selecting an edge by index (Filleting specific edges)

I come from the engineering CAD world and I'm creating some designs in CadQuery. What I want to do is this (pseudocode):

edges = part.edges()
edges[n].fillet(r)

Or ideally have the ability to do something like this (though I can't find any methods for edge properties). Pseudocode:

edges = part.edges()
for edge in edges:
    if edge.length() > x:
        edge.fillet(a)
    else:
        edge.fillet(b)

This would be very useful when a design contains non-orthogonal faces. I understand that I can select edges with selectors, but I find them unnecessarily complicated and work best with orthogonal faces. FreeCAD lets you treat edges as a list.

I believe there might be a method to select the closest edge to a point, but I can't seem to track it down.

If someone can provide guidance that would be great -- thank you!

Bonus question: Is there a way to return coordinates of geometry as a list or vector? e.g.:

origin = cq.workplane.center().val
>> [x,y,z]

(or something like the above)



Solution 1:[1]

Take a look at this code, i hope this will be helpful.

import cadquery as cq

plane1 = cq.Workplane()

block = plane1.rect(10,12).extrude(10)

edges = block.edges("|Z")

filleted_block = edges.all()[0].fillet(0.5)

show(filleted_block)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 NANDHA KUMAR