几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】odgiconveyorcontextcurrentdrawable always returns 0 (http://www.dimcax.com/hust/showthread.php?t=17695)

yang686526 2009-05-06 08:44 PM

【转帖】odgiconveyorcontextcurrentdrawable always returns 0
 
odgiconveyorcontext::currentdrawable always returns 0
odgiconveyorcontext::currentdrawable always returns 0
hi,
in odgsbasevectorizeview::dodraw - overrided method and all methods called from it, odgiconveyorcontext::currentdrawable always returns 0, though pdrawable prarametrer of dodraw is not 0.
regard,
michal sliwka

currentdrawable is set to odgibasevectorizer (odgibasevectorizer is implementor of odgiconveyorcontext interface) in odgibasevectorizer::dodraw().
if you insert this code to your overriden dodraw() method, your problem will most probably be solved. m_pdrawabledesc is protected member of odgibasevectorizer.
code:
odgilocaldrawabledesc desc(m_pdrawabledesc);
desc.ndrawableflags = ndrawableflags;
desc.persistid = pdrawable->id();
if(!desc.persistid)
desc.ptransientdrawable = pdrawable;
sincerely yours,
george udov
quote:
originally posted by george udov
currentdrawable is set to odgibasevectorizer (odgibasevectorizer is implementor of odgiconveyorcontext interface) in odgibasevectorizer::dodraw().
if you insert this code to your overriden dodraw() method, your problem will most probably be solved. m_pdrawabledesc is protected member of odgibasevectorizer.
code:
odgilocaldrawabledesc desc(m_pdrawabledesc);
desc.ndrawableflags = ndrawableflags;
desc.persistid = pdrawable->id();
if(!desc.persistid)
desc.ptransientdrawable = pdrawable;
unfortunately, it does not work. currentdrawable() always returns 0.
regards,
michal sliwka

could you please set breakpoint in the end of this code and post results:
- which value has desc.persistid ?
- which value has desc.ptransientdrawable ?
sincerely yours,
george udov
quote:
originally posted by george udov
could you please set breakpoint in the end of this code and post results:
- which value has desc.persistid ?
- which value has desc.ptransientdrawable ?
desc.persistid == 0x03089a58
desc.ptransientdrawable == 0
after subsequent call of this code during drawing, desc.persistid changes and desc.ptransientdrawable is always 0.
regards,
michal sliwka
it's mistaken change in dd 1.13.
we'll fix it in the next release/update.
you can open drawable by its id (desc.persistid) via call odgicontext::opendrawable().


所有的时间均为北京时间。 现在的时间是 01:10 AM.