lisp for sync属性手册
谁知道lisp可以手动同步文本属性。例如,我附上了一张图纸。
我要使用命令:ats
1.属性的第一个lisp ask源
2.SecondSelect属性的目标
ATTSYNC该选项不适用于我,因为我不希望所有属性都相同,而只希望选择一个。
块图纸 欢迎来到论坛。
需要更多细节,因为你的描述还不够——至少对我来说是这样 你好:D,
在附件中,您可以看到有一个属性调用源,
我想要与属性同步的源属性,我手动选择。因此,文本位置与源位置相等。
属性我不选择不改变。
这是关于块插入点的吗?或者它在图纸上的当前位置?
从样例图形上的外观来看,不仅属性是对齐的,而且块的“插入”点也是对齐的,但仅针对一些? 属性的所有标记与源位置相同。插入点每次都可能不同。我已附上另一张图纸。
块3。图纸
好的,听起来很简单。。坚持住。。。。
我得到了它。但是首先,为了好玩,给我一个答案:
当与另一个整数相乘时,所得乘积可以相加[单个,即123=6]
将结果转换为原始的一位数?
然后我会发布代码。。。 我真的不明白,我真的不聪明哈哈。你的意思是什么数字示例123=6和12345=10 9 ........ 你怎么知道是9?李·麦克。
试试看,用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