4

是否可以不用 C++ 做 CAD/CAM 软件?我的公司使用 c/C++ 开发他们的软件,但那是 10 多年前的事了。今天,有很多遗留代码切换会迫使我们摆脱,但我想知道实际风险是什么。我们有很多用于刀具路径计算、特征识别和模拟以及 3D 渲染的数学算法,我想知道 C# 是否可以处理所有这些而不会造成很大的性能损失。

用 c# 重写这样的算法是一个乌托邦,还是该语言只处理 UI。我们不是在讨论游戏开发(光环 3 或使命召唤),那么 CAD/CAM 真正需要多少处理?

任何人都可以在这件事上启发我吗?我的大多数同事都是铁杆 C++ 程序员,虽然我用 C++ 编程,但我喜欢 .NET,但除了基本 UI 之外,我很难向他们推销 .NET。考虑在这样的领域切换到 .NET 是否有意义,或者这不是一个明智的想法?

谢谢

4

6 回答 6

12

如果您有很多需要重写的遗留代码,我认为切换到其他语言没有商业意义。即使使用不同的语言有好处(这是有问题的),测试和调试新代码的成本也将超过它们。您还拥有一个 C++ 专家的开发团队。当他们加快学习新语言的速度时,生产力会大幅下降。

于 2009-01-16T19:49:38.680 回答
3

C# 可以与 C++ 代码互操作。您可以开始用 C# 编写新代码,并在需要时让它调用现有的 c++ 代码。它不一定只适用于 UI。查看 C++/CLI 和 C# 互操作方法以获取有关如何将现有 C++ 代码与新 C# 代码一起使用的信息。

另外,我在这里问了一个类似的问题: C# Performance For Proxy Server (vs C++)

于 2009-01-16T19:54:58.467 回答
2

CAD/CAM 应用程序的计算量相当大,速度肯定是选择软件包的标准之一,所以我会警惕转向速度较慢的语言。

您需要非常仔细地考虑切换语言的原因。是因为你不喜欢 C++,还是因为 C# 会带来真正的好处。这很可能会减慢您的应用程序的速度。查看 C++ C# 速度比较。

计算机语言基准游戏 C++ vs C#

以我的拙见,您最好将所有刀具路径计算保留在 C++ 中,如果您确实必须将任何代码移至另一种语言,请将其移至用户可以轻松编辑的脚本语言,而无需重新编译。

我每天在工作中都使用 CAD/CAM 应用程序,并且 UI 中有许多让我紧张的东西。如果我能找到源头,它们将是简单的修复。

如果您的公司制作了一个 CAD/CAM 应用程序,它的 UI 是用我可以调整的脚本语言(Lua、Python 等)编写的,我会买一份。

雨果

于 2009-01-16T22:01:32.643 回答
2

看看pythonocc。它为您提供了一个包装 OpenCASCADE CAD 内核的 python 模块。OpenCASCADE 是我所知道的唯一的行业实力开源内核。不错的功能是 STEP 和 IGES 支持以及从 BRep 数据生成 FEM 网格的能力。

于 2010-07-07T00:17:59.833 回答
0

您需要考虑的另一件事是平台独立性 - 如果您/您的公司有可能需要将您的 CAD 软件迁移到 Linux/Unix(当然,对于业务决策),那将是非常痛苦的。目前,即使是带有 MFC/Win32 调用的 C++ 也让我们很头疼……

于 2009-02-25T14:10:58.923 回答
0

开放设计联盟库是跨平台的。他们最近推出了其库的 .NET 版本的测试版。有关更多详细信息,请参阅我对C# 中的开源 cad 绘图 (dwg) 库的回答。

话虽如此,我同意这里的其他答案 - 如果它没有损坏,请不要修复它,无论是代码还是编码器。MSFT 仍然使用 C++,ODA 也是如此——他们的代码库源自 C++ 并为 .NET 包装。

于 2009-03-25T03:07:07.647 回答