Visualising Iges files with DRAWEXE

I am trying to visualise some iges files using draw. I am having two problems. First I can't get the surfaces to display, only wireframes and Second DRAWEXE crashes when it tries to process mouse move events.

For the first I am running these commands in DRAWEXE:

pload ALL
NewDocument d XmlXCAF
ReadIges d file.igs
XShow d

For the second, I get this backtrace:

#0 0x00007f2577d5da05 in V3d_View::Viewer (this=0xfefdfefdfefd0000) at ../../../../src/V3d/V3d_View.cxx:2419
#1 0x00007f2577bf8976 in AIS_InteractiveContext::MoveTo (this=0x19db3e8, XPix=264, YPix=479, aView=@0x200f1ef8)
at ../../../../src/AIS/AIS_InteractiveContext_1.cxx:150
#2 0x00007f2575720267 in ViewerTest_EventManager::MoveTo (this=0x200f1ee0, XPix=264, YPix=479)
at ../../../../src/ViewerTest/ViewerTest_EventManager.cxx:34
#3 0x00007f25757408e8 in ProcessMotion () at ../../../../src/ViewerTest/ViewerTest_ViewerCommands.cxx:601
#4 0x00007f257574184e in ViewerMainLoop (argc=0, argv=0x0) at ../../../../src/ViewerTest/ViewerTest_ViewerCommands.cxx:1173
#5 0x00007f2575741930 in VProcessEvents () at ../../../../src/ViewerTest/ViewerTest_ViewerCommands.cxx:1196
#6 0x00007f257ba88f31 in ?? () from /usr/lib/libtcl8.4.so
#7 0x00007f257ba6b2ee in Tcl_ServiceEvent () from /usr/lib/libtcl8.4.so
#8 0x00007f257ba6b606 in Tcl_DoOneEvent () from /usr/lib/libtcl8.4.so
#9 0x00007f257b73d699 in Tk_MainLoop () from /usr/lib/libtk8.4.so
#10 0x00007f257ed527e5 in Run_Appli (interprete=0x7f257ed2e712 ) at ../../../../src/Draw/Draw_Window.cxx:1181
#11 0x00007f257ed2ed00 in Draw_Appli (argc=1, argv=0x7fff874b6ea8, Draw_InitAppli=0x400ace )
at ../../../../src/Draw/Draw.cxx:300
#12 0x00007f257ed3df0f in _main_ (argc=1, argv=0x7fff874b6ea8, fDraw_InitAppli=0x400ace )
at ../../../../src/Draw/Draw_Main.cxx:180
#13 0x0000000000400acc in main (argc=1, argv=0x7fff874b6ea8) at ../../../../src/DRAWEXE/DRAWEXE.cxx:23

As you can see V3d_View::Viewer is returning an invalid handle. I don't run windows so I can only say this is an issue under Linux.

Help with either of these two issues would be great, many thanks.
Hugh.

Roman Lygin's picture

Hi Hugh,

This crash is due to a regression introduced in 6.3.0 when DRAW's View3d was migrated to NIS_View. The API in ViewerTest has been re-tailored to it *too much* and did break a compatibility it could have kept given that NIS_View inherits V3d_View.

Here are the patches I have made to get it back to work. File VieweTest.cxx:

=============
static void VwrTst_InitEventMgr(const Handle(V3d_View)& aView,
const Handle(AIS_InteractiveContext)& Ctx)
{
theEventMgrs.Clear();
theEventMgrs.Prepend(new ViewerTest_EventManager(aView, Ctx));
}

[...]

void ViewerTest::ResetEventManager()
{
VwrTst_InitEventMgr(ViewerTest::CurrentView(), ViewerTest::GetAISContext());
}

====================
OCCPATCH.

Hope this helps.
Roman

---
opencascade.blogspot.com - the Open CASCADE blog
www.cadexchanger.com - CAD Exchanger, your 3D data translator

hsorby's picture

Thanks Roman,

That helped me solve issue 2, but issue 1 is still outstanding.

Is there something I am missing here?

Hugh.