Skip to content

Fillet fails when using #Z selector but *not* when all edges selected #1959

@sburnap

Description

@sburnap

I'm trying to get a better understanding of selectors so I wrote a test of various selectors:

import cadquery as cq
from ocp_vscode import *


def make_shape():
    return (
        cq.Workplane("XY")
        .box(50, 10, 10)
        .box(40, 20, 20)
        .box(30, 30, 30)
        .box(20, 20, 40)
        .box(10, 10, 50)
        .box(10, 50, 10)
        .box(20, 40, 20)
    )


for selector in [">Z", "<Z", "|Z", "-Z", "+Z", "#Z", ""]:
    example = make_shape().edges(selector)
    print(f"{selector} -> {len(list(example))} edges")
    try:
        example = example.fillet(1)
    except:
        print(f"{selector} failed")
    show(example)
    cq.exporters.export(example, f"Tests/edge_test/selector_{selector}.stl")

The behavior is puzzling. For the "#Z" perpendicular selector only, I get this on the fillet command:

OCP.OCP.StdFail.StdFail_NotDone: BRep_API: command not done

What puzzles me is that if I use "" as a selector (selecting all edges) then cadquery perfectly happily fillets every single edge.

Shouldn't it then be possible to fillet all of the edges "#Z" selects, which should be a subset?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions