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

yang686526 2009-05-04 06:49 PM

【转帖】creating oddbdimassoc
 
creating oddbdimassoc
creating oddbdimassoc
hi,
i have asked something like this before, but still do not know the answer: i would like to create an association between a dimension and other data base objects (for example make an aligned dimension associative). so i have the oddbhandle of an oddbaligneddimension, the handle of the corresponding oddbline (or whatever you want), i can create an oddbdimassoc object, i can set the corresponding dimension to the one i want, but i don't have a clue how to set the oddbosnappointrefs (more exactly their main entities - these are private members with no set functions in the class oddbosnappointref) or what should i do instead?
could you help me with this?
thank you,
miklos
here is the sample code from writeex example application.
oddblineptr pline; // some line
oddbrotateddimensionptr pad; // some dimention
pad->createextensiondictionary();
oddbdictionaryptr dict = pad->extensiondictionary().safeopenobject(oddb::kforwr ite);
oddbdimassocptr dimassoc = oddbdimassoc::createobject();
dimassoc->setdimension(dimid);
dimassoc->setrotateddimtype(oddbdimassoc::kparallel);
oddbobjectid dimassid = dict->setat("acad_dimassoc", dimassoc);
oddbosnappointrefptr pointref = oddbosnappointref::createobject();
pointref->osnappoint() = pline->startpoint();
pointref->setosnapmode(oddb::kosmodestart);
pointref->setnearosnap(0.0);
pointref->mainentity().objectids().append(lineid);
pointref->mainentity().subentid().settype(oddb::kedgesubent type);
dimassoc->setosnappointref(oddbdimassoc::kfirstpoint, pointref);
pointref = oddbosnappointref::createobject();
pointref->osnappoint() = pline->endpoint();
pointref->setosnapmode(oddb::kosmodeend);
pointref->setnearosnap(0.0);
pointref->mainentity().objectids().append(lineid);
pointref->mainentity().subentid().settype(oddb::kvertexsube nttype);
dimassoc->setosnappointref(oddbdimassoc::ksecondpoint, pointref);
// setting reactors
pad->addpersistentreactor(dimassid);
pline->addpersistentreactor(dimassid);
--
best regards,
sergey z.


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