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

Reply via email to