Ok, I think we are getting closer.
I recompiled salomegeometry with CPPFLAGS=-D_OCC64. I recompiled pythonOcc
too even though I didn't know if it was necessary (I guess it is to avoid
linking issues).
Know all three unit tests are successful ;-) which is nice.
But running the PAF tutorial I still end with a segfault :(
I attached in PAF1.py and PAF2.py two sequences of python calls that make it
crash. And also the corresponding backtraces.
I haven't still compiled OCC in debug as I wanted to first give a try to the
-D_OCC64 flag. I'll do it if you feel like some info is missing.

Look, I would perfectly understand you get peaced off with this and want to
give it a break.
Thanks anyway.

Loïc


On Sat, Sep 19, 2009 at 12:16 PM, Thomas Paviot <tpav...@gmail.com> wrote:

>
> <simon1l...@gmail.com>Right. But I have an idea about the problem.
> According to your experimentations, the occ_unittest and topoloygy_unittest
> pass. So the problem does not come from OCC but, according to me, rather
> from salomegeometry. It's possible that salomegeometry is compiled without
> the D_OCC64 flag, so the adress handler of OCC is not properly inited. Maybe
> you should try to recompile salomegeometry with this flag (for instance,
> first set CPPFLAGS='D_OCC64' or something like that). If it solves the
> problems, I will fix the Makefile.am file of salomegeometry and commit
> changes to the repository. Otherwise you can recompile OCC with
> --enable-debug to have more information about this issue.
>
> Under MacOSX 64bits, I don't face this issue.
>
>
>>
>> regards,
>> Loïc
>>
>
> Thomas
>
>
>>
>>
>> On Sat, Sep 19, 2009 at 8:42 AM, Thomas Paviot <tpav...@gmail.com> wrote:
>>
>>> 2009/9/18 Simon Loic <simon1l...@gmail.com>
>>>
>>>> Hi again,
>>>>
>>>
>>> Hi Loïc,
>>>
>>> Manu thanks for your feedback.
>>>
>>>>
>>>>
>>>> The env_DRAW.sh script contains a set of environment variables that has
>>>>> to be set up before you can use OCC. You can copy/paste the content of 
>>>>> this
>>>>> file to your .bash_profile. The most important one is the CSF_GraphicShr,
>>>>> that points to the OCC OpenGL lib, and enables the 3D display.
>>>>>
>>>>
>>>> Ok I had already something equivalen in my .zshrc (I like this shell
>>>> better than bash ;-), and CSF_GraphicShr is set correctly.
>>>>
>>>
>>> Ok.
>>>
>>>
>>>>
>>>>
>>>> The best way is certainly to launch this python script from the
>>>>> ./Tools/InteractiveViewer directory. Do you have any difficulty to get it
>>>>> run?
>>>>>
>>>>
>>>> It's ok the basic example works (a part from the Zoom window which is
>>>> apparently not implemented or not wrapped, right? I get the following
>>>> message:
>>>> >> AttributeError: 'Viewer3d' object has no attribute 'Zoom_Window'
>>>>
>>>
>>> I will fix it.
>>>
>>>
>>>>
>>>>
>>>>> Weird, since you followed the instructions available on the PAF
>>>>> tutorial (from the wiki). Before you go and test PAF, I suggest you shoud
>>>>> first check that pythonOCC works fine. In the /src/unittest directory, 
>>>>> there
>>>>> are 3 sets of unittests: occ_unittest (test of the basic features),
>>>>> paf_unittest (for PAF) and topology_unittest (topology/geometry handling).
>>>>> Run each of these scripts and be sure that they all pass:
>>>>> python occ_unittest.py
>>>>> python paf_unittest.py
>>>>> python topology_unittest.py
>>>>>
>>>>
>>>> Actually the paf unit test raise a seg fault error (the two others run
>>>> just fine): see the output file attached.
>>>> One more thing I forgot to tell. After installing pythonOcc, the PAF
>>>> module was missing in the __all__ list in dist-packages/OCC/__init__.py. I
>>>> had to ad it manually.
>>>>
>>>
>>> PAF is not a python module, but a python package, e.g. a directory that
>>> conatins a set of python modules. According to me, it has nothing to do in
>>> the __init__.py script located in the   site-packages/OCC directory.
>>>
>>> Thanks for the gdb trace. It seems to be a memory management issue
>>> related to OCC. I also need the output of the paf_unittest.py script to have
>>> more information.
>>>
>>>
>>>>
>>>> cheers,
>>>>
>>>
>>> Cheers,
>>>
>>>
>>>>  Loïc
>>>>
>>>
>>> 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
>
>
from OCC.PAF.Context import ParametricModelingContext
from OCC.PAF.Parametric import Parameters

p = Parameters()

p.height = 43.3
p.radius = 12.9

tutorial_context = ParametricModelingContext(p)
tutorial_context.init_display()



tutorial_context.register_operations(tutorial_context.prim_operations)
my_cylinder = tutorial_context.prim_operations.MakeCylinderRH(p.radius,p.height,name="cylinder1", show=True)

Attachment: PAF1.bt
Description: Binary data

from OCC.PAF.Context import ParametricModelingContext
from OCC.PAF.Parametric import Parameters
from OCC.PAF.Parametric import Relation
from OCC.PAF.Parametric import Rule

p = Parameters()

tutorial_context = ParametricModelingContext(p)
tutorial_context.init_display()

p.height = 43.3
p.radius = 12.9

tutorial_context.register_operations(tutorial_context.prim_operations)
my_cylinder = tutorial_context.prim_operations.MakeCylinderRH(p.radius,p.height,name="cylinder1", show=True)

radius = p.radius.symbol
height = p.height.symbol

Rel = 2*radius
Relation(p,"height",Rel)

def IsPositive(x):
    return x>0

Rule(p,"radius",IsPositive) 
quit()

Attachment: PAF2.bt
Description: Binary data

_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to