CAD二次开发自定义编程
CAD中自定义填充图案
在AutoCAD制图中,HATCH(图案填充)命令的使用较为频繁。CAD自带的图案库虽然内容丰富,但有时仍然不能满足我们的需要,这时我们可以自定义图案来进行填充。 AutoCAD的填充图案都保存在一个名为acad.pat的库文件中,其缺省路径为安装目录的\\Acad2000\\Support目录下。我们可以用文本编辑器对该文件直接进行编辑,添加自定义图案的语句;也可以自己创建一个*.Pat文件,保存在相同目录下,CAD均可识别。
下面,我们就以新创建一个菱形花纹钢板图案库文件为例,来说明AutoCAD 2000中自定义图案的方法。
首先,在CAD中按国标作出菱形花纹图案,并标注各部分尺寸(见图,可点击放大)。
参看下面的库文件标准格式: *pattern-name [, description]
angle, x-origin, y-origin, delta-x, delta-y [, dash-1, dash-2, ...]
第一行为标题行。星号后面紧跟的是图案名称,执行HATCH命令选择图案时,将显示该名称。方括号内是图案由 HATCH 命令的“?”选项显示时的可选说明。如果省略说明,则图案名称后不能有逗号。
第二行为图案的描述行。可以有一行或多行。其含义分别为:直线绘制的角度,填充直线族中的一条直线所经过的点的X、Y轴坐标,两填充直线间的位移量,两填充直线的垂直间距,dash-n为一条直线的长度参数,可取正负值或为零,取正值表示该长度段为实线,取负值表示该段为留空,取零则画点。
好了,我们可以开始编辑了。打开记事本,书写下如下: *custom, steel plate GB/T3277-1991 68.4667, 0, 0, -9.8646, 25, 30.0213, -6.59 111.5333, 0, 0, 9.8646, 25, 30.0213, -6.59
68.4667, -11.0191, 27.926, -9.8646, 25, 30.0213, -6.59 111.5333, 11.0191, 27.926, 9.8646, 25, 30.0213, -6.59
本例中的四行图案描叙行分别对应图一中的线段a、b、c、d。对照图文,各项取值应不难理解。这里只着重讲叙一下delta-x与delta-y的取值规则,为方便理解,我们如图示设置UCS坐标系,确定原点与X轴正方向。线段a、e在Y轴上的垂直间距25构成delta-y,也相当于AutoCAD中的offset命令的取值25;如果线段e是由线段a经offset而来,这时线段e同时还相对于线段a沿X轴负方向移动了9.8646,这段位移也就是delta-x。 下面还有几个注意事项:
图案定义文件的每一行最多可包含 80 个字符。
AutoCAD 忽略空行和分号右边的文字。根据这一条,我们可以在文件中添加版权信息、备注或者是我们想加入的任何内容。例如:
;Copyright (c) 2000 by everyone. All rights reserved.
最后,将文件保存,取名custom.Pat。注意,文件名必须与图案名相同。
到此,相信各位朋友已经掌握了自定义图案的方法。现在,只需一点点耐心,你就可以编辑出非常复杂的图案了。
CAD提供的填充图案文件保存在ACAD.PAT和ACADISO.PAT两个文件中。用户可以在该文件中添加填充图案定义,也可以创建自己的文件。
值得注意的是设计填充图案定义要求具备一定的知识、经验和耐心。 举个列子, ANSI31的填充图案,并且其定义为: *ANSI31, ANSI Iron, Brick, Stone masonry 45, 0,0, 0,.125
在第一行中,图案名称是 *ANSI31,其后是说明:ANSI Iron, Brick, Stone masonry。这种简单的图案定义指定以 45 度角绘制直线,填充线族中的第一条直线要经过图形原点 (0,0),并且填充线之间的间距为 0.125 个图形单位。
还有一种方法用的是EXPRESS TOOLS这个CAD插件,下载一个适合你的CAD版本的EXPRESS TOOLS工具安装,一般现在CAD2007\\CAD2008\\CAD2009在安装CAD时都有选择这个工具的安装选项,安装好后,在\菜单\HATCH\这个命令可以自定义的填充图案.附教程于下
使用“bhatch”命令绘制填充图案,同线型一样,AutoCAD中的填充图案也是以图案文件(也称为图案库)的形式保存的,其类型是以“.pat”为扩展名的ASCII文件。可以在AutoCAD中加载已有的图案文件,并从中选择所需的填充图案;也可以修改图案文件或创建一个新的
图案文件。
同线型文件一样,在AutoCAD 2002版本中也提供了两个图案文件,即AutoCAD主文件夹的“SUPPORT”子文件夹中的“acad.pat”和“acadiso.pat”,这两个文件分别包含有69种填充图案(包括8种ANSI图案,14种ISO图案和47种其它预定义图案)。以“acad.pat”文件
为例来介绍填充图案的定义和定制。
提示 AutoCAD 2000i和2002中提供的填充图案在AutoCAD 2000的基础上增加了一种名
为“GRAVEL”的图案。 32.2.2 填充图案的定义 1. 填充图案定义格式
与线型定义类似,填充图案的定义由标题行和模式行两部分组成。
(1) 标题行:由填充图案名称和填充图案描述组成,标题行以“*”为开始标记,填充图
案名称和描述由逗号分开,其格式为:
*pattern-name [, descri ption](“填充图案名称[,填充图案描述])
(2) 模式行:由图案直线定义和填充线的控制信息组成,一个填充图案中可以定义多
种类型的图案直线(AutoCAD对图案直线的数量没有限制。),其格式为:
angle, x-origin, y-origin, delta-x, delta-y [, dash-1, dash-2, ...]
其中各项意义如下(见图32-5):
angle:填充线图案直线与水平方向的夹角。 x-origin、y-origin:第一条图案直线经过的坐标点。 delta-x:相邻的两条图案直线沿画线方向上的偏移值。
delta-y:相邻的两条图案直线之间的偏移值。
dash-1, dash-2, ...:图案直线的规格说明,与上节中简单线型的定义相同。
图32-5 填充图案定义
当用户使用一个填充图案,AutoCAD首先生成一条通过由x-origin和y-origin指定点的图案直线,然后根据偏移距离delta-x和delta-y来产生其余的图案直线,生成具有无限平行直线的直线族,并使用所有选定的填充边界对这些图案直线进行裁剪。如果在填充图案定义中包括多种类型的图案直线,则AutoCAD通过上述方式对每种图案直线依次绘制,并叠加在一
起产生较复杂的图形。
例如:在acad.pat文件中对SQUARE图案的定义如下:
*SQUARE,Small aligned squares
0, 0,0, 0,.125, .125,-.125 90, 0,0, 0,.125, .125,-.125
注意 图案定义文件的每一行最多可包含80个字符。AutoCAD忽略空行和分号右边的文字。
32.2.3 填充图案的创建
由于填充图案文件也是ASCII格式的,因此用户可以在AutoCAD环境外使用任一文本编辑
器直接打开或创建填充图案文件,并对其内容进行补充和修改。
实例3 创建“USER”填充图案
(1) 使用Windows附件中的“记事本”程序创建一个新的文本文件。
(2) 在该文件中添加如下内容,如图32-6所示。
*USER,the custom pattern by user
0, 0, 0, 0, 1, 1, -1 0, 0, 0.5, 0, 2, 1, -1 90, 0, 0, 0, 1, 1, -1 90, 0.5, 0, 0, 2, 1, -1
图32-6 “user.pat”文件
(3) 将该文件保存在AutoCAD主文件夹的“SUPPORT”子文件夹中,并命名为
“user.pat”。
(4) 进入AutoCAD 2002,打开“Boundary Hatch(边界填充图案)”对话框,在“Type(类型)”下拉列表中选择“Custom(自定义)”项,对话框中将自动显示出用户定义的“USER”
填充图案的信息,如图32-7所示。
图32-7 使用自定义填充图案
选择“Custom pattern(自定义图案)”下拉列表右侧的 按钮,弹出“Hatch Pattern Palette(填充图案调色板)”对话框,在“Custom(自定义)”标签中显示了用户定制填充图案的示
例和其所在的库文件路径,如图32-8所示。
注意 AutoCAD系统对用户所创建的填充图案文件有如下以下要求:
(1) 一个文件中仅含有一种填充图案定义。 (2) 填充图案名称必须与文件名相同。
为 AutoCAD 开发填充图案定义需要一些知识、实践和耐心,以及一个文本编辑器。可将图案加入库文件 acad.pat 或将它单独保存在一个文件中。将图案单独保存时,文件名必须
与图案名相同。例如,名为 PIT 的图案必须保存在文件 pit.pat 中。 不管定义保存在什么文件中,其格式都是一样的。它包括如下格式的标题行:
*pattern-name [, description]
还包括一行或多行如下形式的说明:
angle, x-origin, y-origin, delta-x, delta-y [, dash-1, dash-2, ...]
例如,图案 L45 用间隔为 0.5 图形单位的 45 度直线进行填充,其定义如下:
*L45,45 degree lines
45, 0,0, 0,0.5
这个简单图案指定:直线按 45 度角绘制,填充直线族中的第一条直线穿过图形原点 (0,0),
且填充直线之间的距离为 0.5 图形单位。L45
是图案的名称,这里的说明字段是图案由 HATCH 命令的“?”选项显示时的可选说明。(如
果省略说明,则图案名后不能有逗号。)
图案定义文件的每一行最多可包含 80 个字符。AutoCAD 忽略空行和分号右边的文字。
除了使用提供的预定义填充图案外,还可以设计并创建自己的自定义填充图案。设计填充图案定义要求具备一定的知识、经验和耐心。只有熟悉填充图案的用户才能自定义填充图案,
因此建议新用户不要进行此操作。
AutoCAD 提供的填充图案保存在 acad.pat 和
acadiso.pat 文本文件中。用户可以在该文件中添加填充图案定义,也可以创建自己的文件。
无论将定义存储在哪个文件中,自定义填充图案都具有相同的格式。即包括一个带有名称(以
星号开头,最多包含 31 个字符)和可选说明的标题行。
*pattern-name, description
还包括一行或多行如下形式的说明:
angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, ...
“边界图案填充”对话框中显示的默认填充图案 ANSI31 具有如下效果:
并且其定义为: