首页 » 软件开发 » 选择用于 AutoCAD 开发项目的编程语言(开发项目选择语言功能编程语言)

选择用于 AutoCAD 开发项目的编程语言(开发项目选择语言功能编程语言)

萌界大人物 2024-07-24 04:28:03 0

扫一扫用手机浏览

文章目录 [+]

主要有两种:AutoLisp ObjectArx

1 AutoLISP ,脚本语言,开发小功能首选,速度慢,功能有限。
但开发后,绝大多数不经修改就可运行于所有CAD版本

2.ObjectArx,分为C++接口或DotNet接口开发。
功能强大,速度快。
不同CAD版本适配使用不同的VS开发环境,编译成不同的版本,不同版本之间不兼容。
适合大型功能系统开发。
但维护及修改工作量较大。

选择用于 AutoCAD 开发项目的编程语言(开发项目选择语言功能编程语言) 软件开发
(图片来自网络侵删)

我们一直在开发一个基于 ObjectARX(室内设计)和 VB(GUI)的相当复杂的 AutoCAD 应用程序,我们想知道,在 C#(?)的迁移之后,我们是否可以在实体控制、性能等方面保持相同的结果。
简而言之,是时候离开棘手而痛苦的 ARX 世界,拥抱 DotNet 天堂了 吗?

多年来,我多次被问到在 AutoCAD 开发项目中使用什么“最佳”API。
即使技术本身发生了变化,答案也非常一致。
我几乎总是说“这取决于”(是的,我知道这让我听起来像个律师)。
选择取决于许多因素,其中一些我试图在这里列出,没有特别的顺序:

遗留代码库——是否由现有的遗留代码库,它是否适合您的客户?如果是这样,是否有从传统语言到您正在考虑采用的语言的互操作性路径?功能覆盖——语言需要什么类型的功能?它是否需要核心的数字运算能力,还是只需要一个花哨或直观的 GUI?这些要求如何与 a) 语言和 b) 通过 AutoCAD 的特定 API 公开的 API 集的功能相匹配?表现——与上一个问题相关的是问题或表现。
您对正在考虑的语言性能的了解是否与客户要求的性能相匹配?与其他技术集成——您是否需要与其他产品或服务集成,并且该语言是否有支持此类集成的跟踪记录?版本支持- 您需要支持的平台(操作系统和 AutoCAD 版本)是否都允许使用这种语言?技能——您和您的同事是否有经验/能力/有信心您将能够学习该语言?当今市场上这些技能的可用性如何——如果您必须雇用某人来编写您的代码,是否很容易找到这些技能,或者它们的稀缺性是否会增加溢价?供应商承诺——供应商(在这种情况下,我们可以将 Microsoft 和 Autodesk 视为主要技术提供商)是否对该技术有长期承诺——不仅在其可用性方面,而且在其发展方面?一个明显的例子是 VBA,除非我在打盹时情况发生了变化,否则它不会作为 64 位版本提供。
这实际上意味着微软方面对这项技术几乎没有长期承诺,这显然限制了 Autodesk 等下游供应商的可能承诺。
支持——您是否有关于这项技术的坚实知识库,以及合格、经验丰富的支持人员?如果您需要在短时间内摆脱困境,您可以打电话给某人吗?

好的,到目前为止,我已经设法回答了大部分个人的问题。
让我们尝试更直接地解决这个问题……

我相信对于当今世界的专业程序员来说,了解许多不同的编程语言和方法是非常有益的。
随着世界不可避免地在您周围发生变化,它会增加您的灵活性。
我还相信,在一个重大项目中使用多种技术——正如大多数开发商所描述的那样——是务实的。

让核心 C++ 开发人员在核心引擎上工作,而 UI 开发人员在 MFC 中工作,这正是我几年前所做的选择(可能是快图CAD室内设计【快图工具】项目启动时)。

我今天的选择——如果实施一个“室内设计”开发项目,无需考虑遗留代码库——将面向一个或多个 DotNet 语言(考虑到 AutoCAD 中托管代码的性能配置文件,它与大多数用途无关紧要的本地 C++ 一样接近,再加上 WinForms 和越来越多的 WPF 提供的 UI 可能性)。

AutoCAD与Windows

我说“一个或多个”的原因是,根据领域的不同,可能会有不同的模块用不同的语言实现的争论:C# 和 MFC 在大多数级别上是相当可比的(这个决定往往是基于客户实现理由做出的;)

但是在函数式编程擅长的某些领域(主要是与数学世界有密切联系的领域,但还有其他领域,例如我在 再加上 WinForms 和越来越多的 WPF 提供的 UI 可能性)。

AutoCAD Technology Cycle

我还会选择 ObjectARX C++吗?我可能会,这取决于需要什么。
今天,自定义对象仍然只能使用 ObjectARX(即 C++)来实现。
在走上实现自定义对象的道路之前,我会仔细考虑可用的替代方案(我们正在继续努力减少当前非常重要的资源投入,以实现目前只能通过自定义对象获得的功能)。
仅当对自定义对象有绝对要求时,我才会选用 ObjectARX C++。

或者当对项目有加密需求,我可能也会选 ObjectARX C++。

当然,拥有同质代码库确实会带来好处:所有代码都使用特定的语言,使用相同的工具,开发人员能够在不同领域进行深入协作,而无需付出额外的努力。
但这确实是一个理想化的场景,在这个特定的开发人员的案例中,我会非常仔细地研究迁移整个代码库所带来的好处:我怀疑 ObjectARX 组件移植到 DotNet中获益很少,除了拓宽了公司可用的技能基础(从长远来看可能会降低维护成本),但是用更现代的外观更新 MFC UI 可能会带来更切实的好处。
本机 C++ 和托管代码之间的互操作性非常全面,因此应该让生活更轻松,

虽然这实际上并不能回答这个问题——如果不了解更多关于特定场景的信息,我无法做到这一点——这确实更接近了一点,希望能让我在评估各种选项时感觉到我会做什么。

AutoCAD 历史发展线索

如果你想开发一个小而美的功能,提高日常工作效率,那请选用 Autolisp 吧。
他对AutoCAD的具体版本几乎淌有要求。

如果想开发一个大型功能项目,请选择ObjectArx C++吧。
界面使用MFC。
实现统一的开发环境,容易团队协作,项目维护。
更重要的是:可以实现CAD提供的一切接口功能,且速度是极好的又便于加密。

如果不需要一些功能,如自定义对象,加密等。
对界面美观有超乎寻常的需求。
那请选用ObjectArx DotNet吧。

ObjectArx C++ 与ObjectArx DotNet相结合似乎完美组合。
唯一遗憾的是维护增加了一些工作量。

如果你想利用Autolisp等现有资源,请Autolisp/ObjectArx C++ 与ObjectArx DotNet一起使用吧。

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0