求助扩展数据出错。。。
(defun c:test( / )(setq ss (ssget))
(setq ename (ssname ss 0))
(setq vname (vlax-ename->vla-object ename))
(setq datatype (vlax-make-safearray vlax-vbInteger '(0 . 3)))
(vlax-safearray-fill datatype '(1001 1000 1001 1000))
(setq data (vlax-make-safearray vlax-vbvariant '(0 . 3)))
(vlax-safearray-fill data '("ITU_PLDY_TK" "ffs10""ITU_PLDY_TM" "Drawing4__10"))
;(vlax-safearray-fill data '("ITU_PLDY_TM" "Drawing4__10" ))
(vla-setxdata vname datatype data)
(princ)
)以上代码设置扩展属性的值,,,有时候可以用,,但是有时就出错,,出错在vla-setxdata 提示:未找到注册的应用程序ID,不太懂变体,,,求大佬帮忙看下,,谢谢!!!
;;******************实体中写入扩展数据**********************
(defun c:APP()
;(setq lastent(entget(entlast)))
(setq lastent0(car(entsel"\n选择对象")))
;(setq PtName(getstring"\n请输入点号:"))
(if(/= lastent0 nil)
(progn
(while lastent0
(setq ssr0 (car (entsel "\n请选择点号:")))
(setq ssna (entget ssr0))
(setq PtName(cdr(assoc '1. ssna)))
(setq lastent(entget lastent0))
(if (= (regapp "K_PtName") NULL)(regapp "K_PtName"))
(setq entlist(list -3
(append (list "K_PtName") (list (cons '1000 PtName)))
)
)
(setq lastent (append lastent (list entlist)))
(entmod lastent);;;更新实体属性
(setq DianM(cdr(assoc 1000 (cdr(assoc "K_PtName" (cdr(assoc -3(entget lastent0 '("K_PtName")))))))))
(setq xyz(cdr (assoc 10 lastent)))
(command "text"xyz "0.8" "0.0" DianM)
(setq lastent0(car(entsel"\n选择对象")))
(if(/= lastent0 nil)
(progn
(setq dm PtName)
; (name_add1)
(setq PtName dm)
)
)
)
)
(princ"\n没有选择源对象!")
)
) nxchenjk 发表于 2023-6-1 19:02
;;******************实体中写入扩展数据**********************
(defun c:APP()
;(setq lastent(entge ...
谢谢您的回复,,,我试了把4个值分开两组写入可以了,,谢谢 12345678910
本帖最后由 llsheng_73 于 2023-6-4 12:28 编辑
先对将要涉及到的应用进行注册,源程序中1001对应的两个字串"ITU_PLDY_TK""ITU_PLDY_TM"
(regapp"ITU_PLDY_TK")
(regapp"ITU_PLDY_TM")
可以放到程序开始的地方,反正使用它们之前要先注册 llsheng_73 发表于 2023-6-4 12:26
先对将要涉及到的应用进行注册,源程序中1001对应的两个字串"ITU_PLDY_TK""ITU_PLDY_TM"
(regapp"ITU_PLDY ...
哦,我去试试,为什么单个操作就没事?这个有什么讲究?
页:
[1]