Xrecord不';t创建
大家好,很高兴再次见到你们!我在创建这个xrecord时遇到了一个问题:
(setq anXrec (entmakex '((0 . "XRECORD")
(100 . "AcDbXrecord")
(300 . posizione)
(301 . altezza)
(302 . larghezza)
(303 . colore_cordolo)
(280 . n_superiore)
(281 . phi_superiore)
(282 . n_inferiore)
(283 . phi_inferiore)
(284 . phi_staffa)
(285 . passo_staffa)
(286 . n_legature)
)
)
)
http://i.imgur.com/3YVYA3F.png
数据应该是一致的,对吗?也许entmake不接受这种类型的sytax。。有人能给我一个建议吗?
谢谢
丹尼斯 我正在尝试使用(缺点)计算表达式,但我得到一个错误
这是完整的脚本:
(defun c:cordoli/cordoli/aggiungi_cordolo#OnClicked (/)
(dcl-ComboBox-AddString cordoli/cordoli/n_tipo_cordoli (dcl-Control-GetText cordoli/cordoli/nome))
(setq nome (dcl-Control-GetText cordoli/cordoli/nome)
posizione (dcl-Control-GetText cordoli/cordoli/posizione)
altezza (dcl-Control-GetText cordoli/cordoli/altezza)
larghezza (dcl-Control-GetText cordoli/cordoli/larghezza)
;;COLORE
colore_cordolo (dcl-Control-GetText cordoli/cordoli/colore_cordolo)
estensione (dcl-Control-GetText cordoli/cordoli/estensione)
n_superiore (atoi (dcl-Control-GetText cordoli/cordoli/n_superiore))
phi_superiore (atoi (dcl-Control-GetText cordoli/cordoli/phi_superiore))
n_inferiore (atoi (dcl-Control-GetText cordoli/cordoli/n_inferiore))
phi_inferiore (atoi (dcl-Control-GetText cordoli/cordoli/phi_inferiore))
phi_staffa (atoi (dcl-Control-GetText cordoli/cordoli/phi_staffa))
passo_staffa (atoi (dcl-Control-GetText cordoli/cordoli/passo_staffa))
n_legature (atoi (dcl-Control-GetText cordoli/cordoli/n_legature))
)
(get-or-make-Xrecord nome)
);this sets the variables
;//////////////////////////////
(defun get-or-create-Dict (/ adict)
;;test if "Cordoli" is already present in the main dictionary
(if (not (setq adict (dictsearch (namedobjdict) "Cordoli")))
;;if not present then create a new one and set the main
;; dictionary as owner
(progn
(setq adict (entmakex '((0 . "DICTIONARY")(100 . "AcDbDictionary"))))
;;if succesfully created, add it to the main dictionary
(if adict (setq adict (dictadd (namedobjdict) "Cordoli" adict)))
)
;;if present then just return its entity name
(setq adict (cdr (assoc -1 adict)))
)
)
(defun get-or-make-Xrecord ( nome / adict anXrec nome)
(cond
;;first get our dictionary. Notice that "Cordoli" will be
;;created here in case it doesn't exist
((setq adict (get-or-create-Dict))
(cond
;;if "Cordoli" is now valid then look for "Cordoli" Xrecord
((not (setq anXrec (dictsearch adict nome)))
;;if "Cordoli" was not found then create it
(setq anXrec (entmakex '((0 . "XRECORD")
(100 . "AcDbXrecord")
(cons 300 posizione)
(cons 301 altezza)
(cons 302larghezza)
(cons 303colore_cordolo)
(cons 280n_superiore)
(cons 281phi_superiore)
(cons 282n_inferiore)
(cons 283phi_inferiore)
(cons 284phi_staffa)
(cons 285passo_staffa)
(cons 286n_legature)
)
)
)
;;if creation succeeded then add it to our dictionary
(if anXrec (setq anXrec (dictadd adict nome anXrec)))
)
;;if it's already present then just return its entity name
(setq anXrec
(cdr (assoc -1 (dictsearch adict nome)))
)
)
)
)
)
谢谢 您需要cons包含变量的行
(setq anXrec (entmakex (list '(0 . "XRECORD")
'(100 . "AcDbXrecord")
(cons 300 posizione)
(cons 301altezza)
(cons 302larghezza)
(cons 303colore_cordolo)
(cons 280n_superiore)
(cons 281phi_superiore)
(cons 282n_inferiore)
(cons 283phi_inferiore)
(cons 284phi_staffa)
(cons 285passo_staffa)
(cons 286n_legature)
)
)
)
非常感谢你!它起作用了!
如何删除xrecord?改变它的价值观?
谢谢
页:
[1]