Lt Dan's l 发表于 2022-7-6 10:36:45

在10到20之间。只是想了解更多关于VL的信息。

Lt Dan's l 发表于 2022-7-6 10:40:52

我不明白为什么这扇门不起作用
 
(defun c:mod ( / doc ss )
;;Lee Mac
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (ssget '((0 . "INSERT") (2 . "34door,`*U*")))
   (progn
   (vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc))
       (if (eq "34DOOR" (vla-get-EffectiveName obj))
         (vl-some
         (function
             (lambda ( p )
               (if (eq "Door Hinge" (vla-get-PropertyName p))
               (progn (vla-put-Value p "LEFT") T)
               )
             )
         )
         (vlax-invoke obj 'GetDynamicBlockProperties)
         )
       )
   )
   (vla-delete ss)
   )
)
(princ)
)

Lee Mac 发表于 2022-7-6 10:42:38


(defun c:mod ( / doc ss )
;;Lee Mac
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

(if (ssget '((0 . "INSERT") (2 . "34door,`*U*")))
   (progn
   (vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc))
       (if (eq "34DOOR" (strcase (vla-get-EffectiveName obj)))
         (LM:SetDynamicPropValue obj "Door Hinge" 0)
       )
   )
   (vla-delete ss)
   )
)

(princ)
)

;;------------=={ Set Dynamic Property Value }==--------------;;
;;                                                            ;;
;;Modifies the value of a Dynamic Block Property            ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2010 - www.lee-mac.com       ;;
;;------------------------------------------------------------;;
;;Arguments:                                                ;;
;;block - VLA Dynamic Block Reference Object                ;;
;;prop- Dynamic Block Property Name                     ;;
;;value - New value for Property                            ;;
;;------------------------------------------------------------;;
;;Returns: Value property was set to, else nil            ;;
;;------------------------------------------------------------;;

(defun LM:SetDynamicPropValue ( block prop value )
;; © Lee Mac 2010
(vl-some
   (function
   (lambda ( _prop )
       (if (eq prop (vla-get-propertyname _prop))
         (progn
         (vla-put-value _prop
             (vlax-make-variant value
               (vlax-variant-type (vla-get-value _prop))
             )
         )
         value
         )
       )
   )
   )
   (vlax-invoke block 'GetDynamicBlockProperties)
)
)

 
http://lee-mac.com/dynamicblockfunctions.html

Lt Dan's l 发表于 2022-7-6 10:45:52

谢谢李!!

alanjt 发表于 2022-7-6 10:48:41

你就不能改变一下吗
(progn (vla-put-Value p "LEFT") T)

5
?
 
我能够成功地设置这样的动态值,而不必将它们转换为变量。

Lt Dan's l 发表于 2022-7-6 10:52:46

@艾伦
那没用。。。
图纸1.dwg

Lee Mac 发表于 2022-7-6 10:54:31

给出:
 
试试看。
 
*只是好奇*

Lt Dan's l 发表于 2022-7-6 10:58:21

**错误:AutoCAD。应用:无效输入**

Lee Mac 发表于 2022-7-6 11:02:36

 
是的-我想可能会这样

Lt Dan's l 发表于 2022-7-6 11:03:56

这个问题只有在翻转动态对象时才会出现吗?
页: 1 [2]
查看完整版本: 写这个更好的方法?