2019-UG的二次开发工具-文档资料
- 格式:ppt
- 大小:258.51 KB
- 文档页数:11
第1章二次开发应用初步UG/NX是当今世界上最先进和高度集成的、面向制造行业的CAD/CAE/CAM软件系统,可用于产品的整个开发过程,包括产品概念设计、建模、分析和加工。
UG/NX以其强大的设计和加工功能而著称,可以支持目前市场上销售的不同厂家的所有工作站及微机平台,广泛应用于通用机械、模具、汽车及航空航天领域,被很多世界著名公司选定为企业计算机辅助设计、分析、制造的标准。
从20世纪60年代起UG就一直代表着工程制造业CAD/CAM软件产品的最高水平。
20世纪90年代,UG进入中国市场,受到广大CAD/CAM用户的欢迎。
UG在中国的用户已超过1000多家,装机量达到350 多套。
这是因为UG是一个集成化、全面、一体的软件,它包括设计、加工、分析和最流行的产品数据管理(PDM),给企业提供了一个全面的解决方案。
1.1 CAD软件的二次开发随着CAD应用领域的不断扩大和应用水平的不断提高,用户需求与CAD系统规模之间的矛盾日益增加,没有一个CAD系统能够完全满足用户的各种需求。
作为商品化的CAD软件产品,是否拥有一个开放的体系结构,是衡量该软件的优劣性、适用性和生命力的重要标志,而是否拥有一个开发简便、运行高效的二次开发平台又是开放式体系结构的核心和关键。
目前,主流的CAD软件都具有用户定制功能并提供二次开发工具。
通过CAD软件的二次开发工具可以把商品化、通用化的CAD系统用户化、本地化、即以CAD系统为基础平台,在软件开发商所提供的开发环境与编程接口基础之上,根据自身的技术需要研制开发符合相关标准和适合企业实际应用的用户化、专业化、知识化、集成化软件,以进一步提高产品研发的效率。
在通用CAD基础上融入专业知识构建专用CAD系统是当前深化CAD应用的潮流。
把用户的设计思想转化为特定的新功能需要以下基本要素,这些基本要素构成了CAD软件二次开发平台的基本结构:(1)通用CAD软件——管理层。
通用CAD软件是整个开发的基础,是二次开发应用程序的宿主。
第4章用户界面开发技术UG用户可以通过用户界面与应用程序及UG系统进行交互操作,界面开发工具包括:菜单编辑工具UG/Open MenuScript、对话框编辑工具UG/Open UIStyler、系统对话框以及MFC等,用户可以综合运用各种界面开发工具来开发出适合用户自己的菜单、快捷工具条和对话框,从而实现应用程序与UG系统用户界面下的无缝集成。
4.1 UIStyler对话框UIStyler是用户开发UG对话框的可视化工具,它可以避免复杂的图形用户接口(GUI)编程,其设计对话框的方式与Visual C++很相似,即利用对话框中基本单元的组合生成不同的对话框,对话框中所有控件设计都是实时可见的。
UG/Open UIstyler主要提供了以下的功能:1、提供了让用户创建UG风格对话框的可视化环境,并能生成UG/Open UIStyler文件和C代码,从而使用户在使用时不必考虑图形界面的实现。
2、利用可视化环境快速生成UG风格的对话框,从而减少开发时间。
3、通过选取和放置控件,从而实现所见即所得。
4、可以在对话框中实现用户自定义的位图。
5、提供了属性编辑器,从而允许用户设置和修改控件属性。
6、UG/Open UIStyler生成的对话框可与UG/Open MenuScript、UG/Open API、 UG/Open GRIP 集成,便于用户执行二次开发程序。
4.1.1 UIStyler对话框的应用4.1.1.1对话框的应用环境UG的UIStyler应用模块提供给用户可视化建立UG风格对话框的功能。
在UG主菜单中选择菜单项“Application→User Interface Styler...”,进入UIStyler应用模块,UIStyler可视化界面如图4-1所示。
控件编辑工控件基本对话对象浏览属性编辑4.1.1.2对话框设计UIStyler可视化界面包括基本对话框、对象浏览器、属性编辑器、控件栏和控件编辑工具五部分。
ug二次开发介绍————————————————————————————————作者:————————————————————————————————日期:UG二次开发功能简介Unigraphics(UG)是美国UGS公司的集CAD/CAM/CAE于一体的软件集成系统,功能覆盖整个产品的开发过程:从概念设计、功能工程、功能分析到制造,在航空航天、汽车、机械、模具和家用电器等工业领域的应用非常广泛。
UG软件提供了功能强大的二次开发(应用开发)模块,利用该模块可对UG系统进行用户化裁减和开发。
UG/Open是一系列UG开发工具的总称,主要由UG/Open API、UG/Open GRIP、UG/Open MenuScript和UG/Open UIStyler四部分组成。
UG/Open API (又称User Function ),是一个允许程序访问并改变UG对象模型的程序集。
UG/Open API 封装了近2000个UG操作的函数,它可以对UG的图形终端、文件管理系统和数据库进行操作,几乎所有能在UG界面上的操作都可以用UG/Open API 函数实现。
UG/Open API程序按其连接方式分为两种,内部模式(Internal环境) 和外部模式(External 环境)。
采用内部模式开发的程序只能在UG 的界面环境(Session)下运行,其优点是可以连接的更快且程序更小并能与用户交互;采用外部模式开发的程序能在操作系统中独立执行,其缺点是无法实时显示图形与用户交互,值得注意的是部分函数只能在内部模式下执行。
UG/Open API 程序使用的是C 或C + + 编程语言。
基于Windows操作系统的UG二次开发可以在VC + + 6.0或环境下进行,VC提供的各类库函数和丰富的编程资源进一步提升了UG/Open API的功能,同时也为集成企业原有的C/C++语言程序提供了方便。
UG/Open GRIP ( Graphics Interactive Programming) 是一种专用的图形交互编程语言,与UG系统集成,可以实现UG环境下的大多数应用操作。
1、系统环境设置:安装目录为:D:\ugnx4.0,用户工作目录为:E:\ugnx4.0。
(1)将Ug安装目录下的D:\ugnx4.0\UGII\ugii_env.dat文件中:#UGII_VENDOR_DIR=${UGALLIANCE_DIR}\vendor#UGII_SITE_DIR=${UGALLIANCE_DIR}\site#UGII_USER_DIR=${HOME }(该语句是用来设置用户自己二次开发内容的目录)改为:UGII_USER_DIR=E:\ugnx4.0去掉前面的注释符号“#”,以使它们起作用;将${HOME }改为用户工作目录。
(2)Tools->option,Directories,inc lude files把D:\UGNX4.0\UGOPEN路径加入。
2、新建工程Microsoft Visual C++ 6.0安装目录为:D:\Program Files。
File->new,projects,选择Unigraphics NX AppWizard V1;(检查安装目录D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template下是否有文件ugopen.awx及ugopen.hlp,如果没有,将这两个文件复制到上述文件夹中)(下载UgOpen_v19.rar)(Ctrl+F7)compile编译运行,(F7)build生成.dll文件。
3、在UG用户工作目录E:\ugnx4.0下新建startup和application文件夹startup文件夹下存放:.men和.dll文件;application文件夹下存放:.dlg和.bmp文件注意:改为:否则出现下述错误:。
UG软件二次开发工具的使用UG软件是美国EDS公司开发的一套集CAD/CAM/CAE为一体的高端软件。
由于其强大的设计、分析、制造和产品数据管理的功能,国内外许多企业都将它作为首选软件。
但是UG软件与其它CAD软件一样是一个通用软件,专业针对性差,因而不能满足各种各样具体产品的设计需要,在实际的工程设计中难以达到理想的效果,几乎不能真正实现灵活高效的特点。
因而UG软件的二次开发就成为CAD技术推广应用过程中必须面对和解决的课题之一。
二次开发就是把商品化、通用化的CAD系统用户化,本地化的过程,二次开发后能大大提高设计人员的设计效率,缩短设计周期。
因此UG软件的二次开发人员必须掌握几种UG软件的开发工具及其使用方法,才能为企业开发出本地化的UG软件。
UG/Open是一系列UG开发工具的总称,是UG软件为用户或第三方开发人员提供的最主要的开发工具。
它主要由UG/OpenGR IP、UG/Open API、UG/Open MenuScrip t和 UG/ Open UISt yler 四个部分组成。
一、UG/OPEN GRIPUG/OPEN GRIP(Graphics Interactive Programming)是一种专用的图形交互编程语言。
这种语言与UG系统集成,能够实现强大的图形绘制、装配、工程图的生成和一定的文件管理功能,主要进行UG的功能调用。
GRIP程序一般是在UG平台下编制的,有独特的开发工具、编译链接过程、程序语法和文件格式,具体开发过程如下:(一)编写源程序:在UG Open GRIP环境界面中,选择Edit,用记事本创建或打开一个.grs文件,也就是GRIP源文件。
(二)编译源程序:选择Compile对源程序进行编译生成扩展名为.gri的编译文件,如果主程序中含有子程序,则两者要分别进行编译,链接时主程序自动对子程序进行链接。
(三)链接程序:选择Link将扩展名为.gri的文件链接生成可执行的GRIP文件,扩展名为.grx,这个文件就是UG可以识别的执行文件。
Software Development •软件开发Electronic Technology & Software Engineering 电子技术与软件工程• 33【关键词】UG 软件 二次开发 研究与应用众所周知Unigraphics 软件于上个世纪诞生于美国,早期的UG 软件主要被应用于飞机公司的设计生产方面,为了设计出性能更好的F15战斗机,最终开发出了UG 软件这类产品。
UG 软件被广泛应用于CAD 和CAM 之上,但早期的UG 软件为了满足其系统使用上的通用性,使得UG 软件仅拥有CAD 和CAM 的一些最基本的功能,这个时期无法结合计算机对机械产品进行辅助设计和制造。
随着当代工业的高速发展,对于机械产品的需求也趋向多样化,这就需要结合实际的设计需要,再通过对采用的CAD 软件进行适当的二次开发,这样就可以开发出更全面、准确性高的CAD 和CAM 系统。
随着当代计算机技术的发展,也推进了我国UG 系统的二次开发的进程,本文主要就UG 软件的二次开发过程中的各类开发工具,例如:UG/Open Menu Script 、User Tools 和UG/Open UIStyler 以及UG/Open Grip 、UG/Open API 和UG/Open++编程语言的基本情况,对UG/Open API 高级用户接口语言的应用规程和实现方法,希望为CAD 和CAM 软件的开发设计做好准备。
1 UG二次开发的基本情况通常而言,大多数的产品设计人员,对产品模型的构建都需要经历打开软件,并进行草图绘制以及完整构建模型等环节。
在对模型草图的绘制过程中,不仅需要对各个尺寸进行繁复的标注,还需要对模型的特征进行构建,这些都使得设计人员的工作量极大;因此,为了减少设计人员的工作量,有效的提高设计人员的工作效率,以及方便对设计绘图的后期修改等,都需要对UG 软件进行二次开发,以满足公司和用户的不同需求。
首先,简单介绍一下UG二次开发。
UG原来是由工作站上移植过来的,GRIP就是它原来的二次开发工具,(本人对GRIP并不熟悉,哪位朋友如果使用GRIP开发,可以介绍一下),目前WINDOWS下的开发工具为UG/OPEN和UG/OPEN++,故在此我们主要针对这两种开发方法介绍一下。
1、UG/OPEN 是一系列UG开发工具的总称。
它们随UG一起发布,以开放性架构面向不同的软件平台提供灵活的开发支持。
它使第三软件商和UG用户能在其提供的平台上开发出适合自己需要的CAD产品。
UG/Open 套件组成:API, Grip, Menus cript ,UIStyler。
API:UG/Open API也称User Function,通过它可以在C程序和C++程序中以库函数的形式调用UG内部的近2000个操作。
Grip语言:GRIP(Graphics Interactive Programming)是一种专用的图形交互编程语言,开发者可以用GRIP编程的方法自动实现在UG下进行的绝大部分操作。
GRIP命令很像英语单词,语法与BASIC 和FORTRAN相似,有某些情况下对于一些高级操作,用GRIP编程的方法比用UG交互的方法更有效,在UG交互环境下可以实现的功能用GRIP几乎全都可以实现。
UG提供了一个名叫UG Open GRIP的GRIP语言编辑器,用这个工具可以编辑、修改、编译、连接程序。
Menus cript:此项功能使用户或第三方软件商通过文本编辑器编辑UG菜单文件,以生成用户化的菜单进而集成他们的特殊应用。
UG/Open Menus cript支持UG主菜单和快速弹出式下拉菜单的修改,通过它可以改变UG菜单的布局、添加新的菜单项以执行用户二次开发程序、User T ools文件及操作系统命令等。
UG/Open Menus cript的使用需专门授权。
运用UG/OpenMenus cript可以完全改变UG软件的主界面,需谨慎使用以防出现混乱。
1.建立两个目录。
建立第一个目录E:\my_first_UG,在这个目录下建立两个新的目录:E:\my_first_UG\application和E:\my_first_UG\startup。
建立第二个目录E:\my_source,用存放你的源代码。
2设置环境变量。
再Windows中设置一个新的环境变量:UGII_USER_DIR=E:\my_first_UG。
3。
打开UG,进入UIStyler应用(在Application菜单的最后)。
4。
设计一个对话框。
1)在"Dialog Title"一栏填入:First Dialog,按Apply(每次输入完成后,都要按Apply,为避免啰嗦,以后不再提及)。
2)在"Cue"一栏输入:%……%¥%¥¥##*%*(*(*—*—((,什么都行,呵呵。
3)在"refix Name"中,把CHANGE改为MY。
4)加入四个控件。
String,Push Button,Label和Single Select List编辑对话框的各个控件。
1)改变String控件的标题,标识和长度。
Label “String” -> “Input an item”.Identifier "STR_0" -> "ITEM"Width in... 0 -> 202) 改变Push Button控件的标题,标识和回调函数的名字。
Label "push Button" -> "Import"Identifier "ACTION_1" -> "IMPORT"callbacks "action_1_act_cb" -> import_cb把"Creates Dialog"激活。
UG二次开发【快速出车间文档】UG附带的出车间文档需要进行运算,这样一来,出车间文档在程序刀路形成很慢的情况下这运算速度让人接受不了;下图是做的一个简易车间文档示例:程序使用,下边是源代码:(代码中SnapPic.exe 为VB做的抓图工具)Option Strict OffImports SystemImports System.IOImports NXOpenImports NXOpen.CAMImports NXOpen.UFImports NXOpen.UtilitiesImports System.DrawingImports System.Windows.FormsModule Module1Dim theSession As Session = Session.GetSession()Dim myUI As UI = UI.GetUI()Dim theUFSession As UFSession = UFSession.GetUFSession()Dim theWorkPart As Part = theSession.Parts.WorkDim mytag() As NXOpen.Tag'选择的加工操作标记数组Dim mcount As Integer'选择的加工操作数量Sub Main()Shell(Environment.GetEnvironmentVariable("UGII_USER_DIR ") + "\UDO\Post\SnapPic.exe", AppWinStyle.NormalFocus, True)Try'获取选择的操作数theUFSession.UiOnt.AskSelectedNodes(mcount, mytag)If mcount = 0 ThenMsgBox("没有选择加工操作!", MsgBoxStyle.OkOnly, "提示信息")Exit SubEnd If'设置车间文档EXCEL模板路径Dim fp As String= Environment.GetEnvironmentVariable("UGII_USER_DIR") + "\UDO\Post\WorkShop.xls"'打开与写出车间文档If String.IsNullOrEmpty(fp) = False ThenDim myExcel As New MY_EXCELmyExcel.Create()myExcel.Open(fp)myExcel.Write("M4", AskDisplatyPartName())myExcel.Write("S4", Format(Now, "yyyy/MM/dd"))myExcel.InsertPicture("b4",Environment.GetEnvironmentVariable("UGII_USER_DIR") + "\UDO\Post\jietu.jpg")For i = 0 To mcount - 1'输出结果myExcel.Write("B" + (i + 17).T oString, (i + 1).ToString)myExcel.Write("D"+ (i + 17).T oString, GetGemoGroup_Name(mytag(i)))myExcel.Write("E"+ (i + 17).ToString, GetToolPathName(mytag(i)))myExcel.Write("F" + (i + 17).ToString, GetToolName(mytag(i))) myExcel.Write("G"+ (i + 17).ToString, GetToolNumber(mytag(i)).T oString)myExcel.Write("H"+ (i + 17).ToString, GetToolDiameter(mytag(i)).ToString)myExcel.Write("I"+ (i + 17).ToString, GetToolCornerRadius(mytag(i)).ToString)myExcel.Write("J"+ (i + 17).ToString, GetToolHeight(mytag(i)).T oString)myExcel.Write("K"+ (i + 17).ToString, GetToolFluteLength(mytag(i)).T oString)myExcel.Write("L"+ (i + 17).ToString, GetStockPart(mytag(i)).T oString)myExcel.Write("M"+ (i + 17).T oString, GetStockFloor(mytag(i)).T oString)myExcel.Write("N"+ (i + 17).ToString, GetSpeedValue(mytag(i)).T oString)myExcel.Write("O"+ (i + 17).ToString, GetFeedValue(mytag(i)).T oString)myExcel.Write("Q"+ (i + 17).ToString,CInt(GetCutTime(mytag(i))).T oString)NextmyExcel.SaveAs()'myExcel.Quit()End If'出错处理:Catch ex As ExceptionMsgBox(ex)End TryEnd Sub'当前文档文件名Function AskDisplatyPartName() As StringDim UFS As UFSession = UFSession.GetUFSession()Dim part_name As String = ""Dim part_tag As NXOpen.Tag = UFS.Part.AskDisplayPartUFS.Part.AskPartName(part_tag, part_name)Dim aa() As StringDim bb() As Stringaa = Split(part_name, ".prt")part_name = aa(0)bb = Split(part_name, "\")part_name = bb(bb.Length - 1)Return part_nameEnd Function'取加工几何试图程序组Function GetGemoGroup_Name(ByVal camObjectTag As NXOpen.Tag) As StringDim theGemoGroup_Tag As NXOpen.TagDim GemoGroupName As String = ""theUFSession.Oper.AskGeomGroup(camObjectTag, theGemoGroup_Tag)theUFSession.Obj.AskName(theGemoGroup_Tag, GemoGroupName)Return GemoGroupNameEnd Function'取操作名称Function GetT oolPathName(ByVal camObjectTag As NXOpen.Tag) As StringDim ToolPathName As String = ""theUFSession.Oper.AskNameFromTag(camObjectTag, ToolPathName)Return ToolPathNameEnd Function'获取刀具名称Function GetT oolName(ByVal camObjectTag As NXOpen.Tag) As StringDim ToolName As String = ""Dim ToolTag As NXOpen.TagtheUFSession.Oper.AskCutterGroup(camObjectTag, ToolTag) theUFSession.Obj.AskName(T oolTag, ToolName)Return ToolNameEnd Function'获取刀具号码Function GetToolNumber(ByVal camObjectTag As NXOpen.Tag) As IntegerDim ToolTag As NXOpen.TagDim ToolNumber As IntegertheUFSession.Param.AskIntValue(T oolTag, UFConstants.UF_PARAM_TL_NUMBER, ToolNumber)Return ToolNumberEnd Function'获取刀具长度Function GetT oolHeight(ByVal camObjectTag As NXOpen.Tag) As DoubleDim ToolTag As NXOpen.TagDim ToolHeight As DoubletheUFSession.Oper.AskCutterGroup(camObjectTag, ToolTag) theUFSession.Param.AskDoubleValue(ToolTag, UFConstants.UF_PARAM_TL_HEIGHT, ToolHeight)Return ToolHeightEnd Function'获取刀具直径Function GetT oolDiameter(ByVal camObjectTag As NXOpen.Tag) As DoubleDim ToolTag As NXOpen.TagDim ToolDiameter As DoubletheUFSession.Oper.AskCutterGroup(camObjectTag, ToolTag) theUFSession.Param.AskDoubleValue(ToolTag, UFConstants.UF_PARAM_TL_DIAMETER, ToolDiameter) Return ToolDiameterEnd Function'获取刀具刃长Function GetToolFluteLength(ByVal camObjectTag As NXOpen.Tag) As DoubleDim ToolTag As NXOpen.TagDim ToolFluteLength As DoubletheUFSession.Param.AskDoubleValue(ToolTag, UFConstants.UF_PARAM_TL_FLUTE_LN, ToolFluteLength) Return ToolFluteLengthEnd Function'获取刀具R角Function GetToolCornerRadius(ByVal camObjectTag As NXOpen.Tag) As DoubleDim ToolTag As NXOpen.TagDim ToolCornerRadius As DoubletheUFSession.Oper.AskCutterGroup(camObjectTag, ToolTag) theUFSession.Param.AskDoubleValue(ToolTag, UFConstants.UF_PARAM_TL_COR1_RAD, ToolCornerRadius) Return ToolCornerRadiusEnd Function'取部件侧部余量Function GetStockPart(ByVal camObjectTag As NXOpen.Tag) As DoubleDim StockPart As DoubletheUFSession.Param.AskDoubleValue(camObjectTag, UFConstants.UF_PARAM_STOCK_PART, StockPart)Return StockPartEnd Function'取部件底部余量Function GetStockFloor(ByVal camObjectTag As NXOpen.Tag) As DoubleDim Stockfloor As DoubletheUFSession.Param.AskDoubleValue(camObjectTag, UFConstants.UF_PARAM_STOCK_FLOOR, Stockfloor)Return StockfloorEnd Function'取主轴转速Function GetSpeedValue(ByVal camObjectTag As NXOpen.Tag) As DoubleDim SpeedVale As DoubletheUFSession.Param.AskDoubleValue(camObjectTag, UFConstants.UF_PARAM_SPINDLE_RPM, SpeedVale)Return SpeedValeEnd Function'取进给速度Function GetFeedValue(ByVal camObjectTag As NXOpen.Tag) As DoubleDim FeedValue As DoubleDim_camObject As NXObject= NXObjectManager.Get(camObjectTag)Dim params(0) As CAM.Operationparams(0) = CType(_camObject, Operation)Dim FeedsBuilder1 As ObjectsFeedsBuilder= theSession.Parts.Work.CAMSetup.CreateFeedsBuilder(params) FeedValue = FeedsBuilder1.FeedsBuilder.FeedCutBuilder.ValueFeedsBuilder1.Destroy()Return FeedValueEnd Function'取切削时间Function GetCutTime(ByVal camObjectTag As NXOpen.Tag) As DoubleDim CutTime As DoubletheUFSession.Param.AskDoubleValue(camObjectTag, 142,CutTime)Return CutTimeEnd FunctionPublic Function GetUnloadOption(ByVal dummy As String) As Integer'Unloads the image immediately after execution within NXGetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately'----Other unload options-------'Unloads the image when the NX session terminates'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.AtTermination'Unloads the image explicitly, via an unload dialog'GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Explicitly'-------------------------------End FunctionEnd ModulePublic Class MY_EXCELPrivate app As ObjectPrivate book As ObjectPrivate sheet As Object'表格名称Public Property xlSheetName() As StringGetReturn End GetSet(ByVal value As String) = valueEnd SetEnd Property'新建程序Public Function Create() As Booleanapp = CreateObject("Excel.Application")If app Is Nothing ThenReturn FalseElseapp.Visible = TrueReturn TrueEnd IfEnd Function'打开文件Public Sub Open(ByVal xlFileName As String)book = app.Workbooks.Open(xlFileName)sheet = book.ActiveSheetEnd Sub'写单元格Public Sub Write(ByVal_Range As String, ByVal value As Object)If _Range <> ""Thensheet.Range(_Range).Value = valueEnd IfEnd Sub'插入图片Public Sub InsertPicture(ByVal_Range As String, ByVal imageFile As String)If _Range <> ""ThenDim ExcelRange As Object = sheet.Range(_Range)Dim Ins_image As ImageIns_image = Image.FromFile(imageFile)Dim HeightScale As Double= Math.Round((ExcelRange.Height * 12 - 6) / Ins_image.Height, 2) Dim WidthScale As Double= Math.Round((ExcelRange.Width * 15 - 6) / Ins_image.Width, 2) Dim ScaleHW As Double= Math.Min(HeightScale, WidthScale)sheet.Shapes.AddPicture(imageFile, 0, 1, ExcelRange.Left + 2, ExcelRange.T op + 2, Ins_image.Width * ScaleHW, Ins_image.Height * ScaleHW)Ins_image.Dispose()End IfEnd Sub'取指定单元格值Public Function GetValue(ByVal_table As Integer, ByVal _Range As String) As StringDim sheet As Object = book.Sheets.Item(_table)Return sheet.Range(_Range).valueEnd FunctionPublic Function Save() As Booleanbook.Save()End FunctionPublic Function SaveAs() As BooleanDim Sdlg As SaveFileDialog = New SaveFileDialog'定义一个保存对话框Sdlg.FileName = AskDisplatyPartName() + "加工工序单.xls"'保存对话框的默认文件名Sdlg.Filter = "EXCEL档案(*.xls)|*.xls"'过滤器设置If Sdlg.ShowDialog = Windows.Forms.DialogResult.OK Then '如果保存对话框的确认按钮被按下book.SaveAs(Sdlg.FileName) '保存文件End IfEnd Function'结束EXCEL对象Public Function Quit() As Booleanbook.close()app.Quit()app = NothingGC.Collect()End Function'取数组Public Function GetArryValue(ByRef _table As Integer, ByVal _Row As String, ByVal _Cell As String, ByRef ArryString() As String) As IntegerDim sheet As Object = book.Sheets.Item(_table)Dim rowvalue As String = sheet.Range(_Row).valueDim cellvalue As String = sheet.Range(_Cell).valueDim k As Integer = 0If rowvalue <> ""And cellvalue <> ""ThenDim rowstr() As String = Split(rowvalue, "/")Dim cellstring() As String = Split(cellvalue, "/")Dim a, b, c, d As IntegerIf rowstr.Length > 1 And cellstring.Length > 0 Thena = Convert.T oInt32(rowstr(0))b = Convert.T oInt32(rowstr(1))If a > 0 And b > a ThenReDim Preserve ArryString(b - a)For i As Integer = 0 To b - aArryString(i) = cellstring(0) & Convert.ToString(a + i)k += 1NextIf rowstr.Length > 3 And cellstring.Length > 1 Thenc = Convert.ToInt32(rowstr(2))d = Convert.T oInt32(rowstr(3))If c > 0 And d > c ThenReDim Preserve ArryString(b - a + d - c + 1)For j As Integer = 0 To d - cArryString(b - a + j + 1) = cellstring(1) & Convert.ToString(c + j)k += 1NextEnd IfEnd IfEnd IfEnd IfEnd IfReturn kEnd FunctionEnd Class。
UG软件的二次开发王喆【期刊名称】《天津职业院校联合学报》【年(卷),期】2015(017)004【摘要】通过比较UG常用标准件库中的系统结构,对 UG/OPE N二次开发程序现存的热点问题进行分析比较,设计出基于UG的汽车钣金设计标准件库相应的二次开发程序.尤其在汽车钣金模具标准件库动态加载模块的设计上,注重了用户体验的构建,使人机交互性更顺畅,在设计师构建曲面等模型时能够"快准全新稳",系统地完成汽车钣金件三维参数化建模的研发工作,基本实现了企业向时间要效益、设计师靠软件新功能提效率的模式.%Through the comparison of system architecture of the commonly used UG standard parts library,the paper compares and analyzes the popular issues existed in the re-development of UG/OPEN program,designs a re-developed program according to the standard parts library of automobile sheet metal based on the UG software.Especially on the design of the dynamically loaded module of the standard parts library of automobile sheet metal model,the construction of user experience is paid atten-tion to,making the human-computer interaction more smoothly.When designing modules like curved surface,the designers can make the process less timeconsuming,accurate,comprehensive,new and sta-ble.The systematic completion of the development of the parameterized 3D automobile sheet metal mod-eling basically realize the"company asks for profits fromtime,designers improve the efficiency by the new functions of software" pattern.【总页数】5页(P97-101)【作者】王喆【作者单位】天津机电职业技术学院,天津 300131【正文语种】中文【中图分类】TG74+9【相关文献】1.基于 UG 二次开发的模型软件设计 [J], 邢秀琴;邢秀娟;叶志忠;高春强2.基于UG软件的r航空发动机外部系统设计二次开发 [J], 潘柏霖3.基于UG软件二次开发下的电极设计 [J], 刘进明;时小光4.基于UG二次开发技术的CAD/CAE/CAM软件集成方法研究 [J], 秦闯;刘战强;叶洪涛;庞继有5.UG软件的二次开发研究与应用 [J], 鲁海斌;刘晓红;因版权原因,仅展示原文概要,查看原文内容请购买。
OpenAPI UG二次开发疯狂代码 / ĵ:http://OpenApi/Article1781.htmlUG二次开发个人认为最麻烦的地方是开发过程中UG通过NXMANAGER与TCE(TEMCENTER)的交互.个人认为TCE的安装就够开发人员喝一壶了..目前正在对UG进行二次开发,项目结束后考虑TCE的二次开发.说明:UG软件是美国EDS公司开发的一套集CAD/CAM/CAE一体的高端软件。
UG是一个通用软件,用户必须在此基础上进行二次开发,才能满足专门 模具设计的需要,提高设计效率。
本文探讨UG二次开发技术,重点研究通过VC编程调用UG/OPEN API函数设计模具的技术。
1. 简介Unigraphics(简称UG)在CAD/CAM上表现出了强大的功能,但UG为通用支撑软件系统,仅具有CAD/CAM的基本功能,没有提 供专用产品所需要的完整计算机辅助设计/制造功能.由于机械产品的千变万化,需要针对具体对象在选用的CAM软件平台上进行二次开发,来设计出界面友好、 功能强大和使用方便的专用产品的CAD/CAM系统.本文介绍UG/OPEN UIStyler、UG/OPEN GRIP和UG/OPEN API的二次开发技术。
UG/Open二次开发模块为UG软件的二次开发工具集,便于用户进行二次开发工作,利用该模块可对UG系统进行用户化剪裁和开发,满足用户的开 发需求。
UG/Open包括以下几个部分:UG/Open Menuscript开发工具,对UG软件操作界面进行用户化开发,无须编程即可对UG标准菜单进行添加、重组、剪裁或在UG软件中集成用户自己开发的软 件功能;UG/Open UIStyle开发工具是一个可视化编辑器,用于创建类似UG的交互界面,利用该工具,用户可为UG/Open应用程序开发独立于硬件平台的交互界面; UG/Open API开发工具,提供UG软件直接编程接口,支持C、C++、Fortran和Java等主要高级语言;UG/Open GRIP开发工具是一个类似APT的UG内部开发语言,利用该工具用户可生成NC自动化或自动建模等用户的特殊应用。