andy_lee 发表于 2022-7-5 22:42:25

合并图形

嗨,朋友们。
 
我从事机械行业,使用Autodesk Inventor绘制零件和部件。有时,我需要将idw图形批量转换为DWG格式。
 
一个零件,一个图纸,所以,如果有100个零件,它有100个图纸。
现在,我希望将100个或更多dwg合并到一个dwg文件中。
 
每个图纸范围的尺寸可能不同(A4、A3等)
绘图框架和标题栏是属性块。

 
将更多图形合并到dwg文件中,我认为需要Dcl文件来输入行和列、行距和列间距。
 
谢谢你的帮助!感谢论坛中的所有朋友。

BIGAL 发表于 2022-7-5 22:47:20

不知道idw到dwg,但可以使用脚本打开dwg并检索dwg A3 A4等的大小,然后使用此信息编写脚本文件,将所有dwg插入主dwg。
 
我们的标题栏将图纸的大小作为一个变量,所以可以读取它,或者只计算标题栏的大小。
 
我不会担心dcl,这是一个有点额外的工作,几乎没有收获。
 
重新编程只有一个双重复X Y,我将使用A3大小作为间距,然后你可以忽略大小差异。鉴于图纸将在模型空间中,可以进行自动绘图等,我会考虑使用布局,每张图纸1,那么大小也不相关。

7o7 发表于 2022-7-5 22:50:01

你试试这个惯例。首先制作一个新的空白图形,加载此例程,输入“IF”(lisp命令的名称,表示“插入文件”),指出包含100个或更多dwg文件的目录(必须将idw导出为dwg),然后等待结果。插入的文件尚未分解。

(defun c:if(/ dir files len col n x y h dy v li dy minp maxp)
(setq dir (vl-filename-directory (getfiled "Get Directory" (getvar "dwgprefix") "dwg" 4))
files (vl-remove-if-not
      '(lambda(x) (vl-string-search "DWG" (strcase (vl-filename-extension x))))
         (vl-directory-files dir nil 1))
len (length files)
col (fix (sqrt len))
n -1
y 0
h 0
)
(while (< n (1- len))
   (setq x 0
y (+ y h)
h 0)
   (repeat col
   (setq v (nth (setq n (1+ n)) files))
   (if v
(progn
(command "-insert" (strcat dir "/" v) '(0 0) "" "" "")
(vla-getBoundingBox (vlax-ename->vla-object (entlast)) 'minp 'maxp)
(setq li (mapcar 'vlax-safearray->list (list minp maxp)))

(command "move" (entlast) "" '(0 0) (list x y))
(if (> (setq dy (abs (- (cadadr li) (cadar li)))) h)
    (setq h dy))
(setq x (+ x (abs (- (caadr li) (caar li)))) )
)
   )
   )
)
)

BIGAL 发表于 2022-7-5 22:52:50

7o7好主意,行-列的sqrt,正如我建议的那样,修改代码也很容易,保留前6行,然后使用“Layout”“N”在每个新布局中插入一部分。

andy_lee 发表于 2022-7-5 22:55:53

 
 
非常感谢!707
我测试,但有些重叠。

Tharwat 发表于 2022-7-5 23:01:04

@7o7小时
 
这就足够了。
取代所有这一切。

(vl-remove-if-not
'(lambda (x) (vl-string-search "DWG" (strcase (vl-filename-extension x))))
(vl-directory-files dir nil 1)
)

7o7 发表于 2022-7-5 23:04:19

@塔瓦:好的,谢谢,你的很好。
@andy_Lee:它是重叠的,因为插入点不是0,0。除非将每个图形的左下角移动到0,0。
这就是我不想分解插入图形的原因。

andy_lee 发表于 2022-7-5 23:04:56

可以使用“插入DWG参考”模式吗?
可以用图号从左到右,从上到下顺序排列吗?
 
图号:xxx-xxx-001、xxx-xxx-002。。。。。。

7o7 发表于 2022-7-5 23:08:43

什么是“插入DWG参考”模式?
如果要从上到下,请将(+y h)更改为(-y h)

andy_lee 发表于 2022-7-5 23:13:35

菜单 插入--DWG参考, 这样我们就可以保持文件的完整性。
页: [1] 2
查看完整版本: 合并图形