Hi
Strrange: the two backtraces are very different, whereas the python scripts
> are quite similar. I will investigate this further in the begining of the
> next week. I just
>
The main difference between the two scripts attached before is the order of
the calls:
in PAF1.py, I add parameters height and radius to p before I create the
context, and in PAF2.py it is the other way around.
Note that in PAF1.py python segfaults when creating the cylinder while in
PAF2.py it crashes when I quit python. I would like also to bring you
attention on the strange message sent by python when creating p.height and
p.radius (see PAF1.log). Talking about this, there aren't such message in
PAF2.log which means that the order might be at stack.
> have another question: do the samples in the /src/samples/Level2/PAF work
> or do they also segfault?
>
They also segfaults when I close the 3D viewer this time. Also, a difference
that could make sens for you, In those examples I can interact with the 3D
viewer (rotate, ... even the zoom window works). While in PAF2.py, the
viewer seems freezed, I can't even close it (thats why I have to call quit()
).
I hope we can figure this out, but right now I'm just going to sleep.
See you,
Loïc
In [1]: from OCC.PAF.Context import ParametricModelingContext
In [2]: from OCC.PAF.Parametric import Parameters
In [3]:
In [4]: p = Parameters()
In [5]:
In [6]: p.height = 43.3
Parameter height created
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/matador/Desktop/Code/pythonOCC/<ipython console> in <module>()
/usr/local/lib/python2.6/dist-packages/OCC/PAF/Parametric.pyc in __setattr__(self, name, value)
213
214 # add the parameter to the Interpreter ( which does the real work )
--> 215 self.context.set_parameter(name,value, self._commit)
216
217 def __getattribute__(self, name):
/usr/local/lib/python2.6/dist-packages/OCC/PAF/Parametric.pyc in __getattribute__(self, name)
216
217 def __getattribute__(self, name):
--> 218 attr = object.__getattribute__(self, name)
219 if isinstance(attr, int) or isinstance(attr, float):
220 try:
AttributeError: 'Parameters' object has no attribute 'context'
In [7]: p.radius = 12.9
Parameter radius created
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/home/matador/Desktop/Code/pythonOCC/<ipython console> in <module>()
/usr/local/lib/python2.6/dist-packages/OCC/PAF/Parametric.pyc in __setattr__(self, name, value)
213
214 # add the parameter to the Interpreter ( which does the real work )
--> 215 self.context.set_parameter(name,value, self._commit)
216
217 def __getattribute__(self, name):
/usr/local/lib/python2.6/dist-packages/OCC/PAF/Parametric.pyc in __getattribute__(self, name)
216
217 def __getattribute__(self, name):
--> 218 attr = object.__getattribute__(self, name)
219 if isinstance(attr, int) or isinstance(attr, float):
220 try:
AttributeError: 'Parameters' object has no attribute 'context'
In [8]: tutorial_context = ParametricModelingContext(p)
MSG:./src/GEOMImpl/GEOMImpl_IShapesOperations.cpp [142] : GEOMImpl_IShapesOperations::GEOMImpl_IShapesOperations
ParametricModelingContext initialized
In [9]: tutorial_context.init_display()
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Display3d class initialization starting ...
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Graphic device created.
Xw_Window created.
Viewer created.
Interactive context created.
Display3d class successfully initialized.
Display initialized
In [10]: tutorial_context.register_operations(tutorial_context.prim_operations)
In [11]: my_cylinder = tutorial_context.prim_operations.MakeCylinderRH(p.radius,p.height,name="cylinder1", show=True)
parameter: radius value: 12.9
parameter: height value: 43.3
got *args: (<OCC.PAF.Context.prim_operations object at 0x387e510>, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x45e4b70> >, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x45e4b40> >)
modified args: (<OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x45e4b70> >, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x45e4b40> >)
got **kwargs: {'name': 'cylinder1', 'show': True}
initialized context with <class 'OCC.GEOMImpl.GEOMImpl_I3DPrimOperations'>
start operation
zsh: segmentation fault ipython
In [1]: from OCC.PAF.Context import ParametricModelingContext
In [2]: from OCC.PAF.Parametric import Parameters
In [3]: from OCC.PAF.Parametric import Relation
In [4]: from OCC.PAF.Parametric import Rule
In [5]:
In [6]: p = Parameters()
In [7]:
In [8]: tutorial_context = ParametricModelingContext(p)
MSG:./src/GEOMImpl/GEOMImpl_IShapesOperations.cpp [142] : GEOMImpl_IShapesOperations::GEOMImpl_IShapesOperations
ParametricModelingContext initialized
In [9]: tutorial_context.init_display()
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Display3d class initialization starting ...
Xlib: extension "Generic Event Extension" missing on display ":1000.0".
Graphic device created.
Xw_Window created.
Viewer created.
Interactive context created.
Display3d class successfully initialized.
Display initialized
In [10]:
In [11]: p.height = 43.3
Parameter height created
parameter: _commit value: False
In [12]: p.radius = 12.9
Parameter radius created
parameter: _commit value: False
In [13]:
In [14]: tutorial_context.register_operations(tutorial_context.prim_operations)
In [15]: my_cylinder = tutorial_context.prim_operations.MakeCylinderRH(p.radius,p.height,name="cylinder1", show=True)
parameter: radius value: 12.9
parameter: height value: 43.3
got *args: (<OCC.PAF.Context.prim_operations object at 0x43f5c50>, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x51646f0> >, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x51646c0> >)
modified args: (<OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x51646f0> >, <OCC.PAF.Parametric.Parameter; proxy of <Swig Object of type 'GEOM_Parameter *' at 0x51646c0> >)
got **kwargs: {'name': 'cylinder1', 'show': True}
initialized context with <class 'OCC.GEOMImpl.GEOMImpl_I3DPrimOperations'>
start operation
result: <OCC.SGEOM.Handle_GEOM_Object; proxy of <Swig Object of type 'Handle_GEOM_Object *' at 0x5164720> >
finish operation
set object name: cylinder1
In [16]:
In [17]: radius = p.radius.symbol
parameter: radius value: 12.9
In [18]: height = p.height.symbol
parameter: height value: 43.3
In [19]:
In [20]: Rel = 2*radius
In [21]: Relation(p,"height",Rel)
Callback added
Out[21]: <OCC.PAF.Parametric.Relation object at 0x51627d0>
In [22]:
In [23]: def IsPositive(x):
....: return x>0
....:
In [24]: Rule(p,"radius",IsPositive)
Out[24]: <OCC.PAF.Parametric.Rule object at 0x5162810>
In [25]: quit()
Do you really want to exit ([y]/n)?
zsh: segmentation fault ipython
_______________________________________________
Pythonocc-users mailing list
[email protected]
https://mail.gna.org/listinfo/pythonocc-users