选择所有具有
请你帮我写一个lisp代码;立即选择选择窗口内具有相同名称(点)的所有块。然后我需要改变那个块的比例因子。 这
(defun c:TesT (/ sc ss i sn)
;;; Tharwat 13. Dec. 2011 ;;;
(if (and (setq sc (getdist "\n Specify Scale factor :"))
(setq ss (ssget "_:L" '((0 . "INSERT") (2 . "dot"))))
)
(progn (repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(command "_.scale" sn "" (cdr (assoc 10 (entget sn))) sc)
)
(sssetfirst nil ss)
)
(princ)
)
(princ)
)
q选择块,然后选择属性>比例 另外,通过修改DXF组码:
(defun c:scaleblocks ( / ent inc sel )
(if
(and
(setq sel (ssget "_:L" '((0 . "INSERT") (2 . "dot"))))
(setq *scale*
(cond
( (getdist
(strcat "\nSpecify Scale <"
(rtos (setq *scale* (cond (*scale*) (1.0)))) ">: "
)
)
)
( *scale* )
)
)
)
(repeat (setq inc (sslength sel))
(setq ent (entget (ssname sel (setq inc (1- inc)))))
(foreach x '(41 42 43) (setq ent (subst (cons x *scale*) (assoc x ent) ent)))
(entmod ent)
)
)
(princ)
) 谢谢。
两个文件都工作正常。但方式不同。
请您再编写一个代码来选择高度为100的单行文本并更改高度。如果你这样做,这对我的cad工作非常方便。 再次:QSELECT>PROPERTIES 再次:QSELECT>PROPERTIES
大多数用户会忘记使用Lisp在Cad中附加的基本命令,尽管如此
我建议使用它们。
(defun c:TesT (/ sc ss i sn)
;;; Tharwat 13. Dec. 2011 ;;;
(if (and (setq sc (getdist "\n Specify new height :"))
(setq ss (ssget "_:L" '((0 . "TEXT,MTEXT") (40 . 100))))
)
(repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(entmod (subst (cons 40 sc) (assoc 40 (entget sn))(entget sn)))
)
(princ)
)
(princ)
)
因为人们不断发布错误的代码,而不仅仅是通知他们现有的命令。 希望你不要谈论注释性文本。
页:
[1]
2