只要抓住要点
大家好,
这个程序对我很有帮助。
我有个问题:
如何仅当对象位于XXX层时过滤选择“label1st”,而仅当对象位于YYY层时过滤选择“label2nd”?
提前谢谢。 谢谢你的评论。
要按特定图层过滤标签,只需使用图层名称修改以下代码:
(defun C:MoveLabels( / thePoint label1st label2nd moveSet entList)
(while (and (setq thePoint (getpoint "\nInsertion point: "))
(setq label1st (ssget "_:S:E" '((0 . "TEXT") (8 . "XXX"))))
(setq label2nd (ssget "_:S:E" '((0 . "TEXT") (8 . "YYY")))))
(progn
(setq label1st (ssname label1st 0)
label2nd (ssname label2nd 0))
(foreach moveSet (list (list label1st 300.0 0.0)
(list label2nd 300.0 400.0))
(setq entList(entget (car moveSet)))
(entmod (subst (cons '10 (trans (list (+ (car thePoint) (cadr moveSet)) (+ (cadr thePoint) (caddr moveSet)) (caddr thePoint)) 1 0))
(assoc 10 entList)
entList))
)
)
)
(princ)
)
当做
米尔恰
米尔恰,谢谢你的回复。
我理解其修改的逻辑,但返回以下错误:
Command: MoveLabels
nInsertion point:
Select objects:
Select objects:
ERROR: bad argument type: lentityp <Selection set: 151>
Command:
你能告诉我你是如何把代码从13号改成适合你的情况的吗?
当做
米尔恰
这是我更改的代码:
7 恐怕你忘了抄几行:
问候,
米尔恰
页:
1
[2]