CAD 发表于 2022-7-6 06:38:28

lisp for sync属性手册

谁知道lisp可以手动同步文本属性。
 
例如,我附上了一张图纸。
 
我要使用命令:ats
1.属性的第一个lisp ask源
2.SecondSelect属性的目标
 
ATTSYNC该选项不适用于我,因为我不希望所有属性都相同,而只希望选择一个。
块图纸

Tharwat 发表于 2022-7-6 06:45:53

欢迎来到论坛。
 
需要更多细节,因为你的描述还不够——至少对我来说是这样

CAD 发表于 2022-7-6 06:52:23

你好:D,
在附件中,您可以看到有一个属性调用源,
我想要与属性同步的源属性,我手动选择。因此,文本位置与源位置相等。
属性我不选择不改变。

pBe 发表于 2022-7-6 07:00:03

 
这是关于块插入点的吗?或者它在图纸上的当前位置?
 
从样例图形上的外观来看,不仅属性是对齐的,而且块的“插入”点也是对齐的,但仅针对一些?

CAD 发表于 2022-7-6 07:00:46

属性的所有标记与源位置相同。插入点每次都可能不同。我已附上另一张图纸。
块3。图纸

pBe 发表于 2022-7-6 07:09:02

 
好的,听起来很简单。。坚持住。。。。
 
我得到了它。但是首先,为了好玩,给我一个答案:
 
当与另一个整数相乘时,所得乘积可以相加[单个,即123=6]
将结果转换为原始的一位数?
 
然后我会发布代码。。。

CAD 发表于 2022-7-6 07:14:31

我真的不明白,我真的不聪明哈哈。你的意思是什么数字示例123=6和12345=10

Lee Mac 发表于 2022-7-6 07:20:53

9 ........

CAD 发表于 2022-7-6 07:22:48

你怎么知道是9?李·麦克。

pBe 发表于 2022-7-6 07:29:57

 
 
 
试试看,用9乘以任意整数。。
 
(defun c:AArr (/ _Positions source atts ref pts ptref refang en i)
;;                pBe30Apr2013                ;;
(vl-load-com)
(defun _Positions (e lst p ang / lst v vals)
   (mapcar (function
             (lambda (at)
               (setq
               vals (list (vla-get-tagstring at) (vlax-get at 'Insertionpoint))
               )
               (if (and lst (setq v (assoc (car vals) lst)))
               (vlax-invoke
                   at
                   'Move
                   (Cadr vals)
                   (polar p (+ (cadr v) ang) (caddr v))
               )
               vals
               )
             )
         )
         (vlax-invoke
             (if (eq (type e) 'ENAME)
               (vlax-ename->vla-object e)
               e
             )
             'GetAttributes
         )
   )
)

(if (and (princ "\nSelect Attribute Block for Reference: ")
          (setq source (ssget "_:S" '((0 . "INSERT") (66 . 1))))
          (princ "\nSelect Blocks to process:")
          (setq atts
               (ssget
                   "_:L"
                   (list
                     '(0 . "INSERT")
                     '(66 . 1)
                     (cons 2
                           (cdr (assoc 2 (entget (setq source (ssname source 0)))))
                     )
                   )
               )
          )
   )
   (progn
   (setq ref    (vlax-get (setq source (vlax-ename->vla-object source))
                            'Insertionpoint
                  )
         refang (vla-get-rotation source)
   )
   (setq pts (_Positions source nil nil nil))
   (setq ptref (mapcar '(lambda (p_)
                            (list (car p_)
                                  (angle ref (cadr p_))
                                  (distance (cadr p_) ref)
                            )
                        )
                         pts
               )
   )

   (repeat (setq i (sslength atts))
       (setq en (vlax-ename->vla-object (ssname atts (setq i (1- i)))))
       (_Positions
         en
         ptref
         (vlax-get en 'Insertionpoint)
         (- (vlax-get en 'Rotation) refang)
       )
   )
   )
)
(princ)
)
页: [1] 2
查看完整版本: lisp for sync属性手册