SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: 基于ActiveX自定义属性插件的开发与应用(一) [打印本页]

作者: 迗徔骄孒    时间: 2011-9-13 11:07
标题: 基于ActiveX自定义属性插件的开发与应用(一)
0 引言  SolidWorks是基于Windows平台的三维机械设计软件,在国内已得到广泛使用。该软件具有全面的实体建模功能,可快速生成完整的工程图,其尺寸驱动功能使图样的修改更加方便,此外还可以进行模具设计、工程分析以及产品数据管理等。总之,SolidWorks功能强大、技术创新,且易学、易用。为了更好地使用软件,以VB为开发工具,利用SolidWorks OLE应用程序开发接口API函数,实现了SolidWorks中自定义属性插件的开发,方便了SolidWorks用户的设计工作,提高了设计效率。
  大多数工程图的标题栏中应该包括一些基本的设计信息,如零件名称、零件代号、材料以及设计者等,其中零件名称、零件代号、备注等信息还要出现在装配图的材料明细表中,这些内容若在工程图中一一进行编写和修改,其工作量大且不利于保证零件三维图与工程图设计信息的一致性。
  SolidWorks是一个全相关的机械设计软件。其三维模型文件中的设计数据,如尺寸、注释和文件属性等内容与工程图相关。因此,在处理工程图标题栏和材料明细表中的设计数据时,可以将这些内容保存在三维模型文件中,使其自动显示在工程图相应的位置上,当需要对工程图中的内容进行修改时,直接修改三维模型文件中的相应数据即可实现,这样不仅保证了设计信息的一致性,还可以提高设计效率。然而即使这样,也十分繁琐,如果能开发一个控件,与SolidWorks软件融为一体,则可以达到事半功倍的效果。
  1 Active Ocx控件的开发
  为了提高效率,以VB为开发工具,笔者开发了一个Active Ocx控件,并用SolidWorks“”操作来引用该控件,从而在SolidWorks中生成一个Properymanagerpage,并利用其中的控件添加自定义属性。程序运行界面如图1所示。
  

  图1 程序运行界面

  该程序可实现的功能如下。
  1)如果文件只有一个默认配置“Default”,则自定义属性添加在文件的“自定义”栏,如果文件有两个及以上配置,则属性根据配置不同添加在“配置特定”栏。
  2)添加的项目包括作者、序号和名称等,具体如图1所示。
  3)选择不同的配置名称,则相应属性信息显示在对应的文本框内。
  Active Ocx控件的开发步骤为:首先在VB中,新建工程,选择ActiveX控件,然后“确定”,并引用SolidWorks类和SolidWorks常数类,修改工程名称为propertymgr,并设置此项目为工程兼容,在名称栏输入“shuxing.ocx”,之后如图1所示在用户控件UserControll上添加各个控件。
  1.1获得SolidWorks对象
  获得SolidWorks对象,即获得与SolidWorks的接口,这是SolidWorksAPI最高级别的对象,可以控制SolidWorks文件的建立、打开和关闭等操作。代码如下:
  

  1.2获得文件名称与配置名称
  SolidWorks API提供了按照配置名称访问自定义属性的方法CustomInfO2(读取自定义属性的值)、DeleteCustomInfo2(删除指定的自定义属性)、AddCustomInfo3(添加自定义属性的名称和参数值),这些方法都要求指定文件的配置名称。因此为了对当前模型文件和当前配置设定自定义属性,必须首先要获得当前配置的名称,利用GetConfiguration-Names()方法可以获得当前模型文件配置的名称,并利用GetConfigurationCount()方法获得当前配置的数量。代码如下:
  

  1.3访问自定义属性
  本程序设计根据配置不同而分别添加不同的自定义属性。主要属性配置方法如下。
  1)CustomInfo:如果只有一个默认配置,将获取当前文档自定义栏中的自定义属性的值。
  

  其中,“序号”为自定义属性的名称(以下同)。
  2)DeleteCustomInfo:如果只有一个默认配置,将删除当前文档自定义栏中的自定义属性的值。
  

  3)CustomInfo2:如果有两个及以上配置,将获取当前文档指定配置的自定义属性的值。
  

  其中,configname为配置名称。
  4)DeleteCustomInfo3:如果有两个及以上配置,删除当前文档指定配置的自定义属性的值。
  

  5)AddCustomInfo3:如果有两个及以上配置,向当前文档中指定的配置添加自定义属性及值。
  

  其中,swCustomInfoNumber为自定义属性的类型;UserControl.Text2.Text为自定义属性的具体值。
  主程序代码完成后,就可以点击“文件→生成shuxing.ocx”,完成Active Ocx控件的开发。
作者: llfyf_edwin    时间: 2011-9-13 11:34
谁会用vc编程控制SolidWorks装配体的旋转啊~~~跪求高人指点迷津~~~
作者: jyzas001    时间: 2017-8-12 16:48
进来学习
作者: jyzas001    时间: 2017-9-3 22:53
进来学习
作者: vboicq    时间: 2017-10-21 16:28
进来学习进来学习
作者: jiacai007    时间: 2021-5-30 19:16
活到老学到老!
作者: schjck    时间: 2021-7-23 18:34
很不错,顶一下!
作者: schjck    时间: 2021-10-14 17:32
很不错,顶一下!




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2