资源描述
(defun c:jkxcl() (setq os(getvar osmode) (setvar osmode 0) (setq m(getreal输入模数:M=) z(getint输入齿数:Z=) h(getreal输入齿轮宽度:H=) zj(getreal输入齿轮轴径:ZJ=) lf(getreal输入轮辐厚度(无轮辐结构时输入齿轮宽度):LF=) ) (if ( h lf) (progn (setq gr(getreal输入轮毂端面半径:gr=) (setq yr(getreal输入轮缘端面半径:yr=) (setq s(/ (- h lf) 2) (setq l(- h s) ) ) (setq rf(/ (* (- z 2.5) m) 2) rj(/ (* m z 0.939693) 2) r (/ (* z m) 2) ra(/ (* (+ z 2) m) 2) tt(* m pi) pj(/ 36.0 z) a (/ (* 1.25 m) (cos (* 20 (/ pi 180) pt0(list 200.0 30.0 0.0) pt1(polar pt0 0 (/ tt 4) pt2(polar pt0 pi (/ tt 4) pt3(polar pt1 (* 110 (/ pi 180) a) pt5(polar pt1 (* -70 (/ pi 180) a) pt4(polar pt2 (* 70 (/ pi 180) a) pt6(polar pt2 (* 250 (/ pi 180) a) pt7(polar pt6 (* -90 (/ pi 180) 2) ) (command layer m 11 c 1 layer m 12 c 2 layer m 13 c 252 layer s 13 pline pt7 pt6 pt4 pt3 pt5 ) (setq i 1) (while (= i 7) (setq pt6(polar pt6 0 tt) pt4(polar pt4 0 tt) pt3(polar pt3 0 tt) pt5(polar pt5 0 tt) ) (command pt6 pt4 pt3 pt5) (setq i(+ i 1) ) (setq pt8(polar pt5 (* -90 (/ pi 180) 2) (command pt8 c) (setq pt(polar pt0 (* 180 (/ pi 180) (* 4 tt) (command move l pt0 pt) (setq e0(entlast) (command layer s 11 ) (setq p0(polar pt0 (* 90 (/ pi 180) r) (command circle p0 ra) (command region l ) (setq e10 (entlast) (command layer s 12 ) (setq j 1) (while (= j z) (setq i 1) (while (= i 10) (command rotate e10 p0 pj) (setq yd(* r pj (/ pi 180) i) (setq pt(polar pt0 0 yd) (command copy e0 pt0 pt) (command region l ) (setq e1(entlast) (command subtract e10 e1 ) (setq i (+ i 1) ) (setq j(+ j 1) ) 基于SolidWorks开发标准件库 下面通过介绍SldWorks标准件库这个软件的开发和应用过程,来具体说明利用VB作为开发工具,通过调用SolidWorks API函数,来二次开发SolidWorks的方法.1.VB开发SolidWorks标准件库的过程该标准件库软件能够在SolidWorks中实现标准件3D造型的的参数化自动绘制,涵盖的标准件类型齐全,具体包括:轴承类标准件,螺纹联结标准件,销键联结标准件,联轴器类标准件五大部分.下面按上述原理方法简要介绍一下该系统的主要开发过程.1.1 建立实体模型 查阅(软件版)R2.0,首先:分析要建立实体的结构,使所建立的特征尽可能的简单,参数尺寸尽可能少,再次:运行SolidWorks开始宏录制命令并创建一个深沟球轴承标准件,创建完毕后结束宏的录制,将宏保存起来.最后:在宏代码中找到定义实体模型的尺寸值,用对应的参数变量代替宏文件中的关键数据. 以深沟球轴承为例,通过简化,建立深沟球轴承模型需要如图3中草图1和草图2的14个关键点,共计12个坐标变量,而这12个变量都能由轴承的7个主要尺寸参数通过计算得出,这7个主要尺寸参数分别为:轴承的内径,外径,宽度,内圈外径和圆角大小.轴承的主要尺寸参数值可以根据轴承型号从数据库表中直接调用.1.2 建立标准件数据库 利用VB调用SolidWorks API函数来创建标准件库需要标准件的一系列数据,本文利用VB默认的数据库Microsoft Access为每一种标准件建立数据库,图4所示为深沟球轴承的尺寸数据库及其表单的创建.数据库建成后,在应用程序中把数据控件Data与指定的数据表链接起来,并把主要尺寸参数的TextBox和数据库中对应字段绑定. 1.3建立用户界面 本标准件库的程序界面是由主界面和各类标准件子界面构成,主界面简洁明了如图5,只由frame与命令按钮构成,按各类标准件按钮就能够进入相应的子界面进行标准件绘制.各类子界面主要由SSTab,TextBox,命令按钮,图片框与Data控件组成,尺寸框架中可以显示标准件的主要尺寸参数,并提供按型号查找功能,在图片框中显示用户选择标准件的示意图.子界面具体设计形式及能完成功能. 1.4主要代码及注释由于程序代码较长,下面按用到的先后顺序简要介绍一下程序中的主要定义及命令:-Solidworks宏程序变量描述-Public swApp As Object 声明应用程序对象Public Part As Object 声明零件对象Public boolstatus As Boolean 声明布尔变量Public longstatus As Long, longwarnings As Long 变量为长整型Public Feature As Object 定义特征对象-主要命令代码注释-Set swApp = CreateObject(SldWorks.Application)创建一个应用程序Set Part = swApp.Newpart 打开一个新实体文件Set Part = swApp.ActiveDoc 激活当前实体文件boolstatus = Part.Extension.SelectByID(前视, PLANE, 0, 0, 0, False, 0, Nothing) 选择前视基准面为草图平面Part.InsertSketch2 True 插入草图Part.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd ).Construct_ionGeometry = True 画中心线Part.ViewZoomtofit2 整屏显示全图Part.ClearSelection 清除选择Part.CreateArcVB(p1x,py,p1z,p2x,p2y,p2z,p3x,p3y,p3z,dir) 以p1为圆心,从p2到p3生成圆弧Part.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd) 两点画直线boolstatus = Part.Extension.SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout, SelectOption) 选择操作对象Part.SketchMirror 镜像所选对象Part.FeatureManager.FeatureRevolve(angle,reverseDir,angle2,revType,options, merge, useFeatScope, useAutoSel) 生成旋转特征Part.ShowNamedView2 vName, viewId X视图显示Part.CreatePlaneAtOffset3 val, flipDir, autoSize 插入基准面Part.InsertAxis2 True 插入基准轴Part.BlankRefGeom 隐藏所选参考几何体swApp.ExitApp 退出sldworks应用程序2.程序的应用方法为使用户更方便的使用做好的标准件库软件,我们可以将VB中建立的工程文件” standard library for sw.vbp”编译生成” standard library for sw.exe”文件,这样在打开SolidWorks后直接点击此exe文件,就可以根据需要来绘制标准件3D模型了.上述直接运行exe文件来使用标准件库的方法,只能局限于安装了VB的计算机上,为了让没有安装VB的用户也能方便的使用该标准件库软件,我们可以用Visual Studio自带的打包工具Package and Deployment Wizard将标准件库制作成标准安装程序,打包过程中要注意包含文件步骤,一定要确认包含文件的完整性,程序使用的图标,图片,第三方控件所带的文件一定要带上,否则可能导致安装后的程序运行出错. 3.结束语 本文通过介绍标准件库的应用程序,说明了利用VB调用SolidWorks API函数对SolidWorks二次开发的一般方法,读者可以采用该方法建立适合自己需要的,专用的SolidWorks功能模块,继续对SolidWorks二次开发进行深入研究与探索. (插图无法上传,见谅!) 本文摘选自我的一篇学术论文,原文见 山东机械杂志 2006.5月3期。
展开阅读全文