请求完善程序:N多个圆、圆弧移动到指定点(同一个圆心点)
<div style="PADDING-RIGHT: 0px; MARGIN-TOP: 10px; FONT-SIZE: 12pt; OVERFLOW-X: hidden; WIDTH: 97%; WORD-BREAK: break-all; TEXT-INDENT: 0px; LINE-HEIGHT: normal; HEIGHT: 200px; WORD-WRAP: break-word;"><p>想达到的目的:选取N多个圆、圆弧移动到指定点 (必须圆、圆弧、椭圆和椭圆弧同一个圆心点),省去一个个操作的麻烦</p><p></p><p>;;;圆、圆弧移动到指定点(同一个圆心点)<br/>(defun c:QQ ()(setvar "pickbox" 24)(setvar "cmdecho" 0) <br/>(setvar "CMDECHO" 0) <br/>(STRCAT "请选取要移动的圆、圆弧、椭圆和椭圆弧 :")<br/>(setq ss (ssget '((0 . "Arc,Circle,Ellipse"))))<br/> (= (sslength ss) 2)) <br/> (progn<br/> (setq en (ssname ss 0) ent (entget en))<br/> (if (= (cdr(assoc 0 ent)) '((0 . "Arc,Circle,Ellipse")))<br/> (setq en1 (ssname ss 1) ent1 (entget en1))<br/> (setq en1 en ent1 ent en (ssname ss 1) ent (entget en))<br/>)<br/> (setq pc (cdr(assoc 10 ent1))<br/> ptt (txtcen ent)) <br/>(setq pc (cdr (assoc 10 ent))))</p><p>(setq pt2 (getpoint "[选择目标点] : "))<br/>(command ".move" en "" ptt pc)<br/>))<br/>(setq SS nil) (setvar "cmdecho" 1)) </p></div>(defun c:QQ ()
(setvar "pickbox" 24)
(setvar "cmdecho" 0)
(setvar "CMDECHO" 0)
(prompt "请选取要移动的圆、圆弧、椭圆和椭圆弧 :")
(if (setq ss (ssget '((0 . "ARC,CIRCLE,ELLIPSE"))))
(if (setq pt (getpoint "\n指定点 :")) (progn
(setq i 0)
(repeat (sslength ss)
(setq en (ssname ss i)
ent (entget en))
(setq pc (cdr(assoc 10 ent)))
(setq ent (subst (cons 10 pt) (assoc 10 ent) ent))
(entmod ent)
(setq i (1+ i))
)
))
)
(setvar "CMDECHO" 1)
(princ)
)
页:
[1]