找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18790|回复: 14
打印 上一主题 下一主题

【原创】SW二次开发

[复制链接]
跳转到指定楼层
1
发表于 2002-6-8 02:52:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
    小弟我身无分文。为了讨一口饭吃,就灌点水啦。 有所不对的地方请指教!
    好像目前讨论SW二次开发的比较少,而在所有的三维CAD软件中,其二次开发接口比较友好(我把AutoCAD归为二维的,其三维的MDT我实在是不想用,但是我老板下一阶段似乎要我做MDT的二次开发,苦呐),由于其本身就是在windows下开发的(不像其他大型的CAD系统都是从UNIX移植过来的),提供了VB和VC的接口(曾看到过一篇文章说delphi也可以),它们都是采用COM组件技术(这应该算是软件开发的一种趋向吧),使用VC编译出来的DLL可以作为SW的插件将你的程序集成到SW中。
    由于本人充其量就是个新手,因此只能以自己经验再凑上api帮助的翻译。错误在所难免,希望各位高手多多指导。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2002-6-8 03:06:37 | 只看该作者
    我的使用环境:win2000+SW2001+VC6.0。
准备工作:
    1. 获取API帮助文件(sw安装目录\lang\apihelp.chm),虽说是英文,但目前也只有这个最全的资料了。慢慢啃吧。
    2. 获取VC的SW工程向导文件(这要到sw的老家下载,如果需要我可以发到邮件),这个文件可很重要,它给出了基本的模板(就像ARX一样),由这个向导生成的dll文件马上就可以在sw下运行。得到这个文件后,拷贝到VC安装目录\Common\MSDev98\Template文件夹下,如:D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template。
    有了这两个文件,基本上就可以干活了,
3
发表于 2002-6-8 03:27:09 | 只看该作者
制作第一个应用程序:
     这样当启动VC后,新建工程,选择工程选项卡,就会出现solidworks Add_In AppWizard,给定工程名,选择Next,将有一系列的选项,如果要使你的程序做出属性管理页(PropertyManagePage)的风格,请选中第一个复选框。其他的就根据需要来选择了。点击Next,出现插件属性页,这将提供选项来描述你的插件的功能(这很重要的,取个好名称有助于用户顾名思义),设置好后,点击finish。这时会提示是否添加注册表信息,选择添加。这样一个插件的模板就做好了。
     编译(注意:不要改动任何选项),一般会出项编译成功,如果编译不成功,那就是你的系统的问题了,这个模板可是千锤百炼的了。
     启动sw,新建一个文件(可以是零件、支配、工程图文档),选择工具\插件,这时候会显示出所有在注册表中注册过的插件(如果在生成工程是选用了不添加注册表,你的插件就不会出现),找到你的插件的名称(这可是你自己命名的哟,还记得是在哪里命名的吗?),打上勾。ok
    这时sw的菜单中就会出现新的菜单项Example App/Example Menu Item。这就是你的第一个sw插件,不过点击它什么也不做!
4
发表于 2002-6-8 03:44:31 | 只看该作者
   好了,卸载这个插件(还是选择工具/插件, 将你的插件前面的勾取消)。
   回到VC,找到文件(你的工程名.app),里面有个函数
       void MenuItemCB(void)
      {
          AfxMessageBox(_T("这就是我的第一个插件?不会吧,这么容易?!"));      //添加的内容
           return;
       }
   编译,在sw中重新加载这个插件(不需要再啰嗦了吧),点击Example App/Example Menu Item菜单,哈哈,弹出个消息框,就这么简单。
   以及三点了,肚子好饿,明天还要早起去买空调,长沙的天气太热了!
   今天就写到这,算是开个头吧。
  
            --未完待续
5
发表于 2002-6-8 16:32:27 | 只看该作者
这方面确是很少有人谈及
许多地方
我意识到只有这途径是最好的方式
可惜没有实用的压力
也就少了学习的动力
风缘兄贴的内容省人不少摸索的力气
大力欢迎!!
头像被屏蔽
6
发表于 2002-6-8 17:23:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
7
发表于 2002-6-8 18:59:28 | 只看该作者
同意楼上的看法。还有,SW自身的曲线功能还不是很好,如一些公式曲线,都可以用自编程的方式。可惜我对编程也一无所知了。学校里学的是该死的Fortran
8
发表于 2002-6-9 02:23:31 | 只看该作者
    我本人觉得VB6学起来确实是容易上手,但是它使用的是OLE技术,也就是说用VB只能生成exe文件,它与SW的通信是两个应用程序之间的通信,这在执行效率上有所影响,这是其一;其二:如果当用户使用你的应用程序时,它要在你的应用程序中进行交互,而要看结果的话要切换到sw中,如果你的对话框比较多的话,这将使得你的程序交互性差。
    而用VC做的话,它作为一个插件,可以直接在sw中定制自己的菜单,就像ARX一样,而且作为动态连接库,它的执行效率也是很高的。
9
发表于 2002-6-10 21:30:48 | 只看该作者
我在之前曾经发过关于BOM的帖子,现在正在着手解决这方面的问题。我是从ActiveX Automation的思路着手,根据Microsoft对于COM的定义,应该可以利用Macro中内嵌VB/VC代码的方法来开展SW的二次开发。而且这要比使用Visual Studio/VS.Net要求低,只要会MS Office VBA, 大多就可以开展开发工作。确实,国内作SW二次开发的人很少,远不如ACAD那边热闹;我只是在比较了Autodesk和Solidworks两家的产品之后,觉得SW更能满足我的需要,或许OneSpace Designer更好,可是我不得不急功近利,毕竟我对SW更熟悉。
  
风缘兄提到VC的SW工程向导文件,如能寄给我一份,当不胜感激。我的email address: ncccteda@teda.tj.cn
10
发表于 2002-6-13 16:08:46 | 只看该作者
VB就是好,但你必须是高手.
听说WINDOWS XP就是用3亿条VB写的,美国法院的
传票要了原程序,发现了这个惊人秘密.
BILL GATES是VB高手,因为他为第一代PC写过VB的编译程序.
传说是这样的,BILL GATES去IBM的PC事业部演示他的
BASIC编译程序.那时候还没有软盘,BILL GATES忘带了
存在磁带上的程序(要不就是磁带被弄坏了),BILL GATES
下了飞机,在计算机前几个小时凭着记忆,活生生地把20K的编译
程序用机器码给敲了进去.!!!!!!!还工作了 --- 还好那时的
机器的操作系统是CPM,不象现在的WINDOWS,动不动就
CRASH. BILL GATES 就靠BASIC 程序开始了他的梦想.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-4-25 07:36 , Processed in 0.025251 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表