CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 4030|回复: 3

[已解决] 合并DWG文件问题

[复制链接]
发表于 2008-9-12 22:48 | 显示全部楼层 |阅读模式
怎样把72张----DWG文件合并---------本来它是一张大图有128MB大  但是拆开了 比例相同 要是一张一张拼的话,拼到最后 电脑动不了 (本人电脑内存4G) ------有什么好办法
发表于 2008-9-13 08:14 | 显示全部楼层

转贴,来自晓东cad家园

请问一下,我想将某目录下的N个DWG文件快速合并到另一个新的DWG文件中去,且要不重叠,也不要离得太开,要比例不变。有这样的Lisp或ARX程序吗?用在R14及R2002环境下。
2 f) J: e2 Q9 r* k: ~
! c. i* |1 d+ \) Z6 n; R8 F- X. J
9 p$ ^( x) K  z$ c' z1 e# u% t7 Z/ R9 b" ?7 @+ j

. e, c  o6 m; h7 y, u/ \( e* a" @某目录下的N个DWG文件快速合并到另一个新的DWG文件 ( a  H! @- X4 d( b

% n1 {0 h/ U$ y  w# w: f6 p0 Y1 K% B' X
让我们来看看不要程序如何实现,其实只要对excel会用和autolisp的一点点知识(这个不难吧)就可以了。这个办法可是适用于autocadR2.6……autocad 3000版(但愿到那时我还在)
' x: @$ S/ P, `7 W
4 @1 A- w1 y6 n* R8 u2 T% _/ \! H
% K$ o; Z* E9 ?: Z2 |excel的要求:会对各列的数据进行字符运算(简单), . K7 x- q' v1 F5 g9 {3 E5 m

& }, B+ S4 A4 f1 |0 g- Jautolisp的知识:了解(command “函数名称”)就可以了。 3 n5 a& x! |' d- e) k
* M1 K+ f, ^( G0 C- P6 B; m4 l' X

9 p  b+ Q! b* s4 V: G! P下面我们开始了:   v4 o/ \7 W) ^: |1 _8 K& e/ J1 z

+ U- L" v0 v& m9 @* V, n, v- B/ u9 X% C
1、在第一行的各个单元格中分别填入文字(按照A,B,C,D,E,F,G的顺序,以下同这里): # W5 {( [6 }# e2 ]

5 {- y: ~' |, Z& l$ Vfilename,X_Position,Y_Position,X_Scale,Y_Scale,Ang_Rotate,Command_String
' a8 P0 G4 A# N% ~8 l' Y  _" W2 T% b. B, N" V* f, r6 L+ R) @7 ~$ t
' A0 M7 t( @$ T/ C: Y/ W" u
2、第一行的内容应该很清楚了,就是不同参数的名称,因此,从第二行开始就是输入不同的参数,其中文件名可以用 ! {: T* p  b) @0 j% H; d$ C' E. b. o
5 l) E$ ^2 x& [4 l0 B/ _" {4 k
”DIR /s/b>filename.txt“的命令得到,将文件filename.txt打开,copy & Paste到excel中来就可以了。 7 ^' D, P: H1 Q* n  R  h. P
% _8 y; b3 v8 S
(注意:/s的参数在xp下可以得到全路径的文件名称,不知道在其他操作系统中是否也是如此,请帮忙查证。) : `2 H/ U. H7 N7 `
9 t: ?. M2 h: j" K8 r6 l5 x
反正文件名是如何得到我不管了。
( |( k/ }% z2 C" S
1 J& r' k. Z5 R4 _0 }1 _( ^# i! r& _+ H' Z8 j( t4 ^! \; R7 |5 W
3、现在的关键来了,就是如何得到Command_String中的内容,请仔细看好了。在G2单元格里面填入下面的公式:
+ m: U8 R! f+ R$ w. q% B7 g. s- U7 g
="(command ""-insert"" " & A2 & " """ & B2 & "," & C2 & """ " & D2 & " " & E2 & " " & F2 & " " & ")" 4 F. m! p: q* a) v$ U7 x" \5 @

# D% l$ t1 |, m* y$ s1 H- c+ ~注意了,其中的空格和三个(“”“)引号不能变哟。然后把G2的单元格往下一填充,就可以得到每一个的插入命令了。
/ o: ^; E  b# T* ^% Q5 ]7 A" K7 g. J
5 w! P% E) O7 p; S2 x2 T下面是一个例子的数据: 3 s7 F+ T" ~$ x
! U" h0 k& R, Z8 V' s
其中A2到F2的数据为:
- E% ~7 ]0 r* ^# n/ }- T6 t" q2 Q* L$ e# r! M  H- A; ~6 l& ?
"d:\\test\\test_a1.dwg" 50 50 1 1 0 5 z+ o. {! G0 L5 {6 t
$ c& ]0 G! y; @( A3 G" e
然后G2中得到的字符串为:
0 q: u5 H% U; O4 e5 i$ b0 e7 b! g$ _- e1 E  Y/ G0 i- J, z
(command "-insert" "d:\\test\\test_a1.dwg" "50,50" 1 1 0 ) 9 b+ `" J" M* \+ o& q

* v- j; G* m2 T. s1 k, \2 v4、将上面得到的命令复制到记事本中,保存为以”.SCR“为后缀的文件就可以了。
- a4 @3 b+ L: A3 l% N; M5 c6 n
! i! e0 [& A4 J1 w' l3 a% V3 t8 }1 A
* c- t0 _3 w5 t( d8 y5、在AutoCAD中新开一张图(你应该会吧),然后执行”SCRIPT“命令,然后将刚才保存的”×××××.SCR“文件给它。 / W' d. k2 k* S" U
2 _9 |7 _8 C+ [! ?" l5 K5 A4 L
你看到了什么?不要告诉我没有看到哟。
; H5 [2 f" J3 ?4 ^$ w( x
; D# F4 |" G) R: k4 r; Y6 x2 |( ^: k  ]; ~7 k2 p
6、大功告成!但是不要忘记了这个过程哟。其实我们灵活地运用,不需要编程也能完成许多的工作。 $ ?  ?3 t( u# g/ g  ^# u- ~

3 n( v$ m+ i  p7 [你能够在其他的方面也灵活的运用吗?不然我就白写了这么多了。
- p/ N0 h/ Z# C9 Y
! R/ B' S$ J" F5 i3 G1 a我以前就是采用这种方法插图的,后来写CadAssis-->SCR,是为了简化步骤,操作更方便& O$ n: Z: E0 M( h, Y" p/ g

" M' m: P5 A4 q, ?2 t[ 本帖最后由 truezx 于 2008-9-13 08:21 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| 发表于 2008-9-14 21:53 | 显示全部楼层
谢谢斑竹   我试试
发表于 2008-9-17 08:33 | 显示全部楼层
先把你要的图纸用内部块创建好后关闭,再一一的插入就可以了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2025-2-23 07:35

CAD设计论坛,为工程师增加动力。

© 2005-2025 askcad.com. All rights reserved.

快速回复 返回顶部 返回列表