QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
3天前
查看: 2024|回复: 3
收起左侧

[分享] CAD文字技巧

[复制链接]
发表于 2008-3-28 01:12:30 | 显示全部楼层 |阅读模式 来自: 中国广东广州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
:handshake

CAD文字技巧.rar

369.44 KB, 下载次数: 76

发表于 2008-3-28 10:31:28 | 显示全部楼层 来自: 中国山东东营

回复 1# 的帖子

对cad的文字向来不太明白 希望你给的资料能透露点好东西
发表于 2008-4-6 19:03:51 | 显示全部楼层 来自: 中国广西南宁
AutoCAD中自动批量修改图形文件的程序( ?$ Q' e2 ^3 L
一、概述
4 V4 u* a8 |; r7 G! W+ c/ y& J  在工程CAD绘图中,常常会遇到下列棘手的问题:% m0 V" B' W; \( ]- O
  在施工图后期,大部分图形文件都已完成,但因某一条件的变化,需在某卷图中增加(或减少)一些图纸,这将导致许多相关图形文件的内容不得不进行相应的修改:如高层代号、图纸编号等。
" n1 J$ N% a4 O6 Z' V; m7 Q  在实际工程设计中,为了提高效率,60%的图形是通过修改已有的设计而形成新的图形,这时常常进行一些重复性的工作,比如图框的替换、设备元器件的变更等,有时,要几张图,甚至几十张图做同样的修改。
8 C6 R2 L7 }1 j, E, E  对于上述情况,过去一般的作法是将每一图形文件调出来,逐一修改。在图幅比较大时,只能反复使用ZOOM命令,当所涉及的图形文件较多时(有时会有几百个),采用手动操作,其工作量非常大,而且大部分操作都是重复性的工作,长时间操作很容易发生混淆和遗漏,不但效率低,图纸质量又不能保证。
  Z5 L1 j9 r9 k' {) `8 j  能否将这些重复性的工作让计算机来完成呢?& I* A& ]1 d& _- q
  AutoCAD是图形设计的通用软件,它为各种专业用的CAD提供了尽可能多的图形编辑功能,但很难实现自动化作图的功能。
* b$ q( _( c9 |* @# m+ U: X  在实践中我们用C语言编写了CHSCR应用程序,采用该程序设计人员只需编写一个简单的命令文件CH.SCR和要处理的文件表FILE.TAB,经过CHSCREXE应用程序转换,形成一个可以处理FILETAB所列出的所有文件的CHGESCR命令文件。然后利用AutoCAD的 SCRIPT命令,就可使计算机按命令自动批量修改图形并存盘或生成PLT绘图文件。由于采用了易于为非专业编程人员所接受的SCR文件方式来编写命令CHSCR,使用非常方便。- y+ c4 j% |, R4 u1 s+ A  g( l, _
二、如何使用CHSCR* Y6 ^2 D) x# p
  1. 创建CHSCR命令文件
6 n; A7 U' Y! [4 S1 b  CH.SCR文件的内容是由AutoCAD的命令和响应序列所组成的ASCⅡ文件,是可在AotuCAD编辑状态下执行的文本文件。
* N6 c/ M7 P: z5 _0 A  CH.SCR包含了可在指定图形中自动重复执行命令序列。  S6 O4 x5 c. M
  例:把图形文件C800-01~ C800-98中的图纸编号2066DD3改变2087DD2。高层代号C13改为D24,设备型号DZ20改为C45AD。$ D, n, b/ V8 g5 w% ~9 _& |4 K
  在DOS状态下用文本编辑软件建立CH.SCR文件:
6 K9 K1 J- Q3 {1 S' }( M  CHTEXT_all _ _2066DD3<Enter>: t3 y; v) r3 G2 `; j- Y  L6 L
  2087DD2<Enter>. K1 s1 i! c  V  _( H$ Y. ^
  CHTEXT_all _ _C13<Enter>
( n3 M" U8 \7 R6 _0 ?. J  D24〈Enter〉
. Y+ @& H3 T  [/ d/ P( j' s4 W  CHTEXT _all _ _DZ20<Enter>
7 S) z1 A/ B2 B' @& f9 Q3 x  C45AD〈Enter〉
" I& l3 s% {5 O) N' x$ I; m& U% u7 o  PLOT〈Enter〉7 a! f8 h7 T. e* F/ Y$ F( u
  〈Enter〉. Z+ V# T, s; V. Z
  〈Enter〉7 W2 J8 Y4 k- d: c* M( E2 x4 d* A/ C  x
 其中:
, y3 G' H; o  G  _代表一个空格3 B- c8 Y6 v3 T) c) Q
  〈Enter〉代表回车
! \8 |7 f+ I. f$ C8 D7 Q6 N4 n  CHTEXT修改图中文字的LISP程序0 y. c. {9 V8 t  B: D! F' ?1 L
  &#8226;AotoCAD中文字修改功能较弱,AutoCADR12.0中曾加了DDEDIT修改文字命令,但只能用鼠标器手工修改,且一次只能改一个字符串不适用程序化操作。
/ d* T' z+ n$ e  P  因此,在编写SCR命令文件时我们采用了修改图中文字的LISP程序CHTEXT.LSP(其清单附后)。将其装入ACAD.LSP后,只要键入CHTEXT,就可按汉字提示使用,它一次可以修改多个字符串。
' a7 R2 h5 P5 U4 B- `+ ~  &#8226;当编写命令文件时,必须考虑每条AutoCAD命令中的所有响应和提示。命令文件中的每个空格都是有意义的,因为AotuCAD将它看作回车,所以不能随意增减。
2 |0 E! ^6 l1 F2 K# q& J  &#8226;如果不需要输出PLT绘图文件,PLOT后面四行可以不要。, a4 i1 H3 H6 h* I
  &#8226;CHSCR有两个作用:* q4 C7 w: ^0 j' m" u' c
  ①如果需要修改的图形文件较少,可以在ACAD中通过SCRLPT命令直接调用CH.SCR。# l; J) o% X0 k
  ②可以在ACAD中通过SCRIPT命令试运行一次,看是否有错。/ n# F* c& B9 h  D3 M9 a; J
  在ACAD命令状态下,键入以下命令即可按CH.SCR文件要求,对当前图形完成所需的修改。" A% a; c3 H0 `% ]5 W6 e: [
  Command:script<Enter>
7 q. t5 v$ A7 T0 a  Script file:ch<Enter># ~3 {! q$ v+ y$ Z) m$ Y
  当所涉及的图形文件较多时(十几个以上),采用手动操作,将每一图形文件调出来,逐一修改,效率太低。因此建议采用以下步骤,使计算机按命令自动批量修改图形文件。
. h9 Z8 ^% V$ D* k1 a& {0 a  2. 建立图形文件表FILE.TAB4 F3 L4 N( o% K* U5 B
  创建完CH.SCR后,下一步应把需要修改图形文件名(.DWG)存入FILE.TAB中:
) `6 x( k: Q9 o- ~) A  例如:: |/ s" m: E- z4 \
  C800-01
  a  d# D1 q$ _5 i6 t5 G* w1 o/ X/ u  C800-024 s. C: b$ s, w7 N  `
  C800-03+ @2 @+ S: H/ }8 g" t' M7 |+ P
   .
6 m  s; O+ l# _, @% M9 t! n/ A   .# a" e5 |$ h# ^' M
   .- q) M3 I! N& @& P3 E
  C800-98+ f5 T0 j8 v) u9 v" W- v, F
  3. 编译生成CHGE.SCR文件* V. j/ p3 }$ d& ^4 q9 o( U. p
  当具备CH.SCR(试运行正常后)和FILE.TAB文件后,就可以进行编译工作,在DOS状态下键入CHSCR〈Enter〉即开始编译,若编译出现问题,系统会给出相应的提示,编译完成后,你会发现目录中多了一个CHGE.SCR文件(自动修改图形的文本文件)。
: U; c$ F& X/ Q* D7 T: t' L" p. K  &#8226;CHSCR.EXE:其功能是配制SCR文件格式的命令字符串并调入相关的绘图参数(源程序用C语言编写,清单附后)。
5 |3 \/ R- X7 ^3 c0 C- {  &#8226;当ACAD输出PLT文件时,如果发现有对应图形的PLT文件,将提示出是否覆盖掉它,这将引起SCRIPT命令中断运行。为此在CHSCR.EXE中,我们是这么处理的:当程序发现有相应图形的PLT文件,将自动把它删除掉,并在屏幕上显示出对应的信息。
- u2 Q8 y( y* A' Q5 g  经CHSCR.EXE所生成的CHGE.SCR文件:
  x+ s* X% v$ o: N  open y C800-01
" @9 Q4 E# R2 ^$ y* {- ?  CHTEXT all 2066DD37 \  K6 A6 c+ F5 F" G& B1 ^# k  e. [
  2087DD2
5 g8 O5 o- i: Y) S+ m8 `2 `  CHTEXT all C13
3 Y3 Z! `8 s  I. @3 ?  D24) I8 p$ A# t4 J  i% v& q
  CHTEXT all DZ202 k2 ~+ [. q4 q  N! I- }/ b$ U
  C45AD
, y+ s- h9 W* `* D( m2 ]  PLOT5 h* h0 T# G+ j0 X
  <Enter>5 h6 M( S. t+ d
  <Enter>
) D: Z7 {9 g+ F5 a; x  <Enter>
7 H# i- B) s* \- `; S+ ^  save% X2 F" L/ q1 c1 K% t  h0 ?
   .
$ Q# v" O) S, Z* K/ }1 m4 m$ p   .6 ?" l) {( ]! T
   .
! K0 W2 e( ~' l  open y C900-980 j' D! r' W7 u! z! o* r5 O8 ?
  CHTEXT all 2066DD3
) b; \; U4 m1 t. f0 [  2087DD2( ?9 v) g$ p. ^$ G0 K
  CHTEXT all C132 y7 A: V7 T: q) h  C7 \
  D24
+ i+ J: [9 l% U/ Z! ~$ e1 U5 ^  CHTEXT all DZ207 t" G- {) M2 z- }
  C45AD
+ T' f" e; _* o, {  PLOT
* }( ]' k% a0 b% b7 H  <Enter>& e9 P8 ?# s/ N) s5 ~, k. s
  <Enter>+ r8 Q; M  |3 }4 Y6 {% ~/ c
  <Enter>
& G6 S3 n+ i, G0 }, w  save
* ^+ \1 ]/ F9 X( l  quit y
. r( c% P9 r9 \1 J! s3 x3 d  4. 执行SCRIPT命令# z9 J; q/ t6 V& Z/ ~1 ^' S
  ①在ACAD中通过SCRIPT命令直接调用CHGE.SCR:
) G: B+ Z9 T' M  Command:script chge<Enter>
1 ]" p+ U! J: l1 n' y& d  ②启动AutoCAD时从操作系统提示符处输入以下正文:4 M0 b$ E1 [/ P/ c4 S0 n" {
  C:acad script chge<Enter>7 l1 c" t# \  N# v
三、程序的安装
/ T# ]2 r$ t# g3 D6 P* l  1. 将CHTEXT.LSP装入ACAD.LSP中。/ }" Q: O. M# M" r
  2. 用通用C++编译器将CHSCR.C编译成可执行程序CHSCR.EXE,将其拷贝到CAD可找到的目录下。/ w/ m: m2 T( {5 X1 _- |+ i
  程序CHSCR.EXE适用于AutoCAD R11.0、R12.0。
. P7 V+ u) d2 F9 y- H& q1 E1 a四、结束语# I1 ?& o* b& G- E- p* L) t
  以上所举例仅是该程序应用的一个简单例子,在实践中还可用于图块的重新定义、图框更新、建立绘图标准配制、连续显示幻灯片、连续出图,限于篇幅不一一列举。
9 H+ [& d+ B9 c4 y; K: ]; u, w, j  自从我们把该程序应用于批量修改图形文件后,不但将设计人员从繁锁的人工修改图纸中解脱出来,而且大大提高了设计效率和图纸质量
发表于 2008-4-6 19:11:45 | 显示全部楼层 来自: 中国广西南宁
AutoCAD中自动批量修改图形文件的程序. ?; a; A! N7 H% M0 n2 H
一、概述
* _  J5 U( k/ I  F. \5 h, n  在工程CAD绘图中,常常会遇到下列棘手的问题:5 b4 g0 Q* e3 K1 V0 y* ^. S2 j
  在施工图后期,大部分图形文件都已完成,但因某一条件的变化,需在某卷图中增加(或减少)一些图纸,这将导致许多相关图形文件的内容不得不进行相应的修改:如高层代号、图纸编号等。/ c+ b0 g  f9 A  p! X! I6 N% Q
  在实际工程设计中,为了提高效率,60%的图形是通过修改已有的设计而形成新的图形,这时常常进行一些重复性的工作,比如图框的替换、设备元器件的变更等,有时,要几张图,甚至几十张图做同样的修改。, H: R8 c2 R4 H& E/ Z  r8 D! A
  对于上述情况,过去一般的作法是将每一图形文件调出来,逐一修改。在图幅比较大时,只能反复使用ZOOM命令,当所涉及的图形文件较多时(有时会有几百个),采用手动操作,其工作量非常大,而且大部分操作都是重复性的工作,长时间操作很容易发生混淆和遗漏,不但效率低,图纸质量又不能保证。
2 I* p' E$ m2 P! s3 p: _% g  能否将这些重复性的工作让计算机来完成呢?
" B4 U6 h9 |5 V3 d  AutoCAD是图形设计的通用软件,它为各种专业用的CAD提供了尽可能多的图形编辑功能,但很难实现自动化作图的功能。$ F, T* H' y* H  D% D) c* ^; x
  在实践中我们用C语言编写了CHSCR应用程序,采用该程序设计人员只需编写一个简单的命令文件CH.SCR和要处理的文件表FILE.TAB,经过CHSCREXE应用程序转换,形成一个可以处理FILETAB所列出的所有文件的CHGESCR命令文件。然后利用AutoCAD的 SCRIPT命令,就可使计算机按命令自动批量修改图形并存盘或生成PLT绘图文件。由于采用了易于为非专业编程人员所接受的SCR文件方式来编写命令CHSCR,使用非常方便。7 D$ v; A) w7 ^# O1 {8 V6 G
二、如何使用CHSCR3 z" q3 u6 I+ U6 w- l7 o# q
  1. 创建CHSCR命令文件5 W. x0 @" R+ i0 h1 u( N
  CH.SCR文件的内容是由AutoCAD的命令和响应序列所组成的ASCⅡ文件,是可在AotuCAD编辑状态下执行的文本文件。" E7 K  P) h( L' R7 }
  CH.SCR包含了可在指定图形中自动重复执行命令序列。
0 W; v7 p& }% g$ W& W6 a& W$ P  例:把图形文件C800-01~ C800-98中的图纸编号2066DD3改变2087DD2。高层代号C13改为D24,设备型号DZ20改为C45AD。
, g) e1 S+ x6 s$ n& G  在DOS状态下用文本编辑软件建立CH.SCR文件:; X( d2 k! T# ~( c
  CHTEXT_all _ _2066DD3<Enter>
: G5 [& z  K, G1 _  2087DD2<Enter>
/ Z+ ]7 V$ J+ j/ N  CHTEXT_all _ _C13<Enter>! d& K* v% C. ]: @+ r2 E; r
  D24〈Enter〉
; I1 k+ O1 a: G8 d$ k1 H# G% y" h  CHTEXT _all _ _DZ20<Enter>
; q+ Z- E: p  T/ ~  C45AD〈Enter〉
: d: y6 Z7 {0 V1 j/ [. l" x( x  PLOT〈Enter〉- X. l2 `+ ~0 ^' @8 v/ z# V0 V+ {: d0 O
  〈Enter〉* O& U+ D6 k3 B/ H$ N
  〈Enter〉
3 t$ c( B6 f. a1 {6 t) ~' }7 Q8 `/ N 其中:1 G, d5 L5 I9 W' N/ E
  _代表一个空格3 D1 i7 t' m9 i( A& t
  〈Enter〉代表回车
. `: T. F0 L3 h% L5 f4 R- ^  CHTEXT修改图中文字的LISP程序: q0 r" k& e2 t
  &#8226;AotoCAD中文字修改功能较弱,AutoCADR12.0中曾加了DDEDIT修改文字命令,但只能用鼠标器手工修改,且一次只能改一个字符串不适用程序化操作。! f  ^9 Q: f4 F" k: Y1 b4 w
  因此,在编写SCR命令文件时我们采用了修改图中文字的LISP程序CHTEXT.LSP(其清单附后)。将其装入ACAD.LSP后,只要键入CHTEXT,就可按汉字提示使用,它一次可以修改多个字符串。
8 R: B4 Y/ l) V( I1 t' x: Q: J9 Q  &#8226;当编写命令文件时,必须考虑每条AutoCAD命令中的所有响应和提示。命令文件中的每个空格都是有意义的,因为AotuCAD将它看作回车,所以不能随意增减。
2 `5 P2 `9 ?2 j  W# S  &#8226;如果不需要输出PLT绘图文件,PLOT后面四行可以不要。
3 ~; M# |/ F8 l  &#8226;CHSCR有两个作用:
( d) i3 }5 W& B) P( ~3 a3 u  ①如果需要修改的图形文件较少,可以在ACAD中通过SCRLPT命令直接调用CH.SCR。: ?3 j5 T5 z4 g. \9 P
  ②可以在ACAD中通过SCRIPT命令试运行一次,看是否有错。
) U' y0 R' e+ d  在ACAD命令状态下,键入以下命令即可按CH.SCR文件要求,对当前图形完成所需的修改。
4 z) `$ q4 w. U7 _. ^  Command:script<Enter>
- u9 j+ j' I; J& Q4 Z& I' R' J  Script file:ch<Enter>
( A/ {. M6 `6 @2 F7 }  当所涉及的图形文件较多时(十几个以上),采用手动操作,将每一图形文件调出来,逐一修改,效率太低。因此建议采用以下步骤,使计算机按命令自动批量修改图形文件。
% j1 S  x" H% n" S* ^  2. 建立图形文件表FILE.TAB' o" f3 e! j9 d) V  y; ]# X
  创建完CH.SCR后,下一步应把需要修改图形文件名(.DWG)存入FILE.TAB中:" d; o5 S! n$ @5 R+ Z0 ]& b1 A
  例如:
- `$ b. f: h! N2 X1 R) u5 r( _  C800-01" G/ [4 q8 M- T/ |, n
  C800-02
6 r/ |5 ]9 v/ d% d  C800-03
! G8 e' y3 {8 P/ h# j3 o5 m  z   .
; b7 n" b. r( m3 q   .
3 @/ L& X# f% S3 N' C/ y' P   .7 y# P, w" q  @- y
  C800-984 ~) y. r0 b" V' M6 d3 Q0 ]
  3. 编译生成CHGE.SCR文件$ P7 m! H& @7 u$ J$ n& p& d
  当具备CH.SCR(试运行正常后)和FILE.TAB文件后,就可以进行编译工作,在DOS状态下键入CHSCR〈Enter〉即开始编译,若编译出现问题,系统会给出相应的提示,编译完成后,你会发现目录中多了一个CHGE.SCR文件(自动修改图形的文本文件)。
) ~) }4 s% i7 W/ O4 {: ^& s$ C  &#8226;CHSCR.EXE:其功能是配制SCR文件格式的命令字符串并调入相关的绘图参数(源程序用C语言编写,清单附后)。
! K3 f6 s' k! h" a5 K7 N  &#8226;当ACAD输出PLT文件时,如果发现有对应图形的PLT文件,将提示出是否覆盖掉它,这将引起SCRIPT命令中断运行。为此在CHSCR.EXE中,我们是这么处理的:当程序发现有相应图形的PLT文件,将自动把它删除掉,并在屏幕上显示出对应的信息。
5 \1 c5 Y# `% n: b8 o) r) F1 A  经CHSCR.EXE所生成的CHGE.SCR文件:
* X% m3 e6 P- ^5 T8 |  d$ ~' V4 {; S  open y C800-01( g  u7 b- C# q( M. z
  CHTEXT all 2066DD3
, |6 [" i# L: m4 `6 i9 i  2087DD2
! G0 ]$ P! D) t3 {% E+ ~0 J  CHTEXT all C13" e- S6 M+ l$ e7 J% @& m/ ^, W3 e# N
  D24
; M* N; n7 O& h' [8 }0 a! G  CHTEXT all DZ20* z) `+ ]6 w5 ~8 _# Y2 ~" ?& \1 R3 b
  C45AD- @/ W& m  F+ p- |( u6 S" D6 D
  PLOT
) _  I# }$ H! j7 [+ H6 `1 Z3 X8 R  <Enter>0 f  d. }* c& c) d
  <Enter># f$ _' f  u: F. g" e, h4 e0 r/ w' O
  <Enter>
" h0 g8 L1 n5 Z) M  save  I, W" r, K! w- e' N# [3 }: t
   .. v! p$ S6 b6 p2 e
   .
$ D8 ~! T! E! V' [" w   .
9 Q# r7 ^- y+ b% U1 }* ^  open y C900-98
* T3 m2 {+ V* h  CHTEXT all 2066DD3
  \& U% k1 v" a. |  2087DD2+ O2 l4 u. a% u5 A( d+ |% U4 v* M
  CHTEXT all C13
/ q$ g% ~& M$ w# u: }  D24+ W& g9 a/ R% q
  CHTEXT all DZ20: }& Y3 Q1 e0 ~* t2 n7 I2 ^% i3 K
  C45AD1 \$ H, l5 L: I
  PLOT
3 U& E! ]& i% h  <Enter>
( F5 \& Q- o, z7 U5 i  <Enter>! p+ j; ^0 J0 q1 s: \; X/ Z0 c
  <Enter>
3 p( \" H9 Q: U5 E+ d; r  save
% A2 u5 M5 d! u) m8 W" g  quit y$ p$ c! M( d8 `9 A0 s& _2 J
  4. 执行SCRIPT命令# k8 U5 q$ ?0 Q+ P
  ①在ACAD中通过SCRIPT命令直接调用CHGE.SCR:! B9 }9 q5 z. V7 m) t! [
  Command:script chge<Enter>
! Z' W+ e# U$ B0 C9 t  ②启动AutoCAD时从操作系统提示符处输入以下正文:0 E% e( F4 b; r9 V% R; b
  C:acad script chge<Enter>, A6 R8 {' W+ C, o; E
三、程序的安装# d. q. F0 H. ?* K$ O, z2 ]  [
  1. 将CHTEXT.LSP装入ACAD.LSP中。
- V+ p% U" H$ \' }  2. 用通用C++编译器将CHSCR.C编译成可执行程序CHSCR.EXE,将其拷贝到CAD可找到的目录下。$ b: q4 }( D# o0 x& I
  程序CHSCR.EXE适用于AutoCAD R11.0、R12.0。( V1 s: m) M+ w* y
四、结束语" o0 k% G: \0 r. A2 Q7 P
  以上所举例仅是该程序应用的一个简单例子,在实践中还可用于图块的重新定义、图框更新、建立绘图标准配制、连续显示幻灯片、连续出图,限于篇幅不一一列举。
! }9 J: `% @1 `1 \  自从我们把该程序应用于批量修改图形文件后,不但将设计人员从繁锁的人工修改图纸中解脱出来,而且大大提高了设计效率和图纸质量
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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