Skip to content

Cutting a Cylinder with a line (intersect) #1334

@Zorcas

Description

@Zorcas

Hi everyone,

i am trying to change an existing script that calculates a quite complex geometry based on a FREECAD hook in python to use the cadquery package.

The biggest difference i saw was the information saved in the variables.
E.g. when i try to get information of my object i allways have to use functions and can't just use obj.BoundBox.

My Problem:
I am trying to intersect a line with a cylinder and get the start and end point of the intersection-line aswell as its length.
In my FREECAD python script version it was programmed as follows:

    total_length=0
    length=[]
    for i in range(0,len(struts)):
        line=Part.makeLine((struts[i][0],struts[i][1],struts[i][2]),(struts[i][3], struts[i][4], struts[i][5])) #create a FreeCAD Line
        cut_line = cylinder.common(line) #cut with the cylinder to remove excess

        if len(cut_line.Vertexes)==2:
            # this saves the start and end point of the line which was cut by the cylinder
            struts[i] = [cut_line.Vertexes[0].Point[0],cut_line.Vertexes[0].Point[1],cut_line.Vertexes[0].Point[2],cut_line.Vertexes[1].Point[0],cut_line.Vertexes[1].Point[1],cut_line.Vertexes[1].Point[2]]
        
        length.append(cut_line.Length) #create vector with length of the lines
        total_length+=cut_line.Length #add all these lengths
        del line
        del cut_line

I cannot find any functions to achieve the same with cadquery.

Thanks for your help!

Best regards,

Mischa

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions