AutoCAD二次开发实验一
AutoCAD官方二次开发教程
第 1章 Hello World: 工程的创建在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。
我们将使用Visual Studio .NET来创建一个新的类库工程。
通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。
这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。
当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
1) 启动Visual ,选择”文件>新建>工程”(File> New> Project)。
在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。
点击确定按钮来创建工程。
2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。
接下来向这个类加入命令。
要加入命令,你必须使用AutoCAD .NET托管封装类。
这些托管封装类包含在两个托管模块中。
要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。
在弹出的”添加引用”对话框中选择”浏览”。
在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。
再一次选择”浏览”,在AutoCAD 2006的安装目录下找到“acmgd.dll”并打开它。
当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。
正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX 托管类,而acmgd.dll包含AutoCAD托管类。
3) 使用对象浏览器(Visual 的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。
cad二次开发教程
cad二次开发教程
当办公软件无法满足特定需求时,我们通常需要进行CAD软件的二次开发。
CAD软件的二次开发可以帮助我们定制各种功能,以提高工作效率和满足特定需求。
以下是一个简单的CAD二次开发教程,让我们开始吧。
第一步:了解CAD软件的API
每个CAD软件都有自己的应用程序编程接口(API)。
通过研究CAD软件的API文档,我们可以了解到CAD软件提供的各种功能和接口。
第二步:编写代码
根据我们的需求,在CAD软件的API基础上编写代码。
我们可以使用各种编程语言,如C++,C#或Python。
编写的代码可以实现特定的功能,如自动绘制特定类型的图形,自动计算尺寸等等。
第三步:测试和调试
完成代码编写后,我们需要对其进行测试和调试。
通过在CAD软件中运行我们的代码,并观察其行为和效果,我们可以检查是否达到了我们的预期结果。
如果出现错误或异常,我们需要对代码进行调试,找出问题所在并进行修复。
第四步:部署和使用
在代码完全测试并修复所有错误后,我们可以将其部署到CAD软件中使用。
根据不同的CAD软件,部署方式可能会有所不同。
通常,我们需要将代码文件放置在特定的文件夹中,
并将其与CAD软件进行关联。
总结
CAD二次开发是为了满足特定需求而对CAD软件进行编程的过程。
通过了解CAD软件的API,编写代码,测试和调试,以及部署和使用,我们可以成功实现自定义功能和特定需求,提高工作效率。
希望以上教程对你有所帮助!。
Autocad 的二次开发第一部分:实验分析与设计一、实验内容描述1 ...
Autocad的二次开发第一部分:实验分析与设计一、实验内容描述1、通过示例程序了解Autocad的二次开发的基本概念,以及基本实现方法。
2、通过vb程序示例初步了解Autocad对象模型,以及面向对象开发的基本概念。
3、通过lisp程序示例的调试运行,初步掌握lisp语言的格式以及Autocad的lisp 编程方法。
二、实验基本原理与设计基本原理:Autocad作为CAD支撑软件,提供了一个通用的设计和绘图平台,已经被广泛使用。
该软件提供了较好的二次开发支持。
其中主要方法,一种是Autocad自身内嵌的lisp开发工具;另外一种主要的开发方法是通过Autocad提供的对象模型,使用其它的软件进行二次开发,如支持VB、VC等高级编程语言。
在Autocad中内嵌的Lisp开发程序随着Autocad的不断升级换代已经发展到Visual Lisp,提供了可视化的编程环境,可及时调试,使用方便,并可直接调用Autocad命令,方便易用,是进行简单开发的最便利的工具。
面向对象的开发使得二次开发不仅局限于Autocad本身的功能,使用户能更好地实现专用化的开发。
本次实验进行基于lisp的开发演示和基于VB的开发演示。
注:1)vb开发autocad需要连接autocad(不同的autocad版本调用方式有所区别,本实例针对autocad2000版),vba开发则可直接调用thisdrawing对象。
2)步骤:连接autocad,定义autocad类型变量并实例化,通过对autocad对象的属性和方法的调用,实现绘图等操作。
3)可适当设计界面实现参数化特征化绘图。
4)本实验可以自行查找实例并运行体验。
Vb(vba)开发autocad:根据autocad对象模型,可建立如下vb程序,第一个函数Sub ConnectToAcad()可实现autocad的启动,第二个函数可实现启动并在autocad中画线。
以vb6.0为例:、启动vb,新建工程,1)在form1上添加按钮,如图红箭头处,按钮标题可以修改显示文字,如图2;2)分别双击“启动”和“画线”按钮,分别加入代码ConnectToAcad,如图3;和AddLineVB,如图3;3)加入对autocad的引用,如图4;(autocad版本不同引用方式可能有所不同)4)运行程序。
CAD实验--图形软件的二次开发
学生实验报告书
实验课程名称CAD/CAM基础
开课学院
指导教师姓名
学生姓名
学生专业班级
-- 学年第学期
实验教学管理基本规范
实验是培养学生动手能力、分析解决问题能力的重要环节;实验报告是反映实验教学水平与质量的重要依据。
为加强实验过程管理,改革实验成绩考核方法,改善实验教学效果,提高学生质量,特制定实验教学管理基本规范。
1、本规范适用于理工科类专业实验课程,文、经、管、计算机类实验课程可根据具体情况参
照执行或暂不执行。
2、每门实验课程一般会包括许多实验项目,除非常简单的验证演示性实验项目可以不写实验
报告外,其他实验项目均应按本格式完成实验报告。
3、实验报告应由实验预习、实验过程、结果分析三大部分组成。
每部分均在实验成绩中占一
定比例。
各部分成绩的观测点、考核目标、所占比例可参考附表执行。
各专业也可以根据具体情况,调整考核内容和评分标准。
4、学生必须在完成实验预习内容的前提下进行实验。
教师要在实验过程中抽查学生预习情况,
在学生离开实验室前,检查学生实验操作和记录情况,并在实验报告第二部分教师签字栏签名,以确保实验记录的真实性。
5、教师应及时评阅学生的实验报告并给出各实验项目成绩,完整保存实验报告。
在完成所有
实验项目后,教师应按学生姓名将批改好的各实验项目实验报告装订成册,构成该实验课程总报告,按班级交课程承担单位(实验中心或实验室)保管存档。
6、实验课程成绩按其类型采取百分制或优、良、中、及格和不及格五级评定。
实验课程名称:___CAD/CAM基础____________。
CAD二次开发实验1
实验一 ObjectARX .NET托管开发包的使用一、主要内容1、下载安装ObjectARX .NET托管开发包2、创建AutoCAD命令3、创建自定义用户菜单4、创建自定义用户工具条5、创建用户自定义窗体二、学时安排三、预习内容及要求回顾ObjectARX API和其托管API之间的对应关系;掌握不同API版本对应的开发版本;熟悉创建用户需求所要引用命名空间。
开发语言使用C#,AutoCAD版本2010,objectARX2010。
四、下载安装ObjectARX4.1下载ObjectARX不同的ACAD版本用不同的开发包及开发环境ACAD2000~ACAD2002 : VC++ 6.0ACAD2004~ACAD2006 : 2002ACAD2007~ACAD2009 : 2005ACAD2010~ACAD2011 : 2008ACAD2012~ : 2010下载ObjectARX在打开打开默认网页浏览器并浏览网站.的网页上,点击License & Download(许可&下载).填写必填字段并选择ObjectARX for AutoCAD 2010. 点击Submit(提交)按扭.在下载页, 点击Download Now(现在下载)使用下载管理器或点击Standard Download Method(标准下载方法)使用你的网页浏览器的默认下载方法下载.点击Save(保存)或用于保存文件到你的本地驱动器的选项。
指定下载ObjectARX SDK安装包文件存放的位置。
一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX <释放>对话框中, 指定一个新的安装位置或接受默认的安装位置。
点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它安装ObjectARX向导和托管项目模板一旦ObjectARX SDK被安装,请使用默认目录c:\ObjectARX <Release>浏览它的安装文件夹。
AutoCAD二次开发的方法与实例
AutoCAD二次开发的方法与实例AutoCAD是一款广泛应用的CAD软件,具有二次开发的能力。
AutoCAD二次开发是将AutoCAD的API和开发工具与其他软件的API和工具结合使用,并将AutoCAD的功能与其他应用程序的功能集成。
AutoCAD二次开发可以自动化绘制过程,节省时间和人力,提高生产率。
AutoCAD二次开发的方法:1.使用ObjectARX进行自定义编程ObjectARX是一种C ++编程接口,可用于开发自定义应用程序和高级命令。
ObjectARX可以让程序员使用全局变量、类和函数等等。
使用这些概念来创建与AutoCAD交互的自定义应用程序。
ObjectARX还提供了一些命令、选项和工具来帮助程序员将其自定义代码集成到AutoCAD中。
2.使用Visual Basic for Applications (VBA)进行自定义编程VBA是一种广泛使用的面向对象编程语言,是Microsoft Office的一部分。
通过在AutoCAD的VBA编辑器中编写代码,程序员可以创建自定义命令和功能,以满足其特定的绘图需求。
VBA还提供了一些内置函数和对象,使编程更加简单和直观。
3.使用.NET Framework进行自定义编程使用.NET Framework,程序员可以使用多种编程语言(如C#、、F#等)来编写与AutoCAD交互的应用程序。
通过将.NET程序集嵌入到AutoCAD中,程序员可以创建自定义工具栏、菜单和命令。
.NET Framework还提供了大量的功能和类库,使得开发更加高效和简单。
AutoCAD二次开发的实例:1. 使用VBA实现批量修改AutoCAD文件名Sub BatchRename()Dim sDir As StringDim sOldName As StringDim sNewName As StringDim sMessage As StringsDir = InputBox(\。
基于VBA的AutoCAD二次开发及其应用(1)
具体代码如下: Sub CalculateDefinedArea( ) Dim n As Long n=ThisDrawing.ModelSpace.Count Dim pt As Variant pt=ThisDrawing.Utility.GetPoin(t , "assain the inword point") ThisDrawing.SendCommand "hpbound" & vbCr & 0 & vbCr ThisDrawing.SendCommand "- boundary" & vbCr & p(t 0) & ", " & pt ( 1) & vbCr & vbCr Dim objpoly As AcadRegion If ThisDrawing.ModelSpace.Count > n Then Set objpoly=ThisDrawing.ModelSpace.Item( ThisDrawing.ModelSpace. Count- 1) MsgBox "所选图形的面积为: " & objpoly.Area objpoly.Delete Else MsgBox "没有找到封闭的图形! " End If End Sub 4 VBA 程序的发布
在保存好菜单文件后, 用户可以通过选择“工具”“| 自 定义”“| 菜单”来加载用户自定义的菜单。本文所加载的菜 单如图 1 所示。
首先点击该菜单, 然后在所要计算的任意闭合图形
的内部单击鼠标即可弹出如图 2 所示显示面积的对话
框。图 2 是计算的长半轴为 10, 短半轴为 5 的椭圆的面
AutoCAD二次开发教程
第 1章 Hello World: 工程的创建在这一章中,我们将不使用ObjectARX向导来创建一个新的工程。
我们将使用Visual Studio .NET来创建一个新的类库工程。
通过这个工程,你可以创建一个能被AutoCAD装载的.NET dll文件。
这个dll文件会向AutoCAD加入一个名为“HelloWorld”的新命令。
当用户运行这个命令后,在AutoCAD 命令行上将显示“Hello World”文本。
1) 启动Visual ,选择”文件>新建>工程”(File> New> Project)。
在新建工程对话框中选择工程类型为”Visual Basic 工程”,然后选择”类库”模板,在工程名字框中输入”Lab1”,然后选择工程存放的位置。
点击确定按钮来创建工程。
2) 在工程的Class1.vb文件中,一个公有类“Class1”已经被系统自动创建了。
接下来向这个类加入命令。
要加入命令,你必须使用AutoCAD .NET托管封装类。
这些托管封装类包含在两个托管模块中。
要加入对这两个托管模块的引用,请用鼠标右键单击”引用”然后选择”添加引用”。
在弹出的”添加引用”对话框中选择”浏览”。
在”选择组件”对话框中,选择AutoCAD 2006的安装目录(这里假定为C:\Program Files\AutoCAD 2006\),在这个目录下找到“acdbmgd.dll”然后选择并打开它。
再一次选择”浏览”,在AutoCAD 2006的安装目录下找到“acmgd.dll”并打开它。
当这两个组件被加入后,请单击”添加引用” 对话框中的”确定”按钮。
正如它们的名字所表示的,acdbmgd.dll包含ObjectDBX托管类,而acmgd.dll包含AutoCAD托管类。
3) 使用对象浏览器(Visual 的”查看>其它窗口>对象浏览器”菜单项)来浏览加入的两个托管模块所提供的类。
《AutoCAD二次开发技术》实验指导书
《AutoCAD二次开发》实验指导书环境与建筑工程学院测绘教研室实验1 Visual Lisp开发环境的认识和程序运行方法【实验目的】1.熟悉所用计算机系统的基本操作方法。
2.学习Visual Lisp的使用方法,掌握程序编辑、编译、打包、运行及查看运行结果的方法。
3.掌握Visual Lisp程序的基本结构。
【实验内容】1.熟悉使用的计算机系统的基本操作,创建自己的工作目录,参照附录中介绍的方法,掌握Visual Lisp的启动方法(一种或多种),了解AutoCAD系统的安装路径和结构。
2.进入Visual Lisp的工作环境,熟悉Visual LISP 用户界面。
3.熟悉Visual Lisp的系统菜单组成及功能。
学习使用功能键和快捷键调用菜单项的方法。
掌握文件建立、编辑、修改和保存的方法。
落实文件的存储位置是否是你的工作目录,如果不是,回第二步重新设置。
4.了解控制台窗口5.了解Visual LISP 文本编辑器6.加载和运行AutoLISP 程序7.退出Visual LISP实验2 Visual Lisp应用程序【实验目的】1.掌握Visual Lisp语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间赋值的规律。
3.学习Visual Lisp语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学表达式的程序表示方法。
5.进一步熟悉Visual Lisp程序的编辑、编译、连接和运行的过程。
【实验内容】1.掌握用Visual LISP 开发程序步骤2.使用控制台窗口3.使用文本编辑器4.使用控制台和编辑器的编码辅助工具5.用Visual LISP 设置代码格式6.检查语法错误7.通过样例学习调试程序8.使用Visual LISP 调试功能9.使用Visual LISP 数据查看工具10.编译和链接程序11.创建应用程序模块样例程序:(defun yinyang (/ origin radius i-radius half-r origin-x origin-y os) (setq os (getvar "OSMODE")) ;; Save OSNAP mode(setvar "OSMODE" 0) ;; Turn off OSNAP(setq origin (getpoint "\nOrigin of inyn sign: "))(setq radius (getdist "\nRadius of inyn sign: " origin))(setq i-radius (getdist "\nRadius of internal circle: "origin))(if (> i-radius radius) (setq i-radius (/ radius 4)))(setq half-r (/ radius 2))(setq origin-x (car origin))(setq origin-y (cadr origin))(command "_.CIRCLE" origin radius)(command "_.ARC""_C"(list origin-x (+ origin-y half-r)) ;;center(list origin-x (+ origin-y radius)) ;;start pointorigin ;;end point)(command "_.ARC""_C"(list origin-x (- origin-y half-r)) ;;center(list origin-x (- origin-y radius)) ;;start pointorigin ;;end point)(command "_.CIRCLE"(list origin-x (+ origin-y half-r));;centrei-radius)(command "_.CIRCLE"(list origin-x (- origin-y half-r));;centrei-radius)(setvar "OSMODE" os) ;; Restore OSNAP mode(princ))实验3 Visual Lisp程序设计【实验目的】1.熟练掌握AutoLISP 表达式。
利用C#进行AutoCAD的二次开发
利用C#进行AutoCAD的二次开发(一)转自明经通道众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp。
但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++,而这门语言非常的难学;VBA和VLisp虽然简单易上手,但它们对于开发大型的程序好象无能为力。
那究竟有没有一种语言能结合它们的优点而尽量避免它们的缺点呢? 回答是肯定的,那就是微软新推出的21世纪编程语言C#。
关于C#的详细介绍,大家可以参考有关的文章。
C#是通过AutoCAD ActiveX 这座桥梁来和AutoCAD之间进行通讯的。
AutoCAD ActiveX 使用户能够从AutoCAD 的内部或外部以编程方式来操作AutoCAD。
它是通过将AutoCAD 对象显示到“外部世界”来做到这一点的。
一旦这些对象被显示,许多不同的编程语言和环境就可以访问它们。
关于AutoCAD ActiveX 的情况,大家可以参考AutoCAD自带的帮助。
呵呵,说了这么多无聊的,还是让我们通过一个具体的例子来说明怎样利用C#进行AutoCAD的二次开发吧。
在介绍例子之前先讲一下有关的配置:(1)Visual Studio .net (2003和2002都可以,我用的是2002)(2)AutoCAD2000以上版本(我用的是2004)这个例子非常简单,就是通过C#建立的窗体来启动AutoCAD并画一条直线。
下面是编程的具体步骤:(1)通过Visual Studio .net 建立一C#的windows应用程序。
(2)在“解决方案资源管理器”中右击“引用”标签,在弹出的菜单中选择“添加引用”,在“添加引用”对话框中选择“com"选项卡下的下拉列表框中的“AutoCAD 2004 Type Library"项(注意:不同版本的CAD的数字不同),单击右边的“选择”按钮,最后单击下面的“确定”按钮。
CAD二次开发课第一次上机内容
CAD二次开发课上机内容一、组合体模型绘图联系绘制下图所示的组合体模型绘图步骤:1、建立组合体图层,设置其颜色属性并置为当前图层。
2、先绘制一四边形:使用直线命令,第一点100,100;第二点@220,0;第三点@-60,150;第四点@-160,0;最后输入c回车绘出封闭的四边形,并结束直线命令。
3、绘制圆并修剪为半圆以上述四边形右下角点为圆心,75为半径绘圆,将下半部分修剪掉。
4、移动坐标系到左下角点,使用ucs命令。
5、在当前坐标系下,将半圆沿z轴移动35,使用move命令和相当坐标法(@0,0,35)。
6、对四边形和半圆分别生成面域,并切换视图到西南等轴侧视图。
7、分别拉伸生成实体,四边形拉伸高度-130,半圆拉伸高度-200。
8、在四边形的左侧面建立一个矩形,并拉伸生成实体。
使用矩形命令对角点坐标为:@20,60,0;@120,60,拉伸高度-130。
9、使用ucs命令,将ucs的xoy平面切换到四边形上底面。
10、在四边形上底面建立一个正多边形,使用polygon命令,建立6边形,中心点坐标@80,65,0内接于圆,半径45。
11、使用拉伸命名拉伸该多边形成实体。
12、使用布尔运算的并运算将四边形构成的长方体和半圆构成的半圆柱体合并为一个整体对象。
13、使用布尔运算的差运算将该实体和上述使用矩形生成的长方体及正多边形生成的柱体进行差集运行得到如图所示的组合体。
14、对图形进行消隐、真实感和渲染等操作观察图形或动态观察图形。
二、三维台阶绘制如图所示的三维台阶,绘图步骤如下;1、使用中心缩放功能使图形在以100,50为中心,长度75为半径的区域内显示。
2、绘制一个矩形对角点坐标为:0,0和2000,2000。
使用zoom命令的all选项使图形全部显示在绘图区域内。
3、使用三轴架法设置视点坐标:1,-3,1。
操作方法:单击“视图”菜单下的“视点...”选项,在命令行输入坐标值1,-3,1即可执行三轴架视点设置功能,即将视点设置到左上方。
用Autolisp对AutoCAD进行二次开发
用AutoLISP对AutoCAD进行二次开发一、什么是CAD的二次开发?(为什么需要对CAD进行二次开发)我们在设计、绘图时采用AutoCAD、ProE、Solidwork、UG等设计软件,在复杂问题或特殊用途的设计中,各种软件的原有功能往往难以解决问题,例如CAD里没有直接绘制正弦曲线和抛物线等曲线的命令。
因此,只是会使用各软件的基本功能是不够的,根据我们的特殊用途进行软件的用户化定制和二次开发,往往能够大大提高工作效率和技术水平。
二、什么是AutoLisp?如何用其进行二次开发?AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。
通过autolisp 编程,可以节省工程师很多时间。
AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。
当前AutoCAD的二次开发工具主要有:VisualLisp(它是AutoLisp的集成开发环境)、VBA、ObjectARX和.NET API等,这里只介绍AutoLisp。
下面由浅入深地介绍一下如何应用AutolLisp进行二次开发。
最简单的应用是在命令行中编写和执行lisp语句,进行简单的计算、绘图、查询等操作。
稍复杂些的就要把语句(代码)放到扩展名为lsp的文件中,用的时候先加载到CAD中,然后输入自定义的函数名执行。
当开发的程序越来越多,就需要进行有效的管理,使我们能方便的找到和应用这些程序。
到那个程度的时候就需要用到用户自定义的工具按钮、菜单和对话框了。
图1 根据程序数量选择二次开发形式(1)在命令行中编写和执行程序例1:(+ 2 3)例2:(setq a 2)(setq b 3)(+ a b)例3:(setq a 2)(setq b 3)(+ a b)例4:(setq p1 (list 0 0))(setq p2 (list 200 200))(command “line” p1 p2 “”) ;;语句之间不空格例5:(setq p1 (list 0 0)) (setq p2 (list 200 200)) (command “line” p1 p2 “”) ;;语句之间空格;; 表示语句(程序代码)的注释第一步:在文本中编写和保存AutoLISP程序,文件扩展名为.lsp(defun c:sin(/ lp lpx lpy N x step) ;; c:和自定义函数名sin之间不能有空格(initget 1)(setq lp (getpoint "\n Left point:")lpx (car lp) lpy (cadr lp))(initget 7)(setq N (getint "\Nnumber of cyles:"))(setq x 0 step 0.02)(command "pline" )(While (< x (* 2 N pi))(command (list (+ (car lp) x)(+ (cadr lp)(sin x))))(setq x (+ x step)))(command "line" lp (list (+ lpx (* 2 N pi)) lpy) "")(command "line" lp (list lpx (+ lpy 2))(list lpx (- lpy 2)) "") ;;注意这里用的是空的双引号“”,中间不空格(command))第二步:AutoLISP程序的加载和运行在命令行中输入appload(或ap),在弹出的“加载/卸载应用程序”对话框中选择第一步保存的*.lsp 文件。
autocad的二次开发
autocad的二次开发(1)编写各种用户自定义函数并形成假设干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。
(3)在系统的ACAD、LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
(4)通过系统对话框设置某些路径。
这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。
为此笔者用VC++开发了一套自动安装程序,使原本需要【五】六分钟的人工操作在十几秒内即可自动完成。
【一】基本思路整个安装程序遵循以下思路:1〕首先获得所在机器AutoCAD2000系统的安装路径;2〕寻找菜单文件AutoCAD2000\\support\\acaD、mnu,打开文件并将要添加的内容加至末尾;3〕寻找LISP文件AutoCAD2000\\support\\acad2000doC、lsp,打开文件并将要添加的内容加至末尾;4〕创建一个预先命名的子目录,将所有二次开发形成的各类文件拷入;5〕给出信息框,告知安装成功,如有问题那么告知安装失败。
需要指出的是,在添入acad2000doC、lsp的内容中须有如下语句:〔command“_menu”〔strcat〔getvar”menuname”〕”、mnu”〕〕,目的是为了强制执行菜单文件装入命令,将改动后的acaD、mnu文件编译后装入。
另外,在添入acad2000doC、lsp的内容中还有一赋值语句,将准备创建的包含所有二次开发生成文件的子目录全路径名赋予一全局变量,以供二次开发程序在需要时调用,从而避免了在AutoCAD环境下交互设定路径的麻烦。
基于C#的AutoCad二次开发--第一章--环境搭建及几种二开模式
基于C#的AutoCad⼆次开发--第⼀章--环境搭建及⼏种⼆开模式Autocad的开发形式包括visual lisp、objectarx、vba、.Net等等,其中基于.Net平台的C#语⾔学习曲线较为平缓,使⽤该语⾔进⾏AutoCad 的⼆次开发效率较⾼。
本⽂主要记录了使⽤C#进⾏AutoCad⼆次开发的环境搭建和⼏种⼆次开发的模式。
学习资料:1. Autocad .Net开发指南(中⽂版),此为欧特克公司提供的官⽅⽂档;2. AutoCad官⽹,在开发⼈员板块可以查阅官⽅提供的各种类库;3. b站的AutoCad_C#⼆开视屏,链接如下:4. 百度,google......软件配置:Autocad2014 + objectarx2014 + AutoCAD_2014_dotnet_wizards + vs2013;注:此配置不是唯⼀的,因为.NET框架可向下兼容;第⼀节:搭建环境1.1 创建项⽬在vs中创建⼀个类库项⽬,适⽤于.dll和对话框应⽤程序的开发。
1.2 引⽤类库从objectarx2014中引⼊下图所⽰类库,并且对于所有类库,右击->属性->复制到本地->false;1.3 框架及⽬标平台做完上述操作,建议先不要动项⽬的框架及⽬标平台(右击->项⽬->应⽤程序or⽣成),如果编译出问题,再调整这两项,即注意:平台要与Autocad相匹配:是x64 or x32;框架也要相匹配,看是否和当前Autocad版本相兼容。
第⼆节:代码编写在正式写代码之前,需要了解你想做哪种形式的Cad⼆次开发,如:.dll; Ribbon;对话框应⽤程序等等。
不同形式的开发,其代码编写也有所不同。
2.1 载⼊动态链接库(.dll)这应该是较为常⽤的,且⽐较简单快捷的⼀种开发形式。
可以⽤其来编写⼀些⼩的功能,类似于在Cad下⽅的编辑框中输⼊⼀些命令(Command)。
具体开发如下:在public class xxx下⽅编写:[Command("xxx")] //可以理解为:当写完代码并加载⾄cad后,在编译框键⼊命令xxx,从⽽执⾏操作。
CAD二次开发技术一二课案
每整一数个、变实量都数要、消符耗号少、量内字存符,串故在当A变u量to值L不IS再P语有用言时中重称复为使 用原变子量。名原或子将变包量括设:置数成字nil原是良子好、的符程号序原设计子习和惯串。原子。
其值保持不变的变量称为常量,如:Pi
第11页/共37页
ASCII码文本编辑器(如记事本)来进行编辑。编辑后 以扩展名为“.lsp”进行保存。
使用Visual LISP编程环境:打开AutoCAD2000及以 上版本,点击“工具”菜单下AutoLISP(S)菜单项中 的Visual LISP编辑器(V),进入Visual LISP编程环 境 程序运行:
加:(+ <数1> <数2 > …) 减:(- <数1> <数2 > …) 乘:(* <数1> <数2 > …) 除:(/ <数1> <数2 > …)
注意防止除数为零,如:(/ 25 (/ 4 9))
求最大数:(max <数1> <数2 > …) 求最小数:(min <数1> <数2 > …) 求平方根:(sqrt <数> ) 求幂次方:(expt <数> ) 求绝对值:可以占多行,一行也可以写多个表;
AutoLISP用“;”作注释;
AutoLISP是以扩展名为“.lsp”的ASCII码文本文件的
形式存储。
第15页/共37页
§1.4 AutoLISP语言概述
四、编辑和运行AutoLISP的程序
程序编辑: AutoLISP程序是纯文本文件,可以用任意一种
AutoCAD二次开发 (1)
一.AutoLISP的程序结构1.程序结构(函数参数……)如:(setq x 25.0)(setq y 12.2)( + (* x y) x )AutoLISP程序由一个或一系列按顺序排列的标准表组成。
2. AutoLISP书写格式的特点:(1)左右括号匹配;(2)从左到右读程序;(3)函数放在第一个元素的位置;(4)一表可占多行,一行可写多表;(5)用分号“;”作注释;二.AutoLISP的变量与类型1.整形常量Int整数由数字组成,不包含小数点。
AutoLISP 的整数是32 位带符号的数,取值范围从+2,147,483,647 到-2,147,483,6482.实数常量Real实数是带有小数点的数。
以双精度浮点格式存储的,可以提供至少14 位精度。
可以用科学记数法表示。
如数字 3.1、0.23、-56.123 和21,000,000.0 都是有效的AutoLISP 实数3.字符串常量Str字符串是在双引号中的一组字符。
如“string 1”和“\nEnter first point:”都是有效的字符串。
4. 表ListAutoLISP 的表是在括号中以空格分隔的一组相关值。
表提供了一种存储大量相关值的有效方法。
AutoCAD 将三维点表示为三个实数组成的表。
(1.0 1.0 0.0)、("this" "that" "the other") 和(1 "ONE") 都是有效的表5. 其它Sym(符号和变量),Select(选择集),Entity(实体名),filepointer(文件描述符),VLA对像(Visual LISP ActiveX)。
三.数值函数1.计算函数(1)+、-、*、/AutoLISP 中,所有运算符号均采用前缀方式。
一般格式为:(运算符数字数字……)。
(+ a b);(- a b);(* a b);(/ a b);如:(* a b c)即为a*b*c(+ a (- b (* c d)))即为a+(b-c*d)command:(+ 4.7 2) 6.7command:(/ 8 5) 1command:(* 2 5 6)60(2)最大数,最小数(max num1 num2 ……)(min num1 num2 ……)如:command:(max 4.7 2) 4.7command:(min 3.2 -1)-1(3)平方根,绝对值平方根:(sqrt num)绝对值:(abs num)如:command:(sqrt 4) 2command:(abs -1) 1(4)三角函数反正切(atan a)或(atan a1 a2)正弦(sin angle);余弦(cos angle);注:angle用弧度制如:command:(atan 1.5)0.982794a=a1/a2command:(atan 3.0 2.0)0.982794command:(sin 1)0.841471command:(cos pi)1.02.逻辑运算(and a b );(or a b ); (not a );-----其中a,b为逻辑表达式。
CADCAM软件二次开发实验教案
实验一菜单及工具条制作(2学时)一、实验内容1.制作下图所示的标准件菜单;2.将上述菜单的第三级按钮制作成三个工具栏。
工具条按钮如下:二、实验目的1.掌握UG软件中菜单的创建,可以根据需要建立相应的菜单条;2.掌握UG软件中工具栏的创建,可以根据需要建立相应的工具栏。
三、实验器材计算机1台,UG程序1套。
四、实验原理根据UG中菜单及工具栏制作的方法进行菜单及工具栏制作。
五、实验步骤(详细撰写)1.写出菜单文件;2.写出工具栏文件;3.写出UG系统文件的设置方法。
六、实验过程1.在环境变量中添加,路径可以不同2.建立文件夹C:\TEST\STARTUP,路径可以不同3.菜单文件VERSION 120EDIT UG_GATEWAY_MAIN_MENUBARBEFORE UG_HELPCASCADE_BUTTON UG_M1LABEL 标准件END_OF_BEFOREMENU UG_M1CASCADE_BUTTON UG_M1_1LABEL 螺钉CASCADE_BUTTON UG_M1_2LABEL 轴承CASCADE_BUTTON UG_M1_3LABEL 螺母END_OF_MENUMENU UG_M1_1BUTTON UG_M1_1_1LABEL 圆柱头螺钉BUTTON UG_M1_1_2LABEL 紧定螺钉BUTTON UG_M1_1_3LABEL 十字槽螺钉END_OF_MENUMENU UG_M1_2BUTTON UG_M1_2_1LABEL 向心球轴承BUTTON UG_M1_2_2LABEL 圆柱滚子轴承BUTTON UG_M1_2_3LABEL 推力球轴承END_OF_MENUMENU UG_M1_3BUTTON UG_M1_3_1LABEL 六角螺母BUTTON UG_M1_3_2LABEL 六角锁紧螺母BUTTON UG_M1_3_3LABEL 圆螺母4.END_OF_MENU工具栏文件1)螺钉工具栏文件TITLE 螺钉VERSION 170BUTTON ld1LABEL 圆柱头螺钉BITMAP ld1.bmpACTION ld1.grx SEPARATORBUTTON ld2LABEL 紧定螺钉BITMAP ld2.bmpACTION ld2.grx SEPARATORBUTTON ld3LABEL 十字槽螺钉BITMAP ld3.bmpACTION ld3.grx2)螺母工具栏文件TITLE 螺母VERSION 170BUTTON lm1LABEL 六角螺母BITMAP ld1.bmp ACTION ld1.grx SEPARATORBUTTON lm2LABEL 六角锁紧螺母BITMAP ld2.bmp ACTION ld2.grx SEPARATORBUTTON lm3LABEL 圆螺母BITMAP ld3.bmp ACTION ld3.grx3)轴承工具栏文件TITLE 轴承VERSION 170BUTTON zc1LABEL 向心球轴承BITMAP ld1.bmpACTION ld1.grx SEPARATORBUTTON zc2LABEL 圆柱滚子轴承BITMAP ld2.bmpACTION ld2.grx SEPARATORBUTTON zc3LABEL 推力球轴承BITMAP ld3.bmpACTION ld3.grx实验二GRIP入门(2学时)一、实验内容1、利用GRIP开发工具编写一个简单GRIP程序:编写一个在建模状态下生产一个长方体的GRIP程序;2、利用GRIP工具进行程序编译、链接;3、在UG环境中进行程序的运行调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 ObjectARX .NET托管开发包的使用
一,主要内容
1、下载安装ObjectARX .NET托管开发包
2、创建AutoCAD命令
3、创建自定义用户菜单
4、创建自定义用户工具条
5、创建用户自定义窗体
二,主要步骤
1,下载安装ObjectARX
不同的ACAD版本用不同的开发包及开发环境
ACAD2000~ACAD2002 : VC++ 6.0
ACAD2004~ACAD2006 : 2002
ACAD2007~ACAD2009 : 2005
ACAD2010~ACAD2011 : 2008
ACAD2012~ : 2010
下载ObjectARX
在打开打开默认网页浏览器并浏览网站. 的网页上,点击License & Download(许可&下载). 填写必填字段并选择ObjectARX for AutoCAD 2012. 点击Submit(提交)按扭. 在下载页, 点击Download Now(现在下载)使用下载管理器或点击Standard Download Method(标准下载方法)使用你的网页浏览器的默认下载方法下载.
点击Save(保存)或用于保存文件到你的本地驱动器的选项。
指定下载ObjectARX SDK安装包文件存放的位置。
一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX <释放>对话框中, 指定一个新的安装位置或接受默认的安装位置。
点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它
安装ObjectARX向导和托管项目模板
一旦 ObjectARX SDK被安装,请使用默认目录c:\ObjectARX <Release>浏览它的安装文件夹。
(1)AtuoCAD的类库都在此库。
2,Hello World程序创建
1)在 2012中建项目HelloWorld
采用.NET托管API
→从“项目类型”列表中选择第二个“Visual C#”,从模板中选择“类库”,输入项目名称“HelloWorld”
→.单击“确定”按钮
如果弹出如下对话框说明没安装正确,可以手动加载托管DLL
→从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll
→使用.NET对象浏览器查看
AcMgd.dll--AutoCAD .NET托管类
AcDbMgd.dll– ObjectDBX .NET托管类
→完整程序如下
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;
namespace HelloWord
{
public class Hello_Sample
{
[CommandMethod("Hello")]
public void Hello()
{
Editor ed =
Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("欢迎进入.NET的开发的世界---火艇制作"); }
}
}
→编译,并在AutoCAD加载DLL,使用Netload命令加载
→
→输入命令“Hello”,查看运行结果。