需要理解的知识

* com组件原理及应用1. IUnknown , IDiapatch  ...2. 接口的指针指向接口这个结构,接口里面保存一个虚函数表指针,指向接口里的函数。3. 接口的使用+ 通过queryInterface   (必须是同一个组件)+ 通过上一级接口的方法得到+ 通过某些某些接口的方法得到

SOLIDWORKS环境配置

安装apisdk 后 打开vs新建工程时会有向导可以新建solidworks项目
新建后需要配置下项目:

编译这个模板项目会出现
继续编译完成。 编译时需要关闭solidworks
注意!! 直接用solidrorks打开生成的dll会注册失败,编译成dll后,需要注册到注册表 才能被使用。
需要用管理员身份注册
接口也可以通过api文档下面这个提示来知道怎么获取

第一个项目

既然都已经有模板项目了,再在这个模板项目上进行修改就可以了。
  1. Add-in Callback and Enable Methods (先添加cmd cmd可以绑定工具栏和菜单)
cmdIndex0 = cmdGroup.AddCommandItem2("CreateCube", -1, "Create a cube", "Create cube", 0, "CreateCube", "EnableCube", mainItemID1, menuToolbarOption);
#Region UI Callbackspublic void CreateCube
{// Create Cube command code
}
public int EnableCube
{// Return status of the Create Cube enablementreturn 0;
}public void ShowPMP
{// Show PMP command code
}
public int EnablePMP
{// Return status of Show PMP enablementreturn 0;
}
  1. solidwork 直接添加一个dll会自动加一个工具栏,不要试图在代码里加,加不了

    有血缘关系的接口指针 , 比如newPart() 得到的是dispatch的指针,但是实际上得到part,而part和modelDoc2有血缘关系,所以可以直接 代码如下:
 CComPtr <IModelDoc2> modelDoc2Ptr;CComPtr <IDispatch> disPathchPtr;gSwApp->NewPart(&disPathchPtr);modelDoc2Ptr = disPathchPtr;long docType;modelDoc2Ptr->GetType(&docType);if (docType == swDocPART){AfxMessageBox(L"这是个零件");}

有时候需要像下面这样用

下面这样是错误的

而且下面这种也是可以的, 注释的是不可以的编译不过。

这里一定要置空,不然会死循环,next函数不会帮你置空。

事件

调用IGetRefAxisParams()前不要select轴,不然会调用失败导致获取不了轴得两个端点

solidworks二次开发问题解决:
1.打开dll无法启动插件,此时需要注册插件才能打开。
2.需要什么什么.140msu.lib这种都是工具集不匹配问题,改项目配置文件,改成自己的工具集。

SOLIDWORKS 二次开发 VC++相关推荐

  1. SolidWorks二次开发的研究

    三维机械设计软件SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系统,是由美国SolidWorks公司在总结和继承大型机械CAD软件的基础上,在Windows环境下 ...

  2. sw二次开发 python_基于C#的SolidWorks二次开发.doc

    摘要: 气动电阻点焊钳已经被各大汽车制造厂商广泛运的用于汽车焊接工艺中.它以无污染.压力稳定.动作敏捷等优点逐步替代了国内常见的液压传动焊钳,改变了液压传动滞缓的现象,从而达到了焊接循环的要求.本次毕 ...

  3. Solidworks二次开发平台 --- RyS.SwWorks [2015-09-18更新]

    RyS.SwWorks 是一款基于.NET的Solidworks二次开发平台,该平台封装了插件注册.菜单.工具栏.侧边栏.Document接口,使得Solidworks开发和部署简单高效. 安装程序中 ...

  4. C# SolidWorks二次开发 干涉检查

    总体思路 基于.NET Framework控制台应用程序进行SolidWorks二次开发,选中输入零件,实现干涉检查功能. 使用SelectByID2方法,选中待检查零件,然后使用ToolsCheck ...

  5. C# Solidworks二次开发 输入零件名选中零件

    实现功能 基于.NET Framework控制台应用程序进行SolidWorks二次开发,实现输入零件名,在软件中选中零件. 注意:(1)进行SolidWorks控制台程序二次开发不能使用.NET C ...

  6. SolidWorks二次开发 API-获取当前语言与重命名文件

    新的一年了,开始新的分享. 做SolidWorks二次开发的时候,难免会遇到多语言的问题. 针对不同语言的客户生成不同语言的菜单,所以我们要知道Solidworks的当前界面语言是什么. 这个就简单的 ...

  7. Python SolidWorks 二次开发---SolidWorks另存文件为其他格式

    Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 Python SolidWorks 二次开发-SolidWorks另存文件为其他格式 文章目录 Python So ...

  8. 基于SOLIDWORKS二次开发的3D产品研发增效和企业信息化工具集SolidKits

    基于SOLIDWORKS二次开发的SolidKits工具的含义是3D产品研发增效和企业信息化工具集,目前已经帮助高科技.机器人.航空航天.船舶.汽车.机械设备.电器.电子等行业的上百家制造业企业提供了 ...

  9. Python SolidWorks 二次开发—SolidWorks中的事件实现

    Python SolidWorks 二次开发-SolidWorks中的事件实现 文章目录 Python SolidWorks 二次开发---SolidWorks中的事件实现 前言 一.如何实现com事 ...

最新文章

  1. 华为笔记本matebook13_为什么我不推荐华为Matebook 13给职场新人/小白?
  2. 9032c语言程序设计,2016年中国计量学院机电工程学院9032C语言程序设计考研复试题库...
  3. LeetCode——Longest Substring Without Repeating Characters
  4. 跨平台应用集成(在ASP.NET Core MVC 应用程序中集成 Microsoft Graph)
  5. 求10以内平均数的c语言,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...
  6. 计算机丢失wpcap.dll会影响什么,Win7系统提示wpcap.dll丢失如何解决?
  7. python中scrapy可以爬取多少数据_python中scrapy框架爬取携程景点数据
  8. 【古典入门】巴洛克音乐家-斯卡拉蒂
  9. 液晶 mura 机器视觉 matlab,基于Gabor滤波与C-V模型分割的LCDMura缺陷机器视觉检测方法...
  10. 树莓派蜂鸣器python代码_[原创]初玩树莓派B 5控制蜂鸣器演奏乐曲
  11. PS、Ai、Pr等如何修改安装位置的问题
  12. MACD回零轴有三种方式
  13. 专科低学历想做web前端开发拿10k、15k高薪,我建议你这样做
  14. C/C++ FFmepeg Qt音视频开发录屏摄像机
  15. 史上最简单的 MySQL 教程(十二)「列属性 之 唯一键」
  16. 文献【综述】Hallmarks of Cancer: The Next Generation 肿瘤的新十大特征
  17. Mysql delete删除表数据之后,表空间没有释放的问题
  18. ffmpeg视频转动图gif和Webp
  19. 图解Linux中EXT4与EXT3的区别
  20. Python爬虫入门教程07:腾讯视频弹幕爬取

热门文章

  1. paxos之Multi-Paxos
  2. matlab求解系统的差分方程图形,用MATLAB仿真散系统差分方程.doc
  3. 计算年龄:根据生日时间戳,获得目前的年龄
  4. 基于SpringBoot实现让日志像诗一样有韵律(日志追踪)
  5. Linux下Jboss安装使用+Jboss部署脚本
  6. 数据结构——求树的最大深度或者树高
  7. 量子OFFICE:我最佩服永中OFFICE的什么方面
  8. 女生适合学python吗_女生适合学习Python吗?
  9. 冒泡排序和选择排序的不同
  10. Zynq(2):MIO,EMIO点灯之路