高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】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.
|