几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】circleproc90 is not calld (http://www.dimcax.com/hust/showthread.php?t=15405)

yang686526 2009-05-04 05:47 PM

【转帖】circleproc90 is not calld
 
circleproc() is not calld
circleproc() is not calld
i began to use dd just now. the version is 2.04.02.
now, i am implementing odvectorizeex in the sample programs(static link version).
although 'circle' exists in entities section, odgiconveyorgeometrydumper::circleproc()
is not called. other xxxproc, too, is the same. why is it? i am not editing the source code. vc6 and vc8 are the same result. exsimpleview::draw(const odgidrawable* pdrawable) is called.
because i don't understand english well, i am sorry if being odd sentences.
best regards,
kaneko
odvectorizeex dumps the entities on the current layout. perhaps the circle is not on the active layout?
vladimir
thanks for your reply. odvectorizeex takes out only active layout. i understand. is setupactivelayoutviews() it?
well then, is there a way of taking out the figure which is in model
space(entities section) ?
for example, in case of the attached file (the file of autocad ex2, maybe).
best regards,
kaneko
attached files (21.8 kb, 1 views)

if you open your file in autocad you won't see anything (just like in vectorizeex), because all entities are beyound the sceen bounds.
you may call e.g. zoomextents() to vectorize all visible entities of the current layout.
insert the following code
code:
odgsview* pview = pdevice->viewat(0);
odabstractviewpeptr(pview)->zoomextents(pview);before updating device in odvectorizeex sample.
vladimir
thanks. circleproc() became called.
i request another (true sorry). nurbsproc() isn't called in the attached file.
why is it?
attached files (39.9 kb, 1 views)

because active layout is paperspace
vladimir
thanks. i consulted the advice of mr.wvk and the other exsamples, i changed the program as follows.
code:
// pdevice = oddbgsmanager::setupactivelayoutviews(pdevice, pdwgcontext);
oddbobjectid spaceid = pdb->getactivelayoutbtrid();
if(spaceid == pdb->getpaperspaceid())
spaceid = pdb->getmodelspaceid();
oddbblocktablerecordptr pspace = spaceid.safeopenobject(oddb::kforwrite);
pdevice = oddbgsmanager::setuplayoutviews(pspace->getlayoutid(), pdevice, pdwgcontext);
odgsview* pview = pdevice->viewat(0);
odabstractviewpeptr(pview)->zoomextents(pview);is this ok?
best regards,
kaneko
it would be a bit simpler just to set active layout if you don't intend to save the file. but your way should also work.
vladimir


所有的时间均为北京时间。 现在的时间是 09:31 PM.