Hi Jelle,

Thanks -
So the make_edge function wraps BRepBuilderAPI_MakeEdge
And looking at the source of make_edge, I see that you need to use the
Edge() method to get the edge
So to do it the longer way round again:

def line3():
    ''' Test a line segment'''
    display, start_display, add_menu, add_function_to_menu = init_display()

    from OCC.gp import gp_Pnt
    from OCC.BRepBuilderAPI import BRepBuilderAPI_MakeEdge
    p1 = gp_Pnt(0,0,0)
    p2 = gp_Pnt(9,9,0)
    my_line = BRepBuilderAPI_MakeEdge(p1, p2).Edge()
    display.DisplayShape(my_line)

    display.View_Iso()
    display.FitAll()
    start_display()

So there is no need to call he Build() method?
That method confused me as well - what does it do? (see my first example)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Patrick


On 13 May 2010 14:54, Jelle Feringa <jelleferi...@gmail.com> wrote:

> Hi Patrick,
>
> The API can be a bit daunting indeed.
> However, most topology constructors can accept its arguments in quite a few
> ways.
> For example; make_edge accepts a (gp_Pnt, gp_Lin), but (gp_Pnt, gp_Pnt) is
> fine too.
> ( so can be done in 5 lines too ;')
>
> from OCC.Display.SimpleGui import *
> display, start_display, add_menu, add_function_to_menu = init_display()
> from OCC.Utils.Construct import make_edge
> display.DisplayShape(make_edge(gp_Pnt(), gp_Pnt(1,1,0)))
> start_display()
>
> -jelle
>
> See the doxygen documentation of OCC:
>
> Standard_EXPORT BRepBuilderAPI_MakeEdge ()Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const TopoDS_Vertex &V1, const TopoDS_Vertex &V2)
> Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Pnt &P1, const gp_Pnt
> &P2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Lin &L)
> Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Lin &L, const
> Standard_Real p1, const Standard_Real p2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Lin &L, const gp_Pnt &P1, const gp_Pnt
> &P2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Lin &L, const
> TopoDS_Vertex &V1, const TopoDS_Vertex &V2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Circ &L)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Circ &L, const Standard_Real p1, const
> Standard_Real p2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Circ
> &L, const gp_Pnt &P1, const gp_Pnt &P2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Circ &L, const TopoDS_Vertex &V1, const
> TopoDS_Vertex &V2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Elips
> &L)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Elips &L, const
> Standard_Real p1, const Standard_Real p2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Elips &L, const gp_Pnt &P1, const gp_Pnt
> &P2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Elips &L, const
> TopoDS_Vertex &V1, const TopoDS_Vertex &V2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Hypr &L)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Hypr &L, const Standard_Real p1, const
> Standard_Real p2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Hypr
> &L, const gp_Pnt &P1, const gp_Pnt &P2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Hypr &L, const TopoDS_Vertex &V1, const
> TopoDS_Vertex &V2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Parab
> &L)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Parab &L, const
> Standard_Real p1, const Standard_Real p2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const gp_Parab &L, const gp_Pnt &P1, const gp_Pnt
> &P2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const gp_Parab &L, const
> TopoDS_Vertex &V1, const TopoDS_Vertex &V2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const Handle(Geom_Curve)&L)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const Handle(Geom_Curve)&L, const Standard_Real
> p1, const Standard_Real p2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom_Curve)&L, const gp_Pnt &P1, const gp_Pnt &P2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const Handle(Geom_Curve)&L, const TopoDS_Vertex
> &V1, const TopoDS_Vertex &V2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom_Curve)&L, const gp_Pnt &P1, const gp_Pnt &P2, const
> Standard_Real p1, const Standard_Real p2)Standard_EXPORT
> BRepBuilderAPI_MakeEdge (const Handle(Geom_Curve)&L, const TopoDS_Vertex
> &V1, const TopoDS_Vertex &V2, const Standard_Real p1, const Standard_Real
> p2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const Handle(Geom2d_Curve)&L,
> const Handle(Geom_Surface)&S)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom2d_Curve)&L, const Handle(Geom_Surface)&S, const Standard_Real
> p1, const Standard_Real p2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom2d_Curve)&L, const Handle(Geom_Surface)&S, const gp_Pnt &P1,
> const gp_Pnt &P2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom2d_Curve)&L, const Handle(Geom_Surface)&S, const TopoDS_Vertex
> &V1, const TopoDS_Vertex &V2)Standard_EXPORT BRepBuilderAPI_MakeEdge (const
> Handle(Geom2d_Curve)&L, const Handle(Geom_Surface)&S, const gp_Pnt &P1,
> const gp_Pnt &P2, const Standard_Real p1, const Standard_Real p2)
> Standard_EXPORT BRepBuilderAPI_MakeEdge (const Handle(Geom2d_Curve)&L,
> const Handle(Geom_Surface)&S, const TopoDS_Vertex &V1, const TopoDS_Vertex
> &V2, const Standard_Real p1, const Standard_Real p2)
>
>
>
> On May 13, 2010, at 8:44 AM, Patrick Janssen wrote:
>
> Hi Thomas,
>
> Thanks for the quick reply - and thanks for the hard work on wrapping occ -
> I think it is going to be really useful for my work.
>
> By simple, I was thinking of higher level APIs - like you get with boxes
> and cylinders (BRepPrimAPI_MakeBox, BRepPrimAPI_MakeCylinder). I have come
> across GC_MakeSegment, but am not sure how to use it - I am still struggling
> with the fundamental concepts, especially working with these handles. I was
> trying this, but it gives an error:
>
> def line2():
>     ''' Test a line segment'''
>     display, start_display, add_menu, add_function_to_menu = init_display()
>
>     from OCC.gp import gp_Pnt
>     from OCC.GC import GC_MakeSegment
>     from OCC.BRepBuilderAPI import BRepBuilderAPI_MakeEdge
>     p1 = gp_Pnt(0,0,0)
>     p2 = gp_Pnt(9,9,0)
>     my_line = GC_MakeSegment(p1, p2).Value()
>     my_line = BRepBuilderAPI_MakeEdge(my_line)
>     my_line.Build()
>     my_line = my_line.Shape()
>     display.DisplayShape(my_line)
>
>     display.View_Iso()
>     display.FitAll()
>     start_display()
>
>
> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
> Patrick
>
> On 13 May 2010 14:11, Thomas Paviot <tpav...@gmail.com> wrote:
>
>> 2010/5/13 Patrick Janssen <patr...@janssen.name>
>>
>> I am just getting started, and have been looking at some of the exampls
>>> etc... So to draw a line, you would do this:
>>>
>>> def test5():
>>>     ''' Test creating a line segment''
>>>     display, start_display, add_menu, add_function_to_menu =
>>> init_display()
>>>
>>>     from OCC.gp import gp_Pnt, gp_Dir
>>>     from OCC.Geom import Geom_Line
>>>     from OCC.BRepBuilderAPI import BRepBuilderAPI_MakeEdge
>>>     p1 = gp_Pnt(0,0,0)
>>>     line_dir = gp_Dir(1,1,0)
>>>     my_line = Geom_Line(p1, line_dir).Lin()
>>>     my_line = BRepBuilderAPI_MakeEdge(my_line)
>>>     my_line.Build()
>>>     my_line = my_line.Shape()
>>>     display.DisplayShape(my_line)
>>>
>>>     display.View_Iso()
>>>     display.FitAll()
>>>     start_display()
>>>
>>>
>>> Is there a simpler way?
>>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>> Patrick
>>>
>>>
>> Hi Patrick,
>>
>> In only 14 lines of python code, you manage to display a line in a 3D
>> window. I think it's not bad! What do you mean exactly with 'simpler'? Do
>> you mean 'less lines'? Whatever the alternative solution could be, you will
>> always have to :
>> * import python modules/packages,
>> * define two points (or a point and a direction),
>> * create the line from these two points,
>> * send the line to the renderer.
>>
>> You can use for instance high level wrappers to generate the edges from
>> the line:
>>
>> from OCC.Display.SimpleGui import *
>> display, start_display, add_menu, add_function_to_menu = init_display()
>> from OCC.gp import gp_Pnt, gp_Dir
>> from OCC.Geom import Geom_Line
>> from OCC.Utils.Construct import make_edge
>>
>> p1 = gp_Pnt(0,0,0)
>> line_dir = gp_Dir(1,1,0)
>> my_line = Geom_Line(p1, line_dir).Lin()
>>
>> display.DisplayShape(make_edge(my_line))
>>
>> start_display()
>>
>> This sample is 11 lines, I would not say it's simpler but smaller.
>>
>> Thomas
>>
>> _______________________________________________
>> Pythonocc-users mailing list
>> Pythonocc-users@gna.org
>> https://mail.gna.org/listinfo/pythonocc-users
>>
>>
> _______________________________________________
> Pythonocc-users mailing list
> Pythonocc-users@gna.org
> https://mail.gna.org/listinfo/pythonocc-users
>
>
>
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to