CAD二次开发软件商业化的编程语言选择
本帖最后由 橘子皮 于 2024-2-6 10:34 编辑目前我所在公司有一项工作内容是产品的深化图和加工图绘制,绘制逻辑比较固定,已经在VBA中写了2万多行代码实现一键自动化绘图,大致逻辑是先在Excel中整理好绘制所需的所有数据,数据来源自公司内部开发Matlab计算软件,然后VBA读取Excel数据实现自动绘图,这些软件都是在公司内部使用。
后续考虑将计算软件和绘图软件商业化,但目前绘图还是通过VBA源代码跑的,根据数据量大小运行时间在30s~5min,甚至更多。之前试过用VB封装运行,但运行速度太慢了,大概是VBA运行时间的10倍,VB几乎不能考虑,VBA商业化好像也不太行。
Matlab计算软件商业化的话需要本人重新写,之前是其他同事写的,已离职,并且也有很多内容需要更新调整。软件逻辑是基本清楚的,只是需要用新的语言重新开发下。
想请教下,目前这种状态想把计算软件和绘图软件商业化有没有合适的编程语言选择,比如python,主要要求是绘图运行时间不要太慢,不然用户体验太差。本人目前只会用VBA进行编程,但掌握的应该也只是冰山一角,基本上是我需要实现什么功能,找相应资料,然后实现它。但不排斥去接触新的语言,最理想的情况是计算软件和绘图软件能用同一种语言开发。
一个建议,可以考虑生成dxf,跳过acad这一步,应该需要学习的内容相对较少。 本帖最后由 wuyunpeng888 于 2024-4-30 16:06 编辑
橘子皮 发表于 2024-2-20 13:19
你好,如果是VB.net的话,运行效率的话如何,现在用VBA运行需要30s~5min
方向可能不太对,你现在的VBA是EXCEL的VBA吧,如果是这样的话就是进程外的VBA来调用CAD的功能,这样速度会很慢,要想速度快不管用什么首要条件是必须进程内运行,用.net也得是进程内运行的才能快,lisp更不用说了,不存在进程外它只能运行在CAD内部
如果你说的VBA是CADVBA的话,那lisp你也不用考虑了速度不会有区别,用vb.net进程内运行的话会提速,C++的话需要时间和精力成本来学习,估计你等不了
如果你用的是EXCELVBA得到的结果,那你可以试用一下CADVBA,速度也会提升非常多,要保密的话你也可以用.net或其它语言把VBA关键代码封装成DLL在CADVBA或lisp调用启动一下,这样的成本投入非常低,整体换语言的话动作是比较大的,vb.net应该是你的首选,其次是C#
总之可以有多种组合,得到不同的运行速度 1、商业化,除非没打算设置任何限制,不然首先需要考虑破解风险吧,应该首选C或者C++?或者使用C#(前提是.NET Native已经可用),其他语言我不了解;
2、考虑执行效率的话,解释型语言(比如Python)肯定是要差一些,但如果软件以后不会有太多变化,执行效率也没有太高要求的话,也不是不能用;
3、考虑学习成本和开发难度,于你而言,首推C#和VB.NET,学习起来应该更容易一些,需要做界面的话也比较方便,然后是Python,学习难度适中,可用的库足够多,计算方面的功能更容易实现,最后是C++,学习难度较大,需要针对不同机器编译对应的软件版本。
以上仅是根据自己的经验给的一点建议,可能比较局限。 如某位大佬所说。。外部com都很慢,,,Cpython外部com的话,比lisp还慢得多。。Ironpython的话,跟C#又有什么区别呢? 一般c+ c++吧 lsp 简单易学:handshake:lol 我以前一玩过VBA,后来改VB.Net了。 这个移植比较容易。 MATLAB是贵公司开发的?还是说,只是一个类似于MATLAB的程序? lzspain 发表于 2024-2-6 15:30
MATLAB是贵公司开发的?还是说,只是一个类似于MATLAB的程序?
用Matlab开发了个软件,就是用来设计一种产品,可能没说清楚 mikewolf2k 发表于 2024-2-6 19:02
一个建议,可以考虑生成dxf,跳过acad这一步,应该需要学习的内容相对较少。
能稍微解释下两者的区别吗,不是很理解 如果绘制逻辑比较固定,那就用AuotLISP开发驱动AutoCAD软件绘图,若是驱动三维数模就用Ilogic,然后调用外部的EXCEL数据作为输入即可。应该是比较好的解决方案。