在您的代码基础上修改了一下,不再指定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")
- )
- )
|