我在学习CAD中,摸索了几个实用技巧给大家分享一下。有什么不对和有好的方法,请大家指教。
& [6 o4 A/ a8 u% d d+ v% P! e, k) m' U" P. S3 j
1.将地形图中非零高程对象转换为零高程对象
+ D) Q( @( q1 l" C. J! e( z% @/ X" H( R5 q% _% F: ^( X) a9 ]; g
如果你从测绘院拷贝来的地形图上有一些图元(如直线和圆等)的Z坐标不为零,那么有可能产生交点不易捕捉、使用dist命令量取的两点间距离值与实际不合等等问题,下面我介绍两种解决这个难题的方法。
+ C! j/ n4 W9 C! e; `! H/ e (1)命令法(中文为注释):在命令行键入change! z3 B X% k/ L! |8 o3 G6 E; X
Command:CHANGE
K3 G9 ~7 H" ^ 选择对象* y0 i- s: ^% o1 B) X, N( a3 y
Select objects: all
. a, p' Z0 F. }7 \6 }; V: l- Y 键入p选择修改特性4 J: C/ ~7 \8 @% H2 T
Properties/<Change point>: p
4 A( m6 n2 O+ i8 F. P$ N' w4 R 键入e修改标高
6 a' m. ` W/ E" P' O Change what property (Color/Elev/LAyer/LType/ltScale/Thickness) e
7 G* E: w- O% a# v% |, u/ y* T9 | 输入新的Z坐标/ K4 K2 ] B) D' P9 k+ C
New elevation <varies>: 0
' [: ?4 Y9 c8 r" e2 \8 T! f 选择修改特性,回车结束。& x" o% ~3 ] Y. \
Change what property (Color/Elev/LAyer/LType/ltScale/Thickness) ! E$ s" o9 Q, A4 b6 q1 w
Commnd:6 c8 r4 N A. f: d+ d; Q) n
(2)移动法:很简单,键入移动命令“move”,将所有实体移至点1,0,1E99,然后再重复“move”命令,将所有实体移至点0,0,-1E99即可。& [+ e9 f# f/ ~" [# e' q
该方法利用AutoLISP语言编程如下:7 F5 ]( r4 W1 f, T5 n
;;标高(Z坐标)归零实用程序# ~6 Y% d8 w* q. i; p! q9 \5 M+ ]
(defun C:Z=0 () + |3 T+ K' N7 |; t$ o: z9 b8 }$ E
(setvar "cmdecho" 0)8 g# O0 W S( }; S' }, A
(princ "\n正在处理图形数据,请稍候...")" t+ w* d1 j: w3 N' Q _
(command "_.UCS" "") 8 S* j9 T+ z8 v0 q
(command "_.move" "_all" "" '(0 0 1e99) "" "_.move" "_p" "" '(0 0 -1e99) "")
2 d9 V2 Z# u, r# C& |2 ?. R2 c (princ "\nOK,已将所有图元的标高值即Z坐标归零."); n/ n5 H" \# z0 N9 B# m
(setvar "cmdecho" 1)
6 t* }8 W$ g% x' Z$ o5 R (princ). R& b/ g. Q5 ]& h7 z, }/ u1 E/ ]
)end (defun C:Z=0 ()
; X! b. `# N8 H# ~$ t* ~) h' s
9 k0 P$ p0 _5 ~ F8 p" j2.消除dwg文件中多余的图层和图块) _6 K* }$ t% F9 T L# y$ F1 f
0 y) P( e! \# h1 }9 C0 r
对于绘制CAD图纸后残留的一些多余的图层、文字样式、线型和图块等,可以通过以下方法将它们清除:& L* {. K% B% K
(1)利用CAD文件菜单下的“输出”命令,填写输出图形文件名称,选择形式为block(*.dwg),图块名称不填,选择基本点为(0,0),然后选择要输出的图形内容,图形经过如此处理后不会再有多余的信息。5 W' d- J, O+ U" Q
(2)利用CAD文件菜单下的“清理”命令,当命令行提示“Verify each name to be purged <Y>(验证每个要清理的名称)”时:,键入“n”不用验证是否清理,可加快清理速度。多重复几次PURGE命令后也不会再有多余的图形信息了。/ O7 a6 j$ C1 t( G$ E7 m
(3)编制一个小巧的AutoLISP程序,可以减少手工操作。
+ U1 N7 A: @2 S (defun C: QHTX ()3 X) D" x2 c" H5 U8 S
(setvar "cmdecho" 0);关闭命令回显
0 C: }! z# h( w+ \, h% I: i (repeat 10! b2 E' ~7 X4 n& A" o4 c( s$ D. g
(command "purge" "a" "" "n")
, Z& Q' l* V5 W) {4 r );重复执行purge命令10次
- c- Y) n& T" g5 x) j5 Y' ~2 @) L! j# J) B( } (princ)
' C$ A1 j8 R6 \4 C2 \ );end defun C: QHTX ()
0 Z4 ? F. E/ c1 F8 ~- S% P 将以上代码复制在新文本文件中,另存为QHTX.lsp,然后在“工具”菜单下加载运行,便能清除图形中的残余信息。3 p# y% e" Q- L4 S& Z1 ^
% }) O6 H* ^6 H: O* m3.字体打印问题
$ K! g* x( _* s3 ?' l: @/ i6 J- f! a% Z; ^5 i
有时我们用实心字体绘制的图形,打印时字体却全变成了空心字,这时只要在命令行键入“TEXTFILL”,按系统提示
! J# U6 A Z) U1 v \% F7 W New value for TEXTFILL <1>:9 K& Q! P8 K+ ^/ i+ F
键入数字1后就能恢复实心字体的打印了。TEXTFILL是CAD中的一个不太常用的系统变量,其参数说明如下:3 W& H: O' X- R0 ?
TEXTFILL
* x& A, a' ] ~ ^7 N& O: L0 @% t 类型:整数型
- S4 N. X! f& [8 C5 L 保存位置:注册表
# j$ t3 J5 f- g3 Z$ { 初始值:1; x( D6 t* A! u3 W
控制打印、渲染以及使用 PSOUT 命令输出时 TrueType 字体的填充方式。5 y9 s7 b. U$ L* k$ R' n
0 以轮廓线形式输出文字9 S3 u( r' M& C' g( f/ K- Y% `* k
1 以填充图像形式输出文字
- D ^: s' E6 m! G$ k5 _! }) W% d2 X2 H" Z" |& Q* M- X
4.一个被遗忘的CAD命令
" n# m i$ p5 x( B8 f, z- d( Y' v1 e% y4 }# R# |" {
命令“hatch”可用于图案填充时指定边界的区域。它创建一个非关联的填充,可以填充由一个对象或能够完全封闭一块区域的多个对象组成的边界。如果边界是由多个对象组成的,那么它们的端点必须符合创建图案填充的条件。用户也可以用直接填充的选项为没有封闭边界的区域定义一个多段线填充边界,然后进行填充。
7 }0 S4 A) I1 q1 M8 O, u( L: H 命令行:hatch
, J: S3 _2 e0 B 输入图案名称或 [/实体(S)/用户定义(U)] <当前值>: 输入预定义或自定义的图案名、输入 s、输入 u、输入 或按 ENTER 键' L' C) b# i* i+ l9 m* j
5 `5 h c6 H6 L" @& P5.测量直线、弧线和曲线的简易方法$ E* p- r8 m9 w9 `0 x
, P) J2 h4 A8 m8 [7 @ 利用“拉长对象”命令(lengthen)可以测量直线、弧线和曲线的长度值。在命令行键入“len”或“lengthen”,按提示选择所需测量的直线、弧线和曲线即可得到它们的当前长度值。. q. P; u2 [8 g9 S2 r% O9 b7 V# k* D
2 M" c/ I/ @8 ~8 Z
6.关于explode命令无效的问题
1 C) |7 r1 E+ W0 s; @
& @. M) w% _5 s% f2 s! c$ T 如果在CAD使用过程中,不能炸开图块了,先试一试能否炸开别的实体(如多行文本、填充图案等),如果能,说明是你所选择的实体本身不能被炸开(也可以在命令前加上.来测试是否可以炸开图块);如果不能,可能是感染了一个基于AutoLISP语言的病毒程序acad.lsp。它的主要表现特征为打开任意一张图纸均不能炸开图块,即explode命令无效,给我们的工作带来了不少麻烦。该病毒运行时将在所有打开过CAD图纸的目录下,生成acad.lsp病毒程序,并在CAD的安装目录Support下,生成acadapp.lsp病毒程序。
9 l. Y( O. ?2 G0 R. L; [ 下面是清除该病毒的方法:5 G( {" q: N4 O
(1)打开系统的查找“文件或文件夹”对话框;1 [* r2 e, }3 z1 E: |$ z! M
(2)在“文件或文件夹名”数据框中输入:acad.lsp;acadapp.lsp;
# D0 U: C0 L5 R# e (3)在“包含文字”数据框中输入:explode; + c& L6 }5 _% z* B! \) O/ B
(4)在“搜索” 数据框中选择:所有硬盘驱动器; ! ?4 `$ N* I- i- e' a- ?4 G0 e# l
(5)将搜索到的这两个文件全部删除后,问题就已经解决了。
) [! S5 r" o4 U7 G+ s 注意:一定要将硬盘是的所有目录都搜索一遍,这样才能将病毒清除干净。
8 s& d Z$ Y2 H& H
8 h$ [1 W9 }3 q3 q" }$ Q7.R14中的线宽设置" h, @: I8 P# c! _1 S2 d/ Z( O
! v, U! H. z/ w0 e
在R14中如果是为多段线赋宽,可以用pedit命令为其赋予宽度值。如果用line命令绘制的直线,也可以用pedit命令将其换为多段线后再为其赋予宽度值。
( |, S3 L/ y% B7 A2 L' O t 但如果是为用spline命令绘制的样条曲线赋宽,相对来说就要麻烦些了。
& O8 j. l% n5 N+ G- O. k. j 1.先将图形另存为“AutoCAD R12/LT2 Drawing (*.dwg)”格式;
- p% o& w( @. ^1 [6 d- ~% V 2.打开刚才保存的R12格式文件(原样条曲线亦转换为多段线了); % N& I' |7 C1 N _. w% ~9 K1 [ v
3.用pedit命令为其赋予宽度值。
2 @4 O$ z" D7 u6 r3 W 也可以在命令行键入“WMFOUT”命令,选择图形中需要赋予宽度值的样条曲线,将其保存为扩展名*.wmf的Windows 图元文件,然后再用“WMFIN”命令插入刚才保存的图元文件,并把它炸开,就可以用pedit命令赋予宽度值了。
# \9 p: ^. D* _/ M/ t0 b
8 E4 m' E1 t7 O' W3 J) j0 y8.DWG错误文件的恢复! S% Q/ s; Y2 G" _5 T
6 J. o% Q% y# [! I/ y; e x
有时我们辛苦几天绘制的CAD图会因为停电或其它原因突然打不开了,而且没有备份文件,这时我们可以试试下面的方法恢复:
# Z4 q6 s/ {/ r- s 1.在“文件(File)”菜单中选择“绘图实用程序/修复(Drawing Utilities/Recover)”项,在弹出的“选择文件(Select File)”对话框中选择要恢复的文件后确认,系统开始执行恢复文件操作;
7 F, O: i* L, a7 Q" B9 ?+ G. ]0 A 2.如果用“Recover”命令不能修复文件,则可以新建一个图形文件,然后把旧图用图块的形式插入在新图形中,也能解决问题;
; \ u, @8 }! ?% X 3.如果有问题的图形文件是R14或R2000格式,也可在R2002或R2004下试一试上面的恢复操作; : v% ^% t0 M f# _
4.在AutoCAD2002或2004中打开后另存为2002或2004的文件,然后重新打开文件,并选择采用局部打开方式,打开几个图层另存为一个文件,再打开剩下的图层,再另存为第二个文件,最后把两个文件复制重合在一起就会复原图了;
# E+ _2 {8 Y4 K' L 5.如果打开CAD图某一百数(如30%)时就停住没反映了,这说明图纸不一定被损坏,把电脑内的非AutoCAD提供的矢量字体文件删除(移到别的地方)后再试试(保留2~3个也可以),说不定文件就能正常打开了。
! b& P$ s) t7 t- z% O2 r% C3 u9 T( I) e' D1 r. ^
9.恢复失效的特性匹配命令
! b& e- W9 N0 @* B
( w) Y3 E4 v& D+ f 有时我们在AutoCAD R14的使用过程中,其他命令都很正常,但特性匹配却不能用了,重装软件一时又找不到它的安装程序,下面介绍的方法就可以派上用场了。9 g/ x6 {2 y: q' z3 V( B
方法1.在命令行键入menu命令,在弹出的"选择菜单文件"对话框中,选择acad.mnu菜单文件,重新加载菜单;( G9 m1 H/ w- ^5 Q, w# K! | p* I" [7 F
方法2.在命令行键入appload命令,在弹出的 "加载AutoLISP ADS 和 ARX 文件" 对话框中,选择并加载AutoCAD R14目录下的match.arx文件。
) }* F0 m( m1 q( x& L6 v 其实,对于其它命令失效的问题,也可以灵活运用以上方法。
2 S6 b4 a/ \4 H7 E
# k, T9 y' i! U6 ]' u5 p10.无法打开“多行文字编辑器”; ` x* t' j. X9 A% M
# t/ t- u! m o1 l- f a
一般来说多行文字命令"MTEXT"不能用了,可以先手动加载一下“acmted.arx”文件,重新加载后"MTEXT"命令就能正常使用了。3 ^* v( d0 K ^9 T3 N) X8 C
“acmted.arx”位于AUTOCAD程序安装目录的根目录下。当启动CAD后第一次使用"MTEXT"命令时系统才自动调入,并常驻内存。所以有时候,当觉得CAD运行速度变慢,可以用“APPLOAD”命令将其从内存中卸载。
# C7 n: b+ y( c, ~# q6 G 建议在加载“acmted.arx”前,还要查看一下系统变量 "MTEXTED"的值是否为“Internal”。(意思是AUTOCAD是不是使用内部多行文字编辑器来处理多行文字)。如果不是,在命令行键入“MTEXTED”,然后按其提示将其值赋为“Internal”即可。
8 R. A% g8 u2 M2 i6 J! J) X* [
7 G+ h5 _! v2 e. M% b2 o11.坐标的输入1 e" f* g" C/ O: h
) I7 c$ `6 g9 R
在AutoCAD中,很多命令都需要在屏幕上选取两个相对的点以确认位置,如移动命令、复制命令等。通常第二个点可以通过输入“@距离<角度”来确定相对于第一个点的位置,这时你可以使用更简捷的方法,将鼠标置于你所需要的相对于第一个点的方向,然后直接在命令行中输入距离的值,就可能确定第二个点。在AutoCAD2000版中由于具有极向捕捉的功能,使用该项功能就更为方便。
. k4 Y/ [. L! G5 @, T* O+ @ 相对坐标输入点时,在正交状态时,一般输入为:@x,0或@0,y (例如输入相对坐标“@100,0”表示下一点相对上一点X方向增加100,又如输入相对坐标“@0,50”表示下一点相对上一点Y方向增加50),以上两种情况下,可以直接输入100或50即可实现相同的目的,从而节省输入时间。
5 v- V/ L6 Y9 K3 d6 i0 n% |
5 D; h( Z3 ^/ U! g8 G[ 本帖最后由 燕双鹰 于 2008-12-14 09:00 编辑 ] |