669423907 发表于 2014-11-1 22:09:36

关于带基点复制后粘帖的问题

(defun c:`q()
(setq ss (ssget))
(command "copybase" (getpoint"\请指定基点") (ssget "p") "" "pasteclip")
(princ))

这个是指定基点后就可以马上粘帖了,还可以切换到别的窗口粘帖。但是有时侯在同一窗口下要粘帖两三次就不方便了,请问可以改进为右键就可以再次粘帖吗?不想用"copyclip" ss "" "copy" ss "" "m"

yoyoho 发表于 2014-11-2 07:42:59

(defun c:TT ()
(setq ss (ssget))
(command "copybase" (getpoint"\n請指定基點") SS "")
(WHILE (SETQ PT (GETPOINT "\n請指定插入點"))
(command "pasteclip" PT)
(princ)
)
(princ))

669423907 发表于 2014-11-2 15:24:01

yoyoho 发表于 2014-11-2 07:42 static/image/common/back.gif
(defun c:TT ()
(setq ss (ssget))
(command "copybase" (getpoint"\n請指定基點") SS "")


谢谢了,虽然有差别,但还是很有用的

yoyoho 发表于 2014-11-2 21:03:31

改进为右键就可以再次粘帖
参考
鼠标右键添加子级菜单                     
http://bbs.mjtd.com/thread-107686-1-1.html

669423907 发表于 2014-11-6 23:14:21

感谢明经,感谢各位大师们,感谢,感谢,感谢,感谢,感谢,,,,,,,
终于弄好了,左右键可以实现带基点单次与多重复制,也省了选基点
(defun c:c()
(setq ss (ssget"i"))
(if (= ss nil)(txy)(cishu)))
(defun cishu()
(setq cishu? (getpoint "\n左键1次,右键连续"))
(setq gbwz (grread 3));光标位置
(if (member (car gbwz) '(3 5))
(setq od (cadr gbwz)));鼠标位置
(if cishu?
(command "autosnap"63 "osmode"6079 "copybase" od ss "" "copy" ss "" od)        ;左键
(command "autosnap"63 "osmode"6079 "copybase" od ss "" "copy" ss "" "m" od);右键
)(princ))

(defun txy( / pc k e r e1 r1)
(setvar"autosnap"63);; 极轴开(正交55)
(setvar"osmode"6079);; 极轴开对象追踪开对象捕捉开(全部16383)
(setq pc (getpoint "\n请指定圆心:") k t)
(command ".CIRCLE" pc pause)
(while k (setq e (entlast))
(setq r (cdr (assoc 40 (entget e))))
(command ".CIRCLE" pc pause)
(setq e1 (entnext e))
(setq r1 (cdr (assoc 40 (entget e1))))
(if (equal r r1 0.0001) (setq k nil)))
(command "u" "l" "")
(princ))

pmq 发表于 2015-2-24 16:41:16

这只能先选择后执行,如果选择集为空,
(defun txy( / pc k e r e1 r1)
应怎样添加选择对象,再返回命令。
页: [1]
查看完整版本: 关于带基点复制后粘帖的问题