Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 09/29/2022 in all areas

  1. Isn't that what the Hatch command already does?
    1 point
  2. I'm not sure if this is how you like the script to help you. Try it out, see if you want it differently. (vl-load-com) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; http://www.lee-mac.com/dynamicblockfunctions.html ;; Set Dynamic Block Visibility State - Lee Mac ;; Sets the Visibility Parameter of a Dynamic Block (if present) to a specific value (if allowed) ;; blk - [vla] VLA Dynamic Block Reference object ;; val - [str] Visibility State Parameter value ;; Returns: [str] New value of Visibility Parameter, else nil (defun LM:SetVisibilityState ( blk val / vis ) (if (and (setq vis (LM:getvisibilityparametername blk)) (member (strcase val) (mapcar 'strcase (LM:getdynpropallowedvalues blk vis))) ) (LM:setdynpropvalue blk vis val) ) ) ;; Set Dynamic Block Property Value - Lee Mac ;; Modifies the value of a Dynamic Block property (if present) ;; blk - [vla] VLA Dynamic Block Reference object ;; prp - [str] Dynamic Block property name (case-insensitive) ;; val - [any] New value for property ;; Returns: [any] New value if successful, else nil (defun LM:setdynpropvalue ( blk prp val ) (setq prp (strcase prp)) (vl-some '(lambda ( x ) (if (= prp (strcase (vla-get-propertyname x))) (progn (vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x)))) (cond (val) (t)) ) ) ) (vlax-invoke blk 'getdynamicblockproperties) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; http://www.lee-mac.com/attributefunctions.html ;; Set Attribute Value - Lee Mac ;; Sets the value of the first attribute with the given tag found within the block, if present. ;; blk - [vla] VLA Block Reference Object ;; tag - [str] Attribute TagString ;; val - [str] Attribute Value ;; Returns: [str] Attribute value if successful, else nil. (defun LM:vl-setattributevalue ( blk tag val ) (setq tag (strcase tag)) (vl-some '(lambda ( att ) (if (= tag (strcase (vla-get-tagstring att))) (progn (vla-put-textstring att val) val) ) ) (vlax-invoke blk 'getattributes) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Dynamic Block Distance lisp Adjustment (defun dbda ( ss lft rgt / i blk ) (setq i 0) (repeat (sslength ss) (setq blk (vlax-ename->vla-object (ssname ss i))) ;; TO DO: see if the block is "X_block" (LM:setdynpropvalue blk "Distance1" lft) (LM:vl-setattributevalue blk "X1" (itoa lft)) (LM:setdynpropvalue blk "Distance2" rgt) (LM:vl-setattributevalue blk "X2" (itoa rgt)) (setq i (+ i 1)) ) ) (defun c:dbda ( / ss lft rgt ) ;; user set values and select objects (setq lft (getint "\nLeft value: ")) (setq rgt (getint "\nRight value: ")) (setq ss (ssget (list (cons 0 "INSERT")))) (dbda ss lft rgt) (princ) )
    1 point
×
×
  • Create New...