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

yang686526 2009-05-05 08:57 AM

【转帖】editing 0 layer color
 
editing '0' layer color
editing '0' layer color
hi,
anybody could help how to set green (color index :3) color for '0' layer.
by default, '0' layer is set with white color.if setcolorindex called to set green , it return error and crashes.
oddblayertableptr players = pdb->getlayertableid().safeopenobject(oddb::kforwrite) ;
oddblayertablerecordptr player = oddblayertablerecord::createobject();
player->setname(odstring(dd_t("0")));
player->setcolorindex(odcmentitycolor::kacigreen);
player->setlineweight(oddb::klnwt158);
but if we autocad, the default layer will have white color.later one can edit to required color.could anybody help to edit the color of default layer.
thanks in advance,
petchi muthu
you try to recreate layer 0, which implies its erasure, which is forbidden.
just open it, and change the color.
vladimir
could you explain little more detail.
whatever the way, it is not accepting to set other color.
oddblayertableptr players = pdb->getlayertableid().safeopenobject(oddb::kforwrite) ;
oddbsymboltableiteratorptr piter = players->newiterator();
oddblayertablerecordptr player = oddblayertablerecord::createobject();
oddbobjectid layerid;
for (piter->start(); !piter->done(); piter->step())
{
oddblayertablerecordptr precord = piter->getrecordid().safeopenobject(oddb::kforread);
odstring layname = precord->getname();
if(! layname.compare("0"))
{
precord->erase();
player->setname(odstring(dd_t("0")));
player->setcolorindex(0x00000003);
int col = player->colorindex();
layerid = players->add(player);
}
}
here it crashes during call "precord->erase();" and
"layerid = players->add(player);"
thank you.
regards,
petchi
once again - you don't need to erase a layer, to change it's color.
vladimir
the deafault layer setting assigned with color white.i don't want .
further if i set color for default layer, still it is not accepting newly assigned color.still it takes white.(it was tried initially).then i erased default layer and created layer with '0' assigned required color, it crashes.
i think, i am missing some understanding what you explain.could you explain little clear.
thanks in advance
perhaps it's me who doesn't understand something...
why not just open the layer and change its color? like this, e.g.:
code:
oddblayertablerecordptr(pdb->getlayerzeroid().safeopenobject(oddb::kforwrite))->setcolorindex(3);
vladimir
thanks lot.
i understand my mistake.
it works well.
regards,
petchi muthu


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