![]() |
【转帖】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. |