Set dynamic block parameters
(defun myModifyBk ( lstProp / ss index cnt oBkRef oProps i j oSBReferenceProperty)
(vl-load-com)
(SETQ ss (SSGET "_A"))
(setq index 0
cnt (sslength ss)
)
(while (< index cnt)
(setq e (ssname ss index))
(setq oBkRef (vlax-ename->vla-object e))
(setq oProps (vlax-variant-value (vla-GetDynamicBlockProperties oBkRef)))
(setq i (vlax-safearray-get-l-bound oProps 1))
(while (<= i (vlax-safearray-get-u-bound oProps 1))
(setq oSBReferenceProperty (vlax-safearray-get-element oProps i))
(print (strcat (vla-get-PropertyName oSBReferenceProperty) "="))
(princ (vlax-variant-value (vla-get-value oSBReferenceProperty)))
(setq i (1+ i))
)
(setq j 0)
(while (< j (length lstProp))
(setq sProp (strcase (nth j lstProp)))
(setPropValue oProps sProp (nth (+ 1 j) lstProp))
(setq j (+ 2 j))
) ;while < j (length lstProp)
(setq index (1+ index))
) ;while < index cnt
(princ)
)
(defun setPropValue (oProps sProp Val / i oSBReferenceProperty sPName iFound)
(setq i (vlax-safearray-get-l-bound oProps 1))
(setq iFound 0)
(while (and (<= i (vlax-safearray-get-u-bound oProps 1)) (= iFound 0))
(setq oSBReferenceProperty (vlax-safearray-get-element oProps i))
(setq sPName (vla-get-PropertyName oSBReferenceProperty))
(if (= (strcase sPName) sProp)
(progn
(print (strcat "_Old value of " sPName "="))
(princ (vlax-variant-value (vla-get-value oSBReferenceProperty)))
(vla-put-value oSBReferenceProperty
(vlax-make-variant Val
(vlax-variant-type (vla-get-value oSBReferenceProperty))
)
)
(print "New value=")
(princ (vlax-variant-value (vla-get-value oSBReferenceProperty)))
(setq iFound 1)
)
)
(setq i (1+ i))
)
(princ)
)
;--------------------------------
;Get Base adress from block
;; Get Dynamic Block Property Value - Lee Mac
;; Returns the value of a Dynamic Block property (if present)
;; blk - [vla] VLA Dynamic Block Reference object
;; prp - [str] Dynamic Block property name (case-insensitive)
(defun LM:getdynpropvalue ( blk prp )
(setq prp (strcase prp))
(vl-some '(lambda ( x ) (if (= prp (strcase (vla-get-propertyname x))) (vlax-get x 'value)))
(vlax-invoke blk 'getdynamicblockproperties)
)
)
(if (and (setq e (car (entsel "\nSelect block: "))) ;(entsel "\nSelect block: ")
(= "INSERT" (cdr (assoc 0 (entget e))))
)
(print (setq x (LM:getdynpropvalue (vlax-ename->vla-object e) "base")))
)
;----------
;Enter adress
(setq
adres (getint "\nEnter adress[0-1023]: ")
);setq
;----------
;Set pins
;----------
;9
(if (>= adres 512)
(progn
(setq
adres (- adres 512)
);setq
(setq x9 1)
);progn
(progn ;else
(setq x9 0)
);progn
);if
;----------
;8
(if (>= adres 256)
(progn
(setq
adres (- adres 256)
);setq
(setq x8 1)
);progn
(progn ;else
(setq x8 0)
);progn
);if
;----------
;7
(if (>= adres 128)
(progn
(setq
adres (- adres 128)
);setq
(setq x7 1)
);progn
(progn ;else
(setq x7 0)
);progn
);if
;----------
;6
(if (>= adres 64)
(progn
(setq
adres (- adres 64)
);setq
(setq x6 1)
);progn
(progn ;else
(setq x6 0)
);progn
);if
;----------
;5
(if (>= adres 32)
(progn
(setq
adres (- adres 32)
);setq
(setq x5 1)
);progn
(progn ;else
(setq x5 0)
);progn
);if
;----------
;4
(if (>= adres 16)
(progn
(setq
adres (- adres 16)
);setq
(setq x4 1)
);progn
(progn ;else
(setq x4 0)
);progn
);if
;----------
;3
(if (>= adres 8)
(progn
(setq
adres (- adres 8)
);setq
(setq x3 1)
);progn
(progn ;else
(setq x3 0)
);progn
);if
;----------
;2
(if (>= adres 4)
(progn
(setq
adres (- adres 4)
);setq
(setq x2 1)
);progn
(progn ;else
(setq x2 0)
);progn
);if
;----------
;1
(if (>= adres 2)
(progn
(setq
adres (- adres 2)
);setq
(setq x1 1)
);progn
(progn ;else
(setq x1 0)
);progn
);if
;----------
;0
(if (>= adres 1)
(progn
(setq
adres (- adres 1)
);setq
(setq x0 1)
);progn
(progn ;else
(setq x0 0)
);progn
);if
;Print adress
(princ "\n_PROFIsafe Address: ")
(princ x9)
(princ x8)
(princ x7)
(princ x6)
(princ x5)
(princ x4)
(princ x3)
(princ x2)
(princ x1)
(princ x0)
;----------
;0
(if (>= x0 1)
(progn
(myModifyBk (list "Flip_state0" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state0" 0))
);progn
);if
;----------
;1
(if (>= x1 1)
(progn
(myModifyBk (list "Flip_state1" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state1" 0))
);progn
);if
;----------
;2
(if (>= x2 1)
(progn
(myModifyBk (list "Flip_state2" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state2" 0))
);progn
);if
;----------
;3
(if (>= x3 1)
(progn
(myModifyBk (list "Flip_state3" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state3" 0))
);progn
);if
;----------
;4
(if (>= x4 1)
(progn
(myModifyBk (list "Flip_state4" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state4" 0))
);progn
);if
;----------
;5
(if (>= x5 1)
(progn
(myModifyBk (list "Flip_state5" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state5" 0))
);progn
);if
;----------
;6
(if (>= x6 1)
(progn
(myModifyBk (list "Flip_state6" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state6" 0))
);progn
);if
;----------
;7
(if (>= x7 1)
(progn
(myModifyBk (list "Flip_state7" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state7" 0))
);progn
);if
;----------
;8
(if (>= x8 1)
(progn
(myModifyBk (list "Flip_state8" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state8" 0))
);progn
);if
;----------
;9
(if (>= x9 1)
(progn
(myModifyBk (list "Flip_state9" 1))
);progn
(progn ;else
(myModifyBk (list "Flip_state9" 0))
);progn
);if
;----------
;**************************************************END
Thanks Lee Mac :)
But i wanna Select block in different way.
(defun myModifyBk ( lstProp / ss index cnt oBkRef oProps i j oSBReferenceProperty)
(vl-load-com)
(SETQ ss (SSGET "_A"))
(setq index 0
cnt (sslength ss)
)
(while (< index cnt)
(setq e (ssname ss index))
(setq oBkRef (vlax-ename->vla-object e))
(setq oProps (vlax-variant-value (vla-GetDynamicBlockProperties oBkRef)))
(setq i (vlax-safearray-get-l-bound oProps 1))
(while (<= i (vlax-safearray-get-u-bound oProps 1))
(setq oSBReferenceProperty (vlax-safearray-get-element oProps i))
(print (strcat (vla-get-PropertyName oSBReferenceProperty) "="))
(princ (vlax-variant-value (vla-get-value oSBReferenceProperty)))
(setq i (1+ i))
)
(setq j 0)
(while (< j (length lstProp))
(setq sProp (strcase (nth j lstProp)))
(setPropValue oProps sProp (nth (+ 1 j) lstProp))
(setq j (+ 2 j))
) ;while < j (length lstProp)
(setq index (1+ index))
) ;while < index cnt
(princ)
)
error: ActiveX Server returned the error: unknown name: GetDynamicBlockProperties