Тема: AcDbXrecord
необходимая задача - перевод кода с Lisp на ObjectARX.
Пример кода на Lisp:
(setq dict (list '(0 . "DICTIONARY") '(100 . "AcDbDictionary"))) (setq xname (entmakex dict)) (setq dict (dictadd (namedobjdict) "AcStStandard" xname)) (Setq ob1 (list (cons 0 "XRECORD") (cons 100 "AcDbXrecord") (cons 280 1) (cons 1 "C:\\test.dws") )) (setq xname (entmakex ob1)) (if xname (dictadd dict "0" xname) (princ "\nCan't create XRECORD!") )
он работает без проблем.
на arx делаю так:
AcDbDictionary *pNamedobj; acdbHostApplicationServices()->workingDatabase()-> getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite); AcDbDictionary *pDict = new AcDbDictionary; AcDbObjectId DictId; pNamedobj->setAt("DICTIONARY", pDict, DictId); pNamedobj->close(); AcDbXrecord *pXrec = new AcDbXrecord; AcDbObjectId xrecObjId; struct resbuf *pHead; pHead = acutBuildList( 280, 1, 1, "C:\\test.dws", 0); pXrec->setFromRbChain(*pHead); acutRelRb(pHead); pDict->setAt("XRECORD", pXrec, xrecObjId); pDict->close(); pXrec->close();
код отрабатывает, Dictionary создается, но ссылку не создает... в чем может быть проблема?