solidworks二次开发入门教程连载3:运用Delphi语言实现二次开发

1 Delphi简述

    Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、Windows Vista等环境下使用。当前,DELPHI 也可以在LINUX平台上开发应用,其在LINUX上的对应产品Kylix。其使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编译器、最为领先的数据库技术。
Delphi拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。 与VB相比,Delphi具有以下鲜明优点:
(1)Delphi的程序通常只需要一个.EXE文件,而且它使用的VCL控件可以编译到.EXE中,比.OCX好。如果你编写数据库程序,和VB就差不多了,因为Delphi需要BDE支持。
(2)开发工具特性上面,Delphi可以编译原生目标程序
(3)Delphi可以对低层操作
(4)Delphi可以使用ms的数据库驱动或者其它的
(5)Delphi有vcl类库,学习vcl可是受益匪浅的
(6)Delphi可使用C的obj文件。
(7)语言特性上,Delphi有面向对象支持
(8)Delphi有正宗高效的指针
    基于上述相对于VB而言功能更强大、更实用的特点,以及和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色的特点,也可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。也是用于二次开发的一个强大而高效的工具,使用它可以快速开发属于用户自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成开发任务。
2 利用Delphi实现圆台交互式绘制程序的详细开发过程
2.1 启动Delphi主程序
    打开Delphi主程序,系统默认建立一个命名为Project1的新工程,接下来对其进行重命名保存,重命名为YT("圆台"的首字母缩写),将Unit文件重命名保存为YTJHS("圆台交互式"的首字母缩写)。主程序中首先映入眼帘的是Delphi 7.0的主窗口,位于屏幕的上端,包括Menu(菜单)、快捷按钮栏和Component Panel(组件板)。Delphi 7.0的主窗口如图1所示。下面依次为对象树形图、对象监视器窗口、窗体设计器窗口及代码编辑器窗口。接下来的操作在这几个窗口上进行。
图1 Delphi 7.0主窗口
2.2 注册SolidWorks 类型库并连接到Solidworks类型库文件
    在Delphi编程环境下,将上述建立的新工程连接到Solidworks类型库文件。具体做法为:
(1)单击主窗口中 "Project" "Import Type Library"命令,弹出如图2所示的"Import Type Library"对话框。在弹出的该对话框中对SolidWorks类型库进行注册,将类型库文件SldWorks.tlb装载到Delphi中。选中"SolidWorks 2007 Type Library(Version f.0)",单击"Creat Unit"按钮,Delphi将在其Import子目录下生成该类型库的Object Pascal文件Sldworks_TLB.Pas,该文件包括SolidWorks提供的所有API函数,利用此文件便可以进行二次开发。
图2 "Import Type Library"对话框
(2)单击主窗口中 "Project" "Add to Project"菜单命令,弹出如图3所示的"Add to Project"对话框。在该对话框中,选择Delphi的Import子目录下Solidworks类型库单元文件Sldworks_TLB.pas,将其添加入工程中。在Delphi程序编辑器中,选择YTJHS页面,在uses子句中添加Sldworks_TLB。
图3 "Add to Project"对话框
2.3 编辑窗体界面
(1)拖动Standard组件板上的Lable控件、Edit控件及Button控件到Form1上。
(2)接下来在对象监视器窗口中将"caption"属性设置为"交互式圆台绘图",Form1标题名变为"圆台交互式绘图"字样;将Lable1、Lable2的属性分别设置为"圆台半径"、"圆台高度";将Button1、Button2的属性分别设置为"启动SolidWorks交互式绘图"、"退出SolidWorks环境"。编辑后的窗体界面如图4所示。
图4 编辑后窗体界面
2.4编程实现
    在Delphi编程环境下,引用单元文件,创建相关函数及编写事件处理过程,实现程序功能。详细的程序代码及其注释如下所示:
unit YTJHS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DB, DBTables, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids,ComCtrls,activex,comobj, Menus,SldWorks_TLB,ToolWin, ImgList, Buttons, ADODB; //引用单元文件
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
swapp,part:variant;
docname:string;
selected:boolean;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function getorcreateobject(const classname:string):idispatch;
var
classid:tguid;
unknown:iunknown;
begin
classid:=progidtoclassid(classname);
if succeeded(getactiveobject(classid,nil,unknown)) then
olecheck(unknown.QueryInterface(idispatch,result) )
else
result:=createoleobject(classname);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
R,H:real; //变量定义
begin
swapp:=getorcreateobject("sldworks.application");
swapp.visible:=true;
Part := swApp.newpart; //获取solidworks软件接口并新建一个零件文件
R := strtofloat(Edit1.Text)/ 1000;
H := strtofloat(Edit2.Text)/ 1000; //参数传递
Part.SelectByID("前视基准面", "PLANE", 0, 0, 0 );
//选择"前视基准面",创建一个新的草图绘制
Part.insertSketch2(true);
//插入草图
Part.CreateCircle (0, 0, 0, R, 0, 0);
//绘制圆,CreateCircle的各个参数意义参见SldWorks API。
Part.FeatureManager.FeatureExtrusion(True, False, False, 0, 0, H, 0.01, False, False, False, False, 0, 0, False, False, False, False,True, False, False)
//拉伸圆以形成圆台,FeatureManager.FeatureExtrusion的参数意义参见SldWorks API。
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
swApp.CloseDoc(DocName);
swApp.ExitApp;
Close;
end; //退出绘图程序
end.
    点击"启动SolidWorks交互式绘图"后,程序调用SolidWorks自动绘制的圆台三维图如图5所示。可交互式修改参数,直至达到满意的效果。操作完成后点击"退出SolidWorks环境"可以自动关闭并退出SolidWorks环境。
图5 绘制结果
3 小结
    本文以一个简单实例的实现过程为例,详细介绍了这一二次开发过程,给出了属性设置、接口程序的编制和事件处理等过程的完整代码。通过上述实例的实现过程,可以看出Delphi同时兼备了VC功能强大和VB简单易学的特点,学习过程中很容易上手,是用于二次开发的一个强大而高效的工具,使用它可以快速开发属于用户自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成二次开发任务。
    对于这种面向对象的开发语言,重点在于接口程序的编制和事件处理过程总体架构的建立。对于较为复杂的模型,只需对procedure TForm1.Button1Click(Sender: TObject)过程中相关建模命令进行拓展即可,在一定程度上可以较好地供初次使用Delphi进行二次开发的人员借鉴。

 

返回Solidworks技术文章专题列表>>>