2023年11月30日发(作者:)

0 前言

Object pascal 言为基础,是完全面向

对象OOP的结化编语言有完

的基于组件设计与可视的开发环境,

程序 设计 员快速 生成 程序 原型 及用

界面,开发 AutoCAD 的理想工具

ActiveX Automation OLE 自动化技

术扩充和发展成,采用客/ 服务器模

许一个应用程序操纵另个应用程

示,最高层对象为 ation

属性反映了 AutoCAD 主应用窗口的属性

多设 单位 了提 设计

率,都采 AutoCAD 作为图工具。

张图纸绘好后设计者应对所绘的图纸

的方是设纸完

图纸 名处 可。

中,果采这种法,迹信很容

并含有两个子对Preference Document

Preference 对象等价于 AutoCAD Prefer-

ence 对话框,包含 AutoCAD 的系统参数

设置。Document 子对象包多级 子对

象,是图件的有对合,使用户

可以 现图 形的 二维 和三维 处理 以及

被盗公自化中Word 档也 机交互、打印输出等功能

序中程序为客

同样题。要解决问题是要

程序。 可以

如何将 电子 手写 签名 轨迹 入这 种类

访问和操纵服务程序中暴露的对象Exposed

型的档中即对 AutoCAD 开发

Objects属性和方法,使得 AutoCAD

题;是要决签不被用,签名

被许 多不 同的编 程环 境和 其它 用程

文档的绑定问题

序访问(如图 1

子手 签名 证技 包括

集系统签名认证系其原理是成年

的签名都是独特的,并且是比较稳定的,

在较短时期内不会随意改变 AutoCAD

C++

Visual Basic Text

中,计者设计完图纸后,要在电子图

Jaka

MS Word VBA

De 1phi

上签 自己 电子 写签 。如 使

AutoCAD VBA A

Excel VB

签名不被别人盗用是 AutoCAD 计者所

关注的问题也是当前电子手写签名研究

AutoCAD Activex 对象

中的一个重要课题。

AutoCAD 应用程序AutoCADApplication

1 AutoCAD 服务器模型

对于用 Delphi 开发 AutoCAD 动化

言,ActiveX Automation 使得

AutoCAD 被登录为一个Delphi 可以访问的

1 Delphi 中的 AutoCAD 二次开发技

象。 对象 还包 构的 菜单中 Import Type Library 工具,可以导

象。它们 和属

性供用户调用Delphi 通过访问 AutoCAD

1.1

AutoCAD Automation 技术

这些 绘图 对象和 非绘 图对 象实 特定 会增加标记 AutoCAD TLB 的一页,随后

Delphi Inprise 公司推出的一种方便

的功能AutoCAD 的对象模型如图 2

快捷的 Windows 应用程序开发工具Delphi

AutoCad. App1ication

3dface

ModeSpace

itycollection Ent

Preferences

3dsolid

PaperSpace

Arc

Document

Entitycollection

Line

Circle

Block collection

Block

Utility

2 AutoCAD 对象模型

1.2 使用 Delphi 次开 AutoCAD

类型库文件是支 ActiveX 技术的应

用程。在类库文定义以被

客户 序访 问和 操纵 的对象 类型 以及

些对 的属 和方 法。类型 文件

件名一TLB AutoCAD 型库

文件为Auto. TLB。通过 Delphi Project

入类型库文件,文件转换 Delphi 的单

元文件格式,这时 Delphi 的编辑窗口中

图形学与辅助设计

Delphi Code Explorer 窗口中,用户可

以方便地浏 AutoCAD ActiveX 对象及 合对象)等非绘图

Styles 标注样式集

临沂市沂蒙路河特大桥工程

设计

对象,通过访问其 法,这些对象的属性和方可以了解调用

属性和使用方法, 这些属性和方法时可用的参数及形式

开发程序时还可以引用该单元文件,从而

中操纵这些对象。 以使用 声明 量类 和常 量定

Text- 动完成功能减少错误译程序时函数、

Styles 并设为当前

值。

( )

义。在编写程序时可以利 Delphi 的自

方法和属性可以得到自动检查。

1 AutoCAD Activex Automation

始化。 Delphi 环境下进行 AutoCAD Ac-

铁道第三勘察设计院 工程名称

专册(业)负责人

室主任

处总工程师

项目总工程师

比例尺

图号

日期

3 AutoCAD 图纸中的电子签名轨迹

tivex Automation 设计需要进行 3 方面的初始

化:

Var Acadtextstyles, Acadtextstyle: OLE-

uses 语句引用 Comobj 单元,它是 Delphi

Variant;

应用程序中处理 Activex Automation 的关键

// 定义文本样式及样式集对象变

代码;

Acadtextstyles:=yle;

获取AutoCAD Application document

// 获取当前文本样式集合对象 TextStyle

对象,用来管理 AutoCAD 应用程序和操纵

当前活动图形文件。

Acadtextstyle:= 'New-

(

下列代码可进行必要的初始化工作:

StyleName';

)

uses ComObj;

// 加入新的 TextStyle

// ComObj 单元

le:=fontpath;

var Acad,AcadDwg:OleVariant;

// 设置 TextStyle 加的字体文件

// Application document 对象变量

textstyle:=acadtextstyle;

Acad:=GetActiveOleObject 'AutoCAD.

(

// 设置 TextStyle 为当前 TextStyle

Application';

)

4操纵图形对象。AutoCAD 图形

对象分别包含在 ModelSpace Entities Collec-

// Application 对象

tionPaperSpaceEntities Collection Block 3

AcadDwg:=Document;

个对象中,它们可由函数 AddObj Parameter

//获取AutoCAD 活动Document

创建,过设置其属性以及使用相应方法

对象

可以操作该对象

2获取设置 AutoCAD 统变

AutoCAD

5)实现能。AutoCAD

时,可使用 Document 对象的以下 2 个方法:

的。用

交互功能的函数都是 Utility 对象的方法。

RetVal:=ObjDocument. GetVariable Sys-

(

Name:String;

)

实例。

// 系统变量 sysname 当前值

Var AcadUtil:OLEVariant;

ObjDocument. SetVariable SysName:

(

str:string; height:double;

string,SysValue;

)

insertpoint,atext:Olecariant;

// 设置系统变量 SysName 当前值

新值 SysValue

AcadUtil:=y;

使用这两个方法时需注GetVariable

str:=AcadUtil.getstring' 入文';

()

函数返回值 SetVariable 函数中参数 sys-

insertpoint:nt'输入插入点'

()

Value 的类型随着系统变量的不同而变化,

height:=tance vararrayref

(

例如多点线线宽返回实数、当前颜色返回

())

insertpoint,' 入文本高';

整数等

atext:=AcadDwg.modelspace.addtext str,

(

3非图对象AutoCAD 中含

varrrayrefinsertpoint,height;

())

有如 TextStyles 文本样式集合对象) Dim-

;// 绘制文本对象

通过上面的方法很容易将用户签

名的笔迹轨迹加入到 AutoCAD 的文件中去。

2 实验结果

3 为通过二次开发将电子签名

迹加到 AutoCAD 图纸中。

3 结束语

本文提供了一种使用 Delphi 二次

AutoCAD 的方法经过实践证明了方

的可被签止文

不被修改将电子手写签名与文档

行绑定,使何一最细(即使

增加或减少空格)会使签名的文档变

无效。

参考文献:

[]

1

, 在康.AutoCAD 14 Activex Auto-

mation 术剖J.,1997

[]

()

12

[]()

2帆勇,克绳在康.AutoCAD

二次开发技术M. :清华大学出版,

[]

1999

[]

3TeixeiraS,pachecoX. Delphi5 开发人员指南

[][]

M. : 械工业出版,2000. 4陶以

,何铁宁.Delphi MS-Office

J.,2002,

[]

()

1.

(责任编辑:杜钢)