2019年最新-第4章 有关Visual LISP的基本操作 清华CAD二次开发 LIS....ppt-精品文档-精选文档
- 格式:ppt
- 大小:2.90 MB
- 文档页数:21
VL基本几何建模操作这里通过对一个简单模型的建立来介绍几种CAD建模方法,具体模型如下:一、启动b打开VL,选择Start->Motion Mechanism Design,进入多体仿真模块的机构设计平台,同时新建一个分析模型文件。
1.单位设置●从主菜单选择option,弹出如下对话框;●在左边树形结构上选择General → Parameters & Measure分支,右边选择units选项卡。
在单位选择列表里选中Length,然后从下方的下拉菜单中选择要设置的单位类型,如Centimeter (cm)。
二、创建滑轮体2.创建一个新的构件,同时创建与该构件对应的零件●创建一个新的构件。
在机构设计平台中,点击Body From a NewPart 图标打开构件定义对话框;●在Name选框中填入Pulley;●选中Product Node选框,这是Product Node中为显示为NoSelection。
在特征树上选择Product1_ROOT分支,点击OK,关闭对话框。
此时滑轮体的名字Pulley将出现在特征树中。
在Product Node和Bodies下都有一个名为Pulley的子分支。
2.草图绘制●双击Product1_ROOT → Pulley (Pulley.1)下的Partbody分支,切换到Pulley的零件设计平台;●单击特征树上yz plane分支,在设计平台上单击草绘(Sketcher)图标。
视图自动进入草图平面。
调整屏幕到适当大小。
●点击屏幕右侧草绘设计平台中的长方形(Rectangle)按钮,确定左上角坐标(-5,15),右下角坐标(5,0),建立长方形。
●点击退出草绘(Exit Workbench)图标,退出草绘设计平台,VL界面自动切换到Pulley的零件设计平台。
3.创建滑轮几何体●单击特征树上+号,展开Pulley → PartBody分支,单击选定刚刚建立的Sketch.1。
基于Visual LISP语言的AUTOCAD参数化设计摘要本系统是以模块化设计和参数化设计为指导思想,以Visual LISP为编程语言和开发工具,对AutoCAD软件进行的二次开发。
研制出了界面友好的标准件图库系统和标准图幅调用系统,实现了设置绘图环境的自动化和绘制标准滚动轴承,从而提高绘图的质量和效率。
本文介绍了构建此系统所用到的CAD二次开发的主要方法和关键技术,包括CAD的Visual LISP集成开发技术,Visual BASIC对话框设计,Visual LISP 与VBA的交互式编程技术。
用户通过人机交互界面设置滚动轴承的关键参数,系统自动计算出绘制图块所需要的各点的坐标,调用绘图程序进行绘图;通过标准图幅调用系统,用户可以在交互界面设置所需要的图纸类型,绘图比例,系统将参数传输给调用模型,调用事先绘制好的标准图幅块并设置全局性比例,然后按1:1打印即可完成打印出图。
系统优点:标准图幅库是可编辑的,可以在AutoCAD环境下设置,使其符合企业的特殊要求;滚动轴承参数化模型完全按照国标要求编制,尺寸系列摘自国标不需要用户再查手册,也可以自定义。
关键词:Visual LISP;参数化绘图;二次开发;VBA;交互式编程;标准图幅;标准件库;滚动轴承参数化模型基于VisualLISP语言的AutoCAD参数化设计PARAMETRIC DESIGN AUTOCAD BASEDon Visual LISP LANGUAGEABSTRACTThe system is based on modular design and parametric design as the guiding ideology, as in Visual LISP programming language and development tools for the secondary development of AutoCAD software. Developed a user-friendly standard parts library system and the standard drawing system, which can automatically set the graphics environment and draw the standard rolling bearing, thereby enhancing the quality and efficiency of drawing.This article will describe the main methods and the major key technologies of CAD's secondary development including Visual LISP Integrated Development Technology, Visual BASIC dialog design and Visual LISP and VBA programming interactive. Users only need to enter the key parameters in the human-computer interaction interface, the system will calculate the necessary points coordinates which is needed in drawing and then draw the drawing. Through the drawing system, the user can select the required drawing frame, set the ratio of the drawing in the dialog box, the system automatically draw out the drawing frame and set overall ratio. Then, in accordance with the 1:1 print a drawing to complete the print. System Benefits: Standard Drawing Library is open source, can be set up in the AutoCAD environment, to meet the specific requirements of enterprises; rolling bearing models in full accordance with the requirements of the preparation of GB, GB size range from requiring users to re-check the manual, but also required to custom; procedures for open-source, standard parts library can be filled follow-up.KEYWORDS:Visual LISP;Parametric Drawing;The secondary development;VBA;Standard drawing frame目录1.绪论 (1)1.1课题背景及研究的目的和意义 (1)1.2目前国内外研究进展概述 (2)1.2.1AutoCAD发展趋势 (2)1.2.2CAD二次开发研究热点 (3)1.2.3 本文主要研究内容 (4)2.AUTOCAD二次开发工具 (6)2.1VISUALLISP编程方法 (6)2.1.1VisualLISP语言概要 (6)2.1.2AutoLISP基本函数 (6)2.1.3参数化绘图程序设计技术 (9)2.2VBA编程方法 (10)2.2.1VisualBasic语言概要 (10)2.2.2VBA IDE集成编程环境 (13)2.3VISUALLISP与VBA的交叉编程方法 (14)3.绘图环境的设置 (17)3.1设置图层、文字样式、标注样式 (17)3.1.1创建新图层 (17)3.1.2定义字样 (17)3.1.3 设置尺寸标注 (18)3.2绘制标准图框模板 (20)3.2.1绘制标准图幅 (20)3.2.2设置块属性 (21)3.3VBA制作绘图模板调用窗口及V ISUAL LISP编制调用程序.. 22基于VisualLISP语言的AutoCAD参数化设计3.3.1VBA制作调用窗口 (23)3.3.2Visual LISP编制调用程序 (28)4.VISUALLISP参数化编程 (30)4.1参数化图形的特点及应用 (30)4.2VISUALLISP编制标准滚动轴承参数化模型程序库 (30)4.3VBA编制标准件调用窗口 (34)4.4VBA与VISUALLISP交叉编程应用 (37)5.程序设计综合应用 (39)5.1程序检查和调试中的问题 (39)5.2VBA编程与VISUALLISP编程的数据传递 (40)5.3有关系统变量的应用举例 (42)5.4自定义工具栏应用举例 (43)结论 (46)参考文献 (46)致谢 (47)1.绪论1.1课题背景及研究的目的和意义众所周知,AutoCAD 是目前在Windows95/ 98/ 2000/ NT /XP环境下应用最广泛、使用人数最多的CAD 软件, 以其完善的绘图功能、良好的用户界面、易学易用的特点,受到了广大工程技术人员的普遍欢迎。
《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 表达式。
VISUALLISP学习笔记图层管理 (1)解锁所有图层 (1)解冻所有图层 (1)多义线 (1)修改等高线高层 (1)VISUAL LISP 关于点的命令 (3)图层管理解锁所有图层(defun UnLock_All_Layers ()(vlax-for n (vla-get-layers(vla-get-ActiveDocument (vlax-get-acad-object)))(vla-put-lock n :vlax-false)))解冻所有图层(defun UnFreeze_All_Layers ()(vlax-for n (vla-get-layers(vla-get-ActiveDocument (vlax-get-acad-object)))(if (/= (vla-get-name n) (getvar "clayer"));;也可以用(not (equal (vla-get-activelayer adoc) item))判断(vla-put-Freeze n :vlax-false))))多义线修改等高线高层(defun ggcZ (KZ zhi zhi2 / ss ss4 a en end n) (Setq ss (Ssget));;;返回一个对象(图元)选择集(progn(setq ss4 (sslength ss));;;求选择集的长度(setq n 0)(while (/= ss4 n)(setq en (ssname ss n));;;从选择集中选择第n个对象(setq end (entget en))(setq a (cdr (assoc 0 end)))(if (= a "LWPOL YLINE")(progn(setq end (subst (cons 38 zhi) (assoc 38 end) end)) (entmod end)))(setq n (+ n 1))(if (/= (strcase kz) "A")(SETQ ZHI (+ ZHI ZHI2)))))(princ "\n未选中目标")))(defun c:ggc ()(setq b (getstring "\n单线修改或全修改(A OR S) ")) (IF (= b "")(SETQ b "A"))(if (= b "A")(progn(setq a (getreal "\n高程欲修改成?<0>"))(if a()(setq a 0))(SETQ A2 0))(progn(setq a (getreal "\n起始高程欲修改成?<0>"))(SETQ A2 (getreal "\n高程增量?<5>"))(if a())(if a2()(setq a2 5))))(ggcZ B a a2));;改多义线高程---------------------无痕.2004.1;(chel)(defun chel ()(setq elv (getdist "\n新高程:"))(while (and (princ "\n选则高程多义线(回车退出):")(setq ss (ssget '((0 . "*polyline")))))(setq ssv (vla-get-activeselectionset (vla-get-activedocument(vlax-get-acad-object))))(vlax-for obj ssv(vlax-put obj 'Elevation elv))))VISUAL LISP 关于点的命令1、定义点信息(1)普通定义方式(setq pt' (2.0 3.0 0.0)) ;定义点坐标为(2,3,0),注意此时pt后要加单引号(setq pt (quote(2.0 3.0 0.0)) ;QUOTE函数和'的含义相同(2)参数定义方式如果点坐标为变量参数,则定义方式为(setq pt' (list x y z))例如(setq x 2.0 y 3.0 z 0.0)(setq pt (list x y)) ;注意此时pt后不能加单引号结果pt=(2.0,3.0)LIST函数:将任意数目的表达式组合成一个表,本函数常用于定义二维或三维点变量(由两个或三个实数组成的表)类似命令: APPEND函数:将任意多个表组合成一个表2、点坐标的提取(1)提取点的X坐标 CAR(setq x_val (car pt))(car list) 返回list 中的第一个元素(2)提取点的Y坐标 CADR(setq y_val (cadr pt))(cadr list) 返回list 中的第二个元素(3)提取点的Z坐标 CADDR(caddr list) 返回list 中的第三个元素(4)CAR与CDRAutoCAD允许CAR与CDR多重嵌套(4层),CAR表示提取第1个值,CDR表示删除第1个值。
VisualLISP程序设计第二版课程设计一、课程设计要求本课程设计旨在通过实际编写VisualLISP程序来帮助学生加深对AutoCAD软件的理解和应用,并提高学生的程序设计能力。
具体要求如下:1.完成程序设计,并能在AutoCAD中正常运行;2.编写的程序要能够实现特定的功能,在完成设计任务的同时,将相关AutoCAD基础知识和VisualLISP编程技能相结合;3.认真撰写实验报告,附上程序源代码和程序运行结果。
二、课程设计内容本次课程设计要求学生自行设计一个VisualLISP程序,根据实际应用需求可以自由选题,常见的设计任务包括但不限于以下几类:1. AutoCAD文本批量替换程序设计一个可以替换AutoCAD中所有文本内容的程序,要求实现以下功能:•替换文本内容;•替换文本样式;•替换文本高度;•批量替换操作。
2. AutoCAD图层管理程序设计一个可以管理AutoCAD图层的程序,要求实现以下功能:•创建图层,支持设置图层名称、颜色等属性;•删除图层;•修改图层属性;•可以选择当前图层。
3. AutoCAD画线绘制程序设计一个可以自动绘制AutoCAD画线的程序,要求实现以下功能:•可以选择绘制起点和终点,计算出绘制线段的长度和角度;•可以设置线段的样式、颜色、宽度;•支持绘制多个线段。
4. 其他除以上三个常见的设计任务外,学生可以自由设计适合自己实际需求的其它VisualLISP程序。
三、课程设计实施过程本课程设计建议分为以下步骤来实施:1. 阅读相关教程和文献在开始设计VisualLISP程序之前,建议学生阅读相关的AutoCAD官方教程和VisualLISP编程文献,加深对AutoCAD和VisualLISP编程的理解。
2. 自选设计任务学生可以根据实际需求进行自由选题,根据自己的实际需要选择适合的设计任务。
3. 设计程序根据选定的设计任务,编写VisualLISP程序,注意实现所需功能,确保程序能够正常运行。