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

yang686526 2009-05-04 05:43 PM

【转帖】changing dimension arrow type
 
changing dimension arrow type
changing dimension arrow type
hello,
can i trouble anybody with a question about dimensions?
i want to know how to change the deafult dimension arrow with some of the other default types(ex. "_dot", "_origin", "_open", etc.) as in acad. is there any binary file where they are stored? i want to get them and to store as blocks in the database block table.
thanks in advance,
hotsouce
oddbdimstyletablerecord and oddbdimension have methods:
setdimblk(), setdimblk1(), setdimblk2
which accept arrow name as string.
for standard autocad arrows like "_dot" etc. blocks representing arrows will be generated by dd.
sergey slezkin

thanks,
i found these methods and now everything is ok.
quote:
originally posted by sergey slezkin
oddbdimstyletablerecord and oddbdimension have methods:
setdimblk(), setdimblk1(), setdimblk2
which accept arrow name as string.
for standard autocad arrows like "_dot" etc. blocks representing arrows will be generated by dd.
i'm creating a new dwg file:
odrxobjectimpl<myservices> svcs;
odinitialize(&svcs);
oddbdatabaseptr pdb = svcs.createdatabase();
and then trying to create a new dim style...
oddbdimstyletableptr pstyletbl;
pstyletbl = pdb->getdimstyletableid().safeopenobject(oddb::kforwri te);
if (!pstyletbl->has( "testing" )) {
oddbdimstyletablerecordptr pstyletblrcd = oddbdimstyletablerecord::createobject();
pstyletblrcd->setname( "testing" );
pstyletblrcd->setdimblk("_dot"); //<-exception, same for setdimblk1 or setdimblk2..
pstyletbl->add(pstyletblrcd);
}
but setdimblk(), setdimblk1(), setdimblk2() causes an exception...
can anyone figure out what is wrong?
i suppose you get enodatabase exception.
add the dimstyletabletablerecord to the table first before calling setdimblk(name_string).
setdimblk(id) can be called on non-database resident objects.
setdimblk(name) - not.
because dd needs to find block id having block name and database to search block in is unknown.
sergey slezkin
quote:
originally posted by sergey slezkin
i suppose you get enodatabase exception.
add the dimstyletabletablerecord to the table first before calling setdimblk(name_string).
setdimblk(id) can be called on non-database resident objects.
setdimblk(name) - not.
because dd needs to find block id having block name and database to search block in is unknown.
thank you. it is ok now...


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