江湖远人 发表于 2011-12-25 11:34:37

进入CAD二次开发的世界(转)

今天给大家讲一讲如何进入CAD二次开发,也许这些东西对很多朋友没有用,或太难,我希望能讲的浅显易懂些,也希望更多的朋友能跨入二次开发的大门。如果不进入这个大门永远就是站在门口,永远都难。
二次开发有几个不同的语言体系,一是lisp语言,基本上是内嵌在CAD中,可以对CAD的元素进行表操作,效率很高,
文件结尾是lsp,在某种程度上是C语言的子集,但缺点是不容易学习,其发展也是由单纯的lisp,发展到Vlisp,朋友们有
时候看到的fas结尾的文件就是lisp加密形成的。
二是VBA,这种语言也是activeX类型的,在运行效率上比lisp语言略低,不能对表进行操作。高版本的CAD基本上需要再下载支持模块才可以用
三是VB,这种方法是纯外挂语言的方式,运行效率低,移植性不好,但是可以脱离CAD单独操作。
四是arx,基本上是C++,可以执行表操作,学习起来比较困难
五是。net,其中包括vb.net、c#等,这是CAD语言接口的发展方向。

下面说一下,CAD的启动文件
CAD启动的时候有三个文件是自动加载的 acad.lsp 、acad.lin、 acad.pgp


我们来看一下acad.pgp文件
先说一下这个文件的位置,打开CAD--工具--选项中
http://au.autodesk.com.cn/bbs/images/default/attachimg.gif http://au.autodesk.com.cn/bbs/attachments/forumid_43/110827101243369a7c0f6035e3.jpg
如上图,在我机器里面CAD的支持文件在:
c:\documents and settings\administrator\application data\autodesk\autocad2005\R16.1\chs\support
这么一个很深的目录文件夹里面
下面解释一下这个长目录的含义:
document and settings 这个目录在xp系统下都有的
administrator 这个是登录名称,有的朋友不是这个登录名,有可能是其他的,所以很可能找不到目录
application data 一般都有这个目录的
autodesk 装载cad的xp机器都会有这个AU专用目录的
autocad2005是你装载的CAD的版本(也称为外部版本号)
R16.1是CAD的内部版本号,同时也是判断CAD到底是什么版本的最终依据
chs是正常的一个文件夹
support是支持目录的名称,只有将上述三个文件放到这个目录下,CAD才能在自启动的过程中运行这三个文件。

下面我们看一下acad.pgp文件的内容,用记事本软件就能打开文件

; acad.pgp - External Command and Command Alias definitions

; External Command format:
; <Command name>,[<DOS request>],<Memory reserve>, <Prompt>,<Return code>

; Examples of External Commands for DOS

CATALOG,DIR /W,0,File specification: ,0
DEL,DEL, 0,File to delete: ,4
DIR,DIR, 0,File specification: ,0
EDIT,EDLIN, 0,File to edit: ,4
SH,, 0,*OS Command: ,4
SHELL,, 0,*OS Command: ,4
TYPE,TYPE, 0,File to list: ,0


; Command alias format:
; <Alias>,*<Full command name>

; Sample aliases for AutoCAD Commands
; These examples reflect the most frequently used commands.
; Each alias uses a small amount of memory, so don't go
; overboard on
; systems with tight memory.
st, *style
dl, *DIMLINEAR
A, *ARRAY
AA, *ARC
B, *BLOCK
BB, *BREAK
CI, *CIRCLE
C, *COPY
CC, *CHANGE
CH, *CHAMFE
D, *DIST
DD, *DIM
DE, *DDEDIT
DT, *DTEXT
DV, *DIVIDE
DA, *DDATTE
de, *ddedit
DS, *DIM DIMSCALE
E, *ERASE
EE, *EXPLODE
ED, *EXTEND
F, *FILLET
FI, *FILES
G, *
H, *HATCH
bh, *bhatch
I, *INSERT
L, *LINE
LE, *LINE
LL, *LAYER
LI, *LIST
LT, *LTSCALE
NNN, *NN
M, *MIRROR
MM, *MOVE
MS, *MSPACE
O, *OFFSET
OO, *OOPS
OS, *OSNAP
P, *PAN
PP, *PLAN
PE, *PEDIT
PS, *PSPACE
PU, *PURGE
PL, *PLINE
Q, *Qsave
R, *REDRAW
RE, *RECTANG
RD, *REDO
RG, *REGEN
RR, *ROTATE
S, *STRETCH
SC, *SCALE
SO, *SOLID
SH, *SHELL
spl, *spline
T, *TRIM
TA, *TRACE
TT, *TEXT
UU, *UCS
V, *VIEW
VP, *VPOINT
W, *WBLOCK
Z, *ZOOM



在CAD的文本中规定了“分号”,起头的语句是注释语句,不起任何作用
那么在后面的每行语句中就是CAD的简化命令定义的地方,
比如,O, *OFFSET

逗号前面的是要简化成的命令,*号后面的是原来的不简化命令
也就是说把offset命令,简化成o
以此类推,这样就可以把大部分CAD已有的命令简化成你自己需要的命令了。

综上所述,简化命令的步骤就是,1、找到acad.pgp文件 2、修改pgp文件 3、将pgp文件放到CAD的支持目录下。
修改过后,你也就定制了自己的CAD命令集了。换句话说你的CAD你做主。你的命令你自己用。
各位朋友会了吗?

江湖远人 发表于 2011-12-25 11:37:15

在autodesk网站上看到的,对初学者来说是非常好的资料,望版主别删我的贴!

革天明 发表于 2012-3-31 14:48:34

楼主好人,谢谢楼主分享

icefire 发表于 2012-4-8 10:17:55

楼主家的比较实在

alaiyj 发表于 2012-6-22 23:30:38

这是最简单的二次开发了。

icefire 发表于 2012-6-29 14:10:40

谢谢楼主,写的很不错

skillmc 发表于 2016-1-7 16:35:26

后来加载的VLS文件的命令无法在png中做修改?为什么

wyy623 发表于 2017-9-26 22:37:44

这是最简单的二次开发了。
页: [1]
查看完整版本: 进入CAD二次开发的世界(转)