
- (defun c:CD (/ *error* filelst cols colgap rowgap i x y pmax pmin dx dy cdy rows)
- (vl-load-com)
-
- (defun *error* (msg)
- (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
- (princ (strcat "\n错误: " msg))
- )
- (setvar "CMDECHO" 1)
- (setvar "OSMODE" 0)
- (princ)
- )
- (defun GetSingleFile (/ fname)
- (setvar "FILEDIA" 1)
- (setq fname (getfiled "选择要合并的图纸" "" "dwg;dxf" 1)) ; 0表示单选模式
- (if fname (list fname))
- )
- (setvar "CMDECHO" 0)
- (command "._UNDO" "_BEGIN")
-
- (if (setq filelst (GetSingleFile))
- (progn
- (initget 7)
- (setq cols (getint "\n请输入列数: "))
-
- (initget 6)
- (setq colgap (getdist "\n列间距<10000>: "))
- (if (not colgap) (setq colgap 10000))
-
- (initget 6)
- (setq rowgap (getdist "\n行间距<10000>: "))
- (if (not rowgap) (setq rowgap 10000))
-
- (setq i 0 x 0 y 0 cdy 0
- rows (fix (1+ (/ (length filelst) cols)))
- )
-
- (foreach file filelst
- (if (and (< i (* cols rows)) (findfile file))
- (progn
- (princ (strcat "\n正在插入: " (vl-filename-base file)))
- (command "_.INSERT" file (list x y) "" "" "")
-
- (if (entlast)
- (progn
- (vla-getboundingbox (vlax-ename->vla-object (entlast)) 'mi 'ma)
- (setq pmax (vlax-safearray->list ma)
- pmin (vlax-safearray->list mi)
- dx (- (car pmax) (car pmin))
- dy (- (cadr pmax) (cadr pmin))
- )
- (if (> dy cdy) (setq cdy dy))
-
- (setq i (1+ i))
- (if (= (rem i cols) 0)
- (setq x 0 y (- y cdy rowgap) cdy 0)
- (setq x (+ x dx colgap))
- )
- )
- )
- )
- )
- )
- (princ (strcat "\n成功插入 " (itoa i) " 个文件"))
- )
- (princ "\n取消文件选择")
- )
-
- (command "._UNDO" "_END")
- (princ)
- )
ai生成得,有大佬帮忙看下不 哪里的问题 现在选择文件只能单选无法多选。谢谢
|