此功能满足将实体单向复制多个,而不必因捕捉点的操作误差而担心,具体编写原因忘了,不过还算是比较实用的。
;|
Make by liwen
Site->www.znwl.com
Email:liwen@znwl.com QQ:5520574
Usage: 按X轴复制 按Y轴复制
|;
(defun C:CX ( / os ss pt1 pt2 i)
(princ "按X轴复制")
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq ss (ssget))
(setq pt1 (getpoint "\n指定基点:"))
;第一次复制
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 "\n指定第2个点:"))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".x" pt2 0)
;开始循环复制
(setq i 3)
(while (/= nil pt2)
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 (strcat "\n指定第" (itoa i) "个点:")))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".x" pt2 0)
)
(setvar "osmode" os)
(princ)
)
(defun C:CY ( / os ss pt1 pt2 i)
(princ "按Y轴复制")
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq ss (ssget))
(setq pt1 (getpoint "\n指定基点:"))
;第一次复制
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 "\n指定第2个点:"))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".y" pt2 0)
;开始循环复制
(setq i 3)
(while (/= nil pt2)
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 (strcat "\n指定第" (itoa i) "个点:")))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".y" pt2 0)
)
(setvar "osmode" os)
(princ)
)
(defun C:CZ ( / os ss pt1 pt2 i)
(princ "按Z轴复制")
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq ss (ssget))
(setq pt1 (getpoint "\n指定基点:"))
;第一次复制
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 "\n指定第2个点:"))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".z" pt2 0)
;开始循环复制
(setq i 3)
(while (/= nil pt2)
(setvar "osmode" 16383)
(setq pt2 (getpoint pt1 (strcat "\n指定第" (itoa i) "个点:")))
(setvar "osmode" 0)
(command "COPY" ss "" pt1 ".z" pt2 0)
)
(setvar "osmode" os)
(princ)
)
(princ)
程序下载: