QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2401|回复: 3
收起左侧

[分享] AutoCAD的线型与填充图案开发技术

[复制链接]
发表于 2009-6-16 10:50:18 | 显示全部楼层 |阅读模式 来自: 中国浙江温州

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

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

x
当您在使用AutoCAD进行图形设计时,常常会感到现有的线型与填充图案不能满足自己的要求。因为AutoCAD毕竟是美国的软件,它采用的标准线型与填充图案与我国现行的绘图标准和有关规定不尽吻合,因此您有必要定制一套自己的线型与填充图案,以满足绘图的需求。下面将以AutoCAD 2000中文版为蓝本,详细介绍线型与填充图案的开发技术。 " l6 ]! q& d/ e7 Y: y/ d* W; e

  Z* ~  y# t) M6 t$ A0 k& W. S  一、线型的开发
% [" s; T3 |) m& E) `; `( u  O  1.线型文件的定义格式
, x- c- {' g# D9 C1 ^) [  要开发出一套自己的线型,我们可以先学习一下AutoCAD 2000本身本带的标准线型文件,以便有所借鉴。我们找到AutoCAD 2000的标准线型文件ACAD.LIN,这个文件位于AutoCAD所在路径的Support子目录下,用一般的文本编辑器(如记事本、写字板)即要打开,该文件的内容如图1所示。 / H7 A4 b$ G' P
现在我们来研究一下这个文件。文件中“;;”代表注释行。因此我们可以利用它来添加一些注释性文字,以增强文件的可读性。
% v+ C) P0 C. O1 G  每种线型都可以定义为两行,第一行定义线型的名称和线型说明。行首必须是以“*”开始,其后是线型名称。线型的描述也是起一个直观的注释作用,最好加上,不过这种描述不能超过47个字符。第二行才是真正描述线型的代码。行首的“A”代表对齐方式。在这种对齐方式下,第一个参数的值应该大于或等于0,第二个参数的值应该小于0。简单地说:正值表示落表,AutoCAD会画出一条相应长度的实线;0表示画一个点;负值则表示提笔,AutoCAD会提笔空出相应长度。我们可以想像成绘图笔的工作过程,就很容易理解了。要注意的是,这些字符之间以半角的逗号隔开,每一行结束必须按回车键,最后一行也不例外。另外,在*.LIN文件中,每个线型文件最多可容纳280个字符。
9 E; b' U2 h, f; Y  说了这么多,您可能还没有明白,不要紧,现在让我们来分析一下第一种线型Border,首先的“.5”表示正数0.5,也就是画一条0.5个单位长的线;然后的“-.25”表示负的0.25,也就是留一段0.25个单位长的空白;紧接着画0.5个单位长的线,0.25个单位长的空白,0表示画一个点,然后又是0.25个单位长的空白,如图2所示。
' ~- u2 }/ S% p5 r5 o1 s9 `在清楚线型的定义之后,我们不妨来做一个自己的线型,根据建筑制图的相关规定,新建一个双点划线的线型,用于假想轮廓线和成型前原始轮廓线的绘制,如图3所示。 4 Z- i7 ]4 U0 b
我们将这个线型命名为outline,那么这个双点划线的线型则可以做如下定义: " ^; m7 ]% D% P, h2 A
" X+ M- H6 i. ?4 e1 w
  *OUTLINE,outline ______..______..______
# h  Q* k5 y. \' S6 p  A,1.0,-.1,0,-.1,0,-.1 3 W0 w2 j8 ]; K# d; d
- }2 h) v& q) g& @0 U
  将这两行添加到ACAD.LIN文件中,存盘并退出文本编辑器。启动AutoCAD 2000,在使用我们定义的outline线型之前,需要加载该线型。使用“格式”菜单中的“线型”命令打开“线型管理器”对话框,单击“加载”按钮,打开“加载或重载线型”对话框,单击“文件”按钮,然后选择ACAD.LIN文件,单击打开按钮。从可用线型列表中选择“OUTLINE”线型,单击“确定”按钮将其加载,如图4所示。
! y# B0 k# V6 L8 x: Z在“线型管理器”对话框中选择OUTLINE线型,然后单击“当前”按钮,将该线型置为当前线型,单击“确定”按钮,加载完成,如图5所示。# E, l' {+ e& q' ^1 e; l  ]0 }% [
现在可以使用绘图命令绘制几个对象(如图6所示),如果您看不到线型效果,可能需要放大绘图窗口。 , {! N' @5 O, [9 U" r2 h6 n
2.线型的开发方法 . P& c. k% B* W7 U6 o
  从第1节可以看出,我们可以直接用文本编辑来新建线型文件。实际上,AutoCAD 2000还提供了在其系统内部生成线型的命令“LINETYPE”。而且新建的线型即可以直接追加到ACAD.LIN文件的末尾,也可以另外定义线型文件。下面将对这些方面分别作介绍。 9 T% ~! p0 b2 R0 {
  我们以第1节中建立的OUTLINE线型为例,先来看一下LINETYPE的命令的使用。启动AutoCAD 2000,输入命令“-linetype”(注意前面有一个横线,如果没有这个横线将打开“线型管理器”对话框)。输入C,新建一个线型,输入要创建的线型名称,比如outline,屏幕弹出“创建或附加线型文件”对话框。这时,您可以在原有的文件ACAD.LIN文件中增加新的线型,也可以新建一个线线文件,这里我们新建一个名为myline.lin的线型文件,单击“保存”按钮。此时命令行上显示“说明文字”,输入对线型的简单说明。如果您保存线型文件已经包含了outline线型,在这之前会有一条询问您是否覆盖的信息。现在就可以输入线型的图案了,仍然输入A,1.0,-.1,0,-.1,0,-.1,回车结束线型的定义。此时,AutoCAD生成一个新的线型文件myline.lin,整个操作过程的系统提示信息如图7所示。
! ]/ L: N' h1 A: M" S同样,我们也可以用-linetype命令加载线型,在命令行要求输入选项时,输入L,然后输入要加载的线型,如outline,选择保存线型的文件,这里选择myline.lin文件,命令行提示线型已经加载,使用键退出命令。当然,您也可以使用“线型管理器”来加载线型。
8 k+ E5 F) z3 w  t' z: R- _$ p" q, f5 q6 X& h
  3.复全线型的定义与开发
: J2 ^9 d, w8 u  J  AutoCAD不仅能定义由短线、间隔和点组成的简单线型,还可以开发出较为复杂的线型,以满足特殊的需要。比如说表示篱笆的线型。复合线型功能是从AutoCAD R13版本起新增的功能,可以在定义的线型中嵌入文本和形文件(.SHX)中的形。这里我们将介绍在线型中嵌入文本,形的插入相当复杂一些,我们这里将不作介绍。 6 s$ ]* M7 e( M4 ^" h  L8 [0 D4 F
  我们仍然沿用学习简单线型定义的思路,还是先研究一个标准的范例,总结出其中的规律,图8显示的线型是一个篱笆的复合线型。那么这个线型是怎么样定义的呢?很简单,只有以下两行语句: : V- q, h0 a( k6 y- z  b- u
*LB_LINE,----X----X----X---- ) F, N" h% Q& t$ Q) _1 ^
  A,1.0,-.25,["X",STANDARD,S=.2,R=0,X=-.1,Y=-.1],-.25
9 I5 C; D7 ?+ x7 D5 u
5 u7 Q1 _9 J' p' g* N  第一行没有什么特别的,跟简单线型定义一样,是线型名和线型的简单描述。第二行的A当然是对齐符号,数字的意义仍然与前面一样。我们集中精力来看文本的嵌入。
* ]( u6 A9 H/ a  “X”是嵌入的文本,注意必须加上双引号。“STANDARD”是文本式样的名字,如果当前图形中没有该样式,则AutoCAD不允许使用该线型。 % {8 c' U7 `: |2 ?& o" r4 B# I3 [
  “S=.2”确定文本的比例系数为0.2。如果使用固定高度的文本,AutoCAD会将此高度乘以比例系统数;如果使用的是可变高度的文本,则AutoCAD会把比例系统数看成绝对高度。
! q% R. `4 `  W) k  “R=0”表示文本相对于当前线段方向的转角。0表示文本与所给线段方向一致,这也是缺省值。 ( ^" z5 z8 H* `# ]
  “X=-.1,Y=-.1”为可选项,它们确定相对于当前点的偏移量。缺省时AutoCAD将文本字符串的左下角点放在此当前点。X就是当前线段的方向,Y则是垂直于线段向上的方向。这两个偏移量将使文本的定位更精确。
7 X9 R/ R  x6 d7 }/ }. K# I0 h  复合线型的使用同简单线型的使用一样,也是先装入再调用,明白了复合线型的定义格式之后,我们就可以自己定义线型了。要创建复合线型,只能是编辑已有线型文件或者建立新的线型文件来达到目的,而不能像定义简单线型那样,采用AutoCAD内部以命令行添加线型定义代码的方式。
$ j  F) [8 {) P二、开发填充图案
  V1 e# I" I! \1 r  在绘图时,我们经常会在一定区域内填充某些图案,也就是“图案填充”,以起到区分一个区域的各组成部分及其构成材料的作用,比如我们在绘制混泥土墙面时,就需要用到图案填充。在AutoCAD系统中图案填充的功能是通过执行HATCH(填充)或者BHATCH(边界填充)命令来实现的。AutoCAD提供的一些形式的图案都位于Suport文件夹下的acad.pat文件中,可以用任何文本编辑器打开它。 ) u* ]; T- S4 d+ {  H- x7 S: n
  图案是由一种或多种图案直线组成的。AutoCAD对直线的数量没有限制。每一种图案的各条线相互平等且线型相同。因此,只要确定了该图案线中的一条基准图案线的方位、线型及其相邻平行线与该基准线的相对位置,则这种图案线就唯一确定了。在AutoCAD中,基准图案线的方位由三个参数决定(如图9所示),即基准线的起点(dx,dy)和基准线与X轴的夹角A(逆时针为正)。基准图案线的定义与一般线型的定义完全相同,所以当线型为实线时可以不作定义。在基准图案线确定以后,相邻平行线与基准图案线的相对位置由两个参数决定,即相邻平行线起点与基准图案线起点,在线长度方向的距离(dl)和平行线之间的距离(ds)。
! n3 w/ p1 ?: h我们仍然以AutoCAD自带的ACADISO.PAT文件为例(如图10所示),从中取出ANGLE图案文件。
5 @' W( r- z- N6 @第一行是星号加图案名和图案的描述信息,接下来的两行就是图案的具体内容,可以有一行或几行,格式为A,dx,dy,dl,ds[定义线型的一组参数],实例与格式对照(如图11),您可以很容易地看出图案中两条线的绘制方式。
8 q3 V/ w+ d* \* L如果您觉得ACAD.PAT文件提供的图案不够丰富和理想,也可以自己定制图案或者直接修改原图案。为AutoCAD开发填充图案的过程比较接近与复合线型的定义,但要稍微复杂一些,不过,有了前面的基础,相信您也不难掌握其实质。可将新定义的图案加入库文件ACAD.PAT中或将它单独保存在一个文件中。将图案单独保存时,文件名必须与图案名相同。在搞清楚图案文件的各项参数之后,我们就可以自出新裁定义一些新的图案了。下面我们就定义一个三角形的图案,命名为TRIANGLE,并保存到TRIANGLE.PAT文件中。打开记事本,新建一个文件,输入如下代码(代码最后一行加入一个换行):
( \/ t2 K9 R+ Z! n3 x% H$ \) [8 N! I7 n' c
  *TRIANGLE,triangle pattern 8 V& R: _5 S& G5 o- A
  0,0,0,1,1.732,1,-1 , h# _# j. B- V5 N& X
  60,0,0,1,1.732,1,-1 ' W* k$ G, w  Q  j3 k) `: B6 V
  120,1,0,1,1.732,1,-1 0 j! u9 g, E# r2 A  [/ `
; k9 T5 i7 ^9 p! n* q4 n7 g9 H
  将文件保存为TRIANGLE.PAT,并放在support文件夹下。接下来,我们用TRIANGLE图案来填充一个圆形进行验证。首先启动AutoCAD,绘制一个圆形,然后执行“绘图”菜单中的“图案填充”命令,打开“边界图案填充”对话框。在“类型”列表中选择“自定义”选项,激活“自定义图案”列表框,单击“自定义图案”更表框右侧的按钮,弹出“填充图案调色板”对话框,从中选择TRIANGLE.PAT文件(如图12所示),单击“确定”按钮关闭“填充图案调色板”对话框。 4 I* k) S/ N1 i- _
在“边界图案填充”对话框中选择合适的“比例”,单击“拾取点”按钮或者“选择对象”按钮。在绘图区中选中圆形,按回车键返回“边界图案填充”对话框,单击“确定”按钮,完成图案的填充,填充后的效果如图13所示。
0 f7 {' S9 D0 s+ X* `. C我们再来看一个实例,填充图案的代码如下:
8 B# i  f- j: `
- L8 h" K# N- [# D  *STAR,star* 4 o/ L# B# m9 C
  0,-1,0,1.5,2.598,2,-1
# d- p# ]+ s5 `* J  60,-0.5,-0.886,1.5,2.598,2,-1 % u6 |$ u7 P" p4 z$ G* H
  120,0.5,-0.866,1.5,2.598,2,-1 . [7 q- U0 p. J2 z! [7 J. n

8 z* |7 k. h) P8 |7 r0 C6 n! y  保存文件后按照前面的方法使用该图案填充产生星形效果,如图14所示。0 e9 s) ^0 X) l! V- U; k$ ?
  将以上两个例子作以对比,我们不难发现:图案填充的关键还在于灵活掌握线段的几何关系,即使是简单的线型,如果经过精心的设计,也能够产生各种不同的奇妙效果。
发表于 2009-8-16 18:23:31 | 显示全部楼层 来自: 中国广西梧州
受教了,谢楼主分享,进来顶一下吧
发表于 2009-9-2 17:00:17 | 显示全部楼层 来自: 中国江苏苏州
LZ水平不一般,我用只是外表,你已深入骨髓了!
发表于 2009-9-2 17:24:11 | 显示全部楼层 来自: 中国山东济南
学习了,谢谢楼主。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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