高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】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
|