动态块参数问题
你好我创建了小lisp,它插入块并将其动态参数数据添加到块中。。。但当我将动态特性应用于块时,参数应用于块,但块几何体不会更改,当我将相同的参数从属性窗口放置到块时,它也会更改块几何体。。。为什么我要面对这个问题?
块图纸和代码附于此处
动态块01。图纸
(defun c:test (/ a b dp)
(setq dp '(("V" . "R-R")
("SCALE" . 15.0)
("SPAN" . 2.0)
("HEIGHT" . 2.5)
("LL" . 15.0)
("LR" . 15.0)
("W" . 0.21)
("T" . 0.21)
("F" . 0.5)
("ANG" . 1.72788)
("ANGL" . 1.51844)
("ANGR" . 1.5708)
("HWW" . 0.38)
("CFELE" . 164.4)
("CF1" . 0.5)
("CF3" . 0.5)
("CF5" . 0.5)
("CF7" . 0.5)
("CF2" . 0.75)
("CF4" . 0.75)
("CF6" . 0.75)
("CF8" . 0.75)
("WA1" . 80.0)
("WA2" . 70.0)
("WA3" . 70.0)
("WA4" . 80.0)
("WL1" . 0.5)
("WL2" . 0.5)
("WL3" . 0.5)
("WL4" . 0.5)
("WT" . 0.4)
("TW1" . 0.6)
("TW2" . 0.6)
("TW3" . 0.6)
("TW4" . 0.6)
("FW1" . 1.6)
("FW2" . 1.4)
("FW3" . 1.4)
("FW4" . 1.4)
("RWL1" . 3.5)
("RWL2" . 2.5)
("RWL3" . 2.5)
("RWL4" . 2.5)
("KW1" . 0.6)
("KW2" . 0.4)
("KW3" . 0.4)
("KW4" . 0.4)
("LL-T" . 15.0)
("AngL-T" . 1.41372)
("LR-T" . 15.0)
("AngR-T" . 4.55531)
("AngL-SEC" . 1.46608)
("AngR-SEC" . -0.15708)
("LLT" . 10.0)
("LRT" . 652.0)
("ANG1" . 1.22173)
("ANG2" . 1.22173)
("ANG3" . 1.22173)
("ANG4" . 1.22173)
)
)
(if (setq a (getpoint "\nSpecify Point to Plot Block : "))
(progn
(setq b (vla-insertblock
(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
(vlax-3d-point a)
"O-PL-GA-1"
1
1
1
0
)
)
(mapcar '(lambda (x)
(vl-some
'(lambda (y)
(if (eq (strcase (vla-get-propertyname x))
(strcase (car y))
)
(vla-put-value x (vlax-make-variant (cdr y)))
)
)
dp
)
)
(vlax-invoke b 'getdynamicblockproperties)
)
)
)
(princ)
) 尝试执行(vla更新b)
页:
[1]