你好
我创建了小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)
- )
|