yjwht
发表于 2025-2-22 10:00:26
在您的代码基础上修改了一下,不再指定A3、A4图幅,而是直接设置图纸尺寸,图纸布置顺序从左到右,再到下一排,再从左到右。
; 将多张相同尺寸的图纸插入到一张dwg图纸中
(defun c:hb()
(setvar "CMDECHO" 0)
(setq pf (getfiled "指定原文件路径中的一个图形文件:>" "*" "dwg" 8))
(setq path (vl-filename-directory pf))
(setq path (strcat path "\\"))
(setq aa (vl-directory-files path "*.dwg" 1))
(setq n (length aa))
; 不超过25张图时,每行5张;超过25张图,则每行10张
(setq a1 (cond ((<= n 25) 5) (t 10)))
(setq i 0)
(setq pp (nth i aa))
(setq Lx (getint "\n请输入图纸在X轴方向尺寸(mm):"))
(setq Ly (getint "\n请输入图纸在Y轴方向尺寸(mm):"))
(sub1 Lx Ly)
(prompt "程序执行完毕!!!\n")
(princ)
)
(defun sub1(Lx Ly / p1)
(while (/= pp nil)
(setq p1 (list (* (rem i a1) (+ Lx 100)) (* (fix (/ i a1)) (+ Ly 100) -1)))
(setq pp (strcat path pp))
(setq i (+ i 1))
(command "insert" pp p1 "1" "1" "")
(setq pp (nth i aa))
(command "zoom" "e" "zoom" "0.8x")
)
)
timmy521
发表于 2025-2-22 17:43:20
不错的软件。谢谢。
jiangqian124
发表于 2025-3-3 21:35:52
是不是dxf也可以合并的
jiangqian124
发表于 2025-3-14 23:36:30
这个应该很常用的