Solids++:三维几何建模内核的进化传奇

Solids++ 简介

Solids++ 是一个用 C++ 语言编写的全功能几何建模内核。支持处理边界表示模型(BRep)和网格模型。它提供了一个非流形拓扑(Non-Manifold Modeling, NMM)表示和基于 NURBS 的曲线、曲面。支持的作包括布尔、圆角、抽壳、曲面细分等。
Solids++架构
Solids++架构图
拓扑对象表达
在这里插入图片描述
图片来自官网

进化历史

起源:1996 - 2002,技术奠基

1996 年,IntegrityWare 公司正式成立,总部位于加利福尼亚州圣地亚哥,其成立的初衷便是致力于提供先进的几何建模技术,而 Solids++ 几何建模内核的开发便是公司早期的核心任务。在那个时期,市场上已经存在如 Parasolid 和 ACIS 等知名的建模内核,它们在机械设计领域占据着重要地位。但 IntegrityWare 公司看到了市场对于专注于快速查询和分析工具的建模内核的需求,于是 Solids++ 应运而生。

Solids++ 采用 C++ 语言编写,具备了当时先进的几何建模功能,如 3D 布尔运算、圆角处理、抽壳等,这些功能都是现代几何建模中不可或缺的基础操作。3D 布尔运算允许对三维模型进行并集、交集、差集等操作,使得复杂模型的构建和修改变得更加灵活;圆角处理能够在模型的边缘创建平滑的过渡,增加模型的真实感和美观度;抽壳则可以将实体模型内部掏空,形成具有一定壁厚的壳体结构,这在产品设计中非常常见。

与 Parasolid 和 ACIS 等专注于机械设计的建模内核不同,Solids++ 将重点放在了快速查询和分析工具上。这种差异化的定位使得 Solids++ 在一些特定领域展现出独特的优势,在精确 NURBS 光线追踪、精确距离测量、CAD 数据曲面细分、数据转换等应用中找到了广阔的应用空间。

在精确 NURBS 光线追踪方面,Solids++ 能够实现对光线在复杂曲面模型中的传播路径进行精确模拟。这对于光学设计、计算机图形学等领域来说非常重要,通过光线追踪技术,可以实现逼真的光影效果,为虚拟场景的渲染提供更加真实的视觉体验。在设计一款新型光学仪器时,利用 Solids++ 的光线追踪功能,可以准确地模拟光线在镜片、反射镜等光学元件中的传播和反射,从而优化仪器的光学性能,提高成像质量。

CAD 数据曲面细分是将 CAD 模型中的曲面进行细分处理,以提高模型的细节表现和光滑度。这在工业设计、逆向工程等领域有着广泛的应用,在逆向工程中,通过对扫描得到的点云数据进行曲面重建,并利用 Solids++ 的曲面细分功能,可以得到更加精确和光滑的 CAD 模型,为后续的产品制造和改进提供基础。

数据转换功能则使得 Solids++ 能够在不同的 CAD 格式之间进行数据交换,打破了不同软件之间的兼容性壁垒。在实际的产品设计和制造过程中,往往需要使用多种不同的 CAD 软件,通过 Solids++ 的数据转换功能,可以方便地将一个软件中的模型数据导入到另一个软件中进行进一步的设计和分析,提高了工作效率。

拓展:2002 - 2006,应用探索

2002 年,IntegrityWare 公司在内部开设了一个新部门 ——nPowerSoftware,这标志着 Solids++ 的发展进入了一个新的阶段。nPowerSoftware 部门的成立,旨在基于 Solids++ 内核开发一系列应用程序,进一步拓展 Solids++ 的应用领域,为用户提供更加丰富和实用的功能。

最初,nPowerSoftware 部门专注于为 3DS Max、Maya 和 Rhino 等知名的三维建模和动画软件平台开发插件。这些插件的开发,充分利用了 Solids++ 内核的强大功能,为这些软件平台增添了独特的优势。

在 3DS Max 中,通过集成基于 Solids++ 内核开发的插件,用户可以实现更加精确的 NURBS 建模和光线追踪效果,为动画场景的渲染提供更加逼真的视觉效果。在电影特效制作中,利用该插件可以创建出高精度的虚拟物体和场景,使得电影画面更加震撼和真实。

在 Maya 中,插件为艺术家们提供了更加便捷的多边形建模和曲面细分工具,大大提高了他们的工作效率和创作自由度。在制作一款大型游戏的角色模型时,艺术家可以使用这些插件快速地创建出复杂的角色外形,并通过曲面细分功能实现光滑的表面效果,从而为游戏角色赋予更加生动的形象。

在 Rhino 中,插件则增强了其在工业设计和机械设计方面的能力,使得设计师能够更加方便地进行复杂零件的设计和分析。在设计一款新型汽车发动机的零部件时,设计师可以利用插件在 Rhino 中进行精确的尺寸设计和模拟分析,确保零部件的性能和质量符合要求。

在开发插件的同时,通过实际应用中用户的反馈和测试,不断对内核进行调整和升级,以提高其性能和稳定性,插件产品和内核之间形成良性迭代

变革:2006 - 2007,技术转型

2006 - 2007 年,技术领域发生了重大变革,IntegrityWare 公司也敏锐地捕捉到了这一趋势,开始对 Solids++ 进行技术转型。公司决定尝试使用 C# 语言进行开发,它具有简洁、类型安全、面向对象等特点,在开发效率和代码维护性方面具有明显优势。

为了实现这一转型,IntegrityWare 公司投入了大量的人力和物力,将 Solids++ 的代码逐步转换为 C# 代码。这个过程并非一帆风顺,需要解决许多技术难题。C# 语言与 C++ 语言在语法、内存管理、编程范式等方面存在诸多差异,在语法上,C# 语言更加简洁明了,采用了更加现代化的语法结构,如属性、委托、事件等,而 C++ 语言则更加灵活,但语法相对复杂。在内存管理方面,C# 语言通过垃圾回收机制自动管理内存,减少了内存泄漏的风险,而 C++ 语言需要手动管理内存,对开发者的要求较高。在编程范式上,C# 语言更加注重面向对象编程,强调封装、继承和多态性,而 C++ 语言则支持多种编程范式,包括面向过程编程和面向对象编程。

将 C++ 代码转换为 C# 代码时,需要对代码结构进行重新设计和调整,以适应 C# 语言的特点。还需要解决代码兼容性问题,确保转换后的代码能够正常运行。在转换过程中,可能会遇到一些 C++ 特有的库和函数在 C# 中无法直接使用的情况,这就需要寻找替代方案或者重新实现这些功能。

经过一系列的努力,IntegrityWare 公司成功地将 Solids++ 的部分代码转换为 C# 代码,并基于此推出了 Solids#。Solids# 继承了 Solids++ 的核心功能,同时充分发挥了 C# 语言的优势。据介绍,Solids#取得的最差结果是比 C++ 慢两倍,而多数功能在 C# 上表现出更好的性能,且由于 C# 在算法优化和并行处理上的便利性,经常可实现10倍的效率提升。运行在 Solids# 内核上运行的应用程序,开发时间缩短了 4 到 10 倍。

与 Solids++ 相比,Solids# 在开发效率上有了显著提升,C# 语言的简洁语法和强大的开发工具使得开发者能够更快地编写和调试代码。在维护性方面,C# 语言的代码结构更加清晰,易于理解和维护,降低了后期维护的成本。

在性能方面,虽然 C# 语言在某些方面可能不如 C++ 语言高效,但随着硬件技术的不断发展和 C# 编译器的优化,Solids# 的性能表现也能够满足大多数应用场景的需求。在一些对性能要求不是特别高,但对开发效率和代码维护性要求较高的项目中,Solids# 展现出了更大的优势。在一些小型的 CAD 项目中,使用 Solids# 进行开发可以大大缩短开发周期,同时保证软件的质量和稳定性。

发展:2007 - 2018,新核崛起

从 2007 年开始,IntegrityWare 公司将大部分新开发重点放在了 Solids# 内核上,这一战略决策为公司的发展带来了新的机遇和突破。基于 Solids# 内核,公司为 Modo 和 SOLIDWORKS 制作了插件产品,这些插件产品充分发挥了 Solids# 内核的优势,为用户提供了更加丰富和强大的功能。
在这里插入图片描述

在 Modo 中,插件利用 Solids# 内核的高效算法和灵活的数据结构,实现了更加流畅的建模操作和更加精确的模型处理。用户可以在 Modo 中使用这些插件进行复杂的多边形建模和曲面建模,通过对模型的细节调整和优化,创建出更加逼真和精细的三维模型。在制作一款高端游戏的场景模型时,使用基于 Solids# 内核的插件,设计师可以快速地创建出各种地形、建筑和道具模型,并通过对模型的材质和光影效果进行调整,营造出逼真的游戏场景。

在 SOLIDWORKS 中,插件则与 SOLIDWORKS 的原有功能紧密结合,为机械设计和产品开发提供了更加便捷和高效的工具。在进行机械零件的设计时,插件可以帮助设计师快速地进行零件的参数化设计和装配分析,通过对零件的尺寸、形状和装配关系进行优化,提高产品的性能和质量。插件还可以实现与其他软件的集成,如与分析软件集成,实现对产品的力学性能、热性能等进行模拟分析,为产品的设计和改进提供依据。

作为开发插件产品工作的一部分,IntegrityWare 公司还开发了用于细分曲面建模的 Solids# 应用程序以及从细分曲面到 NURBS 的转换功能。细分曲面建模是一种在计算机图形学和三维建模中广泛应用的技术,它通过对初始的低分辨率模型进行细分,逐步增加模型的细节和精度,从而创建出更加光滑和复杂的曲面模型。Solids# 应用程序在细分曲面建模方面具有独特的优势,它能够快速地对模型进行细分处理,并且在细分过程中保持模型的拓扑结构和几何特征的稳定性。在创建一个汽车车身的曲面模型时,使用 Solids# 应用程序进行细分曲面建模,可以从一个简单的初始模型开始,逐步细化模型的细节,最终得到一个光滑、精确的汽车车身曲面模型。

从细分曲面到 NURBS 的转换功能也是 IntegrityWare 公司的一项重要技术成果。NURBS(非均匀有理 B 样条)是一种广泛应用于 CAD/CAM 领域的数学模型,它能够精确地表示各种复杂的曲线和曲面。将细分曲面转换为 NURBS 模型,可以使得模型在 CAD/CAM 系统中得到更好的应用和处理。在将一个通过扫描得到的物体表面的细分曲面模型转换为 NURBS 模型后,就可以利用 CAD/CAM 系统对该模型进行进一步的设计、分析和制造。

此后,IntegrityWare 公司还致力于新逆向工程技术的开发。逆向工程是一种通过对已有产品进行扫描、测量和分析,从而获取产品的三维模型和设计数据的技术。它在产品设计、制造、维修等领域都有着广泛的应用。IntegrityWare 公司开发的新逆向工程技术,利用 Solids# 内核的强大功能,实现了对有机扫描网格和雕刻网格(如 ZBrush 网格)的高效处理和转换。SOLIDWORKS 的 Power Surface RE 插件和 Cyborg3D Mesh2CAD 独立产品就是利用这种逆向工程技术的典型代表,这两款产品在逆向工程有机扫描网格和雕刻网格方面处于行业领先地位。

SOLIDWORKS 的 Power Surface RE 插件为 SOLIDWORKS 用户提供了强大的逆向工程功能,它能够快速地将扫描得到的点云数据转换为高质量的 NURBS 曲面模型。在进行产品的仿制或改进时,使用该插件可以通过对已有产品的扫描数据进行处理,快速地得到产品的三维模型,并在此基础上进行设计优化和创新。

Cyborg3D Mesh2CAD 独立产品则是一款专门用于逆向工程的软件,它能够将各种类型的扫描网格和雕刻网格转换为 CAD 兼容的 NURBS Breps(边界表示)模型。该产品具有操作简单、转换精度高、处理速度快等优点,在文物保护、艺术设计、工业制造等领域都得到了广泛的应用。在文物保护领域,使用 Cyborg3D Mesh2CAD 可以对文物进行数字化扫描和建模,从而实现对文物的永久保存和虚拟展示;在艺术设计领域,艺术家可以使用该软件将自己的雕刻作品转换为数字模型,方便进行后期的编辑和制作;在工业制造领域,该软件可以帮助企业快速地获取竞争对手产品的设计数据,为产品的研发和创新提供参考。

云计算

得益于.NET Core 的发展,Solids# 已实现向 Mac、Linux、Unix 等所有.NET Core 及.NET Standard 平台的无缝迁移,这使其成为开发云原生应用的优质选择;而即将发布的.NET Core 3.0 版本将支持 WPF,还能让 IntegrityWare 旗下的 Cyborg3D 应用框架具备跨平台能力。

产品家族

内核能力
在这里插入图片描述基于 C# 的全功能几何建模内核
在这里插入图片描述基于Solids#的APP,将细分曲面、网格模型、扫描模型转为NURBS曲面
在这里插入图片描述基于最新的WPF技术提供3D应用程序开发框架
基于C++开发的全功能几何建模内核
在这里插入图片描述Polygon Optimization Library,将CAD模型转换为高质量、水密网格模型
在这里插入图片描述数据导入导出,支持IGES、STEP、SAT、openNURBS

新篇:2018 年底至今,多元许可

从 2018 年底开始,IntegrityWare 公司开启了新的战略布局,开始准备将 Solids# 建模内核、Solid# 应用程序和 Cyborg3D 与 Solids++ 一起作为 OEM 库产品进行许可。这种多元许可模式的推出,为 Solids++ 的发展带来了新的机遇和挑战。

作为 OEM 库产品进行许可,意味着 Solids++ 及相关产品可以被其他公司集成到自己的软件或系统中,为其提供核心的几何建模功能。这不仅扩大了 Solids++ 的市场覆盖面,还能够满足不同行业和领域的多样化需求。在制造业中,企业可以将 Solids++ 集成到自己的产品设计软件中,为设计师提供强大的建模工具,提高产品设计的效率和质量;在教育领域,学校可以将 Solids++ 应用于工程类课程的教学中,帮助学生更好地理解和掌握几何建模知识和技能。

在当今数字化转型加速的时代,制造业正朝着智能制造、数字化设计与制造的方向发展。Solids++ 凭借其强大的几何建模功能和高效的算法,能够在数字化设计与制造流程中发挥关键作用。通过与其他先进技术如人工智能、物联网等的融合,Solids++ 有望为智能制造提供更加智能化、自动化的几何建模解决方案,实现产品设计、制造和分析的全流程数字化和智能化。利用人工智能技术,Solids++ 可以根据用户的设计需求自动生成多种设计方案,并通过对这些方案的分析和评估,为用户提供最优的设计建议;通过与物联网技术的结合,Solids++ 可以实时获取生产设备的运行数据,对产品的制造过程进行实时监控和优化,提高生产效率和产品质量。

随着虚拟现实(VR)和增强现实(AR)技术的不断发展,它们在设计、教育、娱乐等领域的应用也越来越广泛。Solids++ 在这些新兴领域也有着巨大的发展潜力。在 VR/AR 设计场景中,Solids++ 可以为用户提供更加真实、直观的几何建模体验,让设计师能够在虚拟环境中更加自由地进行创意设计和模型构建。在教育领域,利用 VR/AR 技术结合 Solids++,可以创建沉浸式的学习环境,帮助学生更好地理解和学习几何知识和建模技术。

在未来,随着技术的不断进步和市场需求的不断变化,Solids++ 将继续面临挑战和机遇。IntegrityWare 公司需要不断加大研发投入,持续改进和优化 Solids++ 及相关产品的性能和功能,以适应新技术趋势下的市场需求。加强与其他企业和机构的合作与交流,共同推动几何建模技术的发展和应用,也是 Solids++ 未来发展的重要方向。

核心能力

Solids++ 作为一款功能强大的几何建模内核,拥有一系列令人瞩目的核心能力,这些能力使其在众多建模软件中脱颖而出,广泛应用于多个领域。

  1. 3D 布尔运算:Solids++ 支持对传统流形实体对象进行布尔联合、相交和差分操作 ,能够处理曲线、实体、曲面和非流形对象的各种组合,并且支持非流形结果。

  2. 圆角处理:提供曲面圆角和拓扑圆角功能。曲面圆角化可以处理两个曲面并在它们之间生成一个或多个圆角,用户可以通过多种选项控制创建的曲面类型及其修剪方式。拓扑圆角工具则对 Brep 对象的边缘进行圆化,该对象可以是封闭实体、开壳或非流形对象,亮点包括可变半径圆角、G2 和 G3 混合曲面、大半径情况。

  3. 抽壳:扩展曲面算法在凸边处扩展并重新相交曲面,舍入算法产生精确的偏移量。

  4. 精确 NURBS 光线追踪:Solids++ 具备高度优化的多线程光线发射工具,能够每秒向 NURBS 表面和 Brep 对象发射数万条光线,这对实时干扰检测和光学分析非常有用。在光学设计领域,利用该功能可以精确模拟光线在光学元件中的传播路径和反射折射情况,从而优化光学系统的性能,提高成像质量。

  5. 精确距离测量:可以在复杂的三维模型中精确计算不同点、线、面之间的距离。

  6. CAD 数据曲面细分:能够根据基于 NURBS 的边界表示法(BREP)生成多边形近似值,用户可以设置所有的细分参数和公差,以获得适合特定应用的各种网格,并且能从实体生成 “水密” 网格(无裂纹或缝隙)。

  7. 据转转换:提供导入和导出标准 CAD 格式(例如 STEP、IGES、SAT 和 openNURBS)的能力。

  8. 多边形建模与处理:包含一个功能齐全的多边形建模内核,支持布尔运算、细分、网格清理、四网格划分、射线发射、拓扑查询等操作 。还拥有一个高度优化的结构,用于处理大型网格,如扫描产生的网格,并集成了边界体积层次结构,可实现非常快速的最近点测量和光线跟踪。

IntegrityWare 大事记

时间事件
1996从 GeomWare 获得 NLib 授权许可,开始开发 TSLib, Trimmed Surface Library
1997.07发布 TSLib 1.0 在这里插入图片描述
1997.12销量:7
1998.01发布 ASPin 1.0,Advanced Surfacing Plug-in 在这里插入图片描述
1998.04与SMS(Solid Modeling Solutions)、GeomWare三方达成合作协议,集成三方的算法库,共同以 SMLib(Solid Modeling Library) 的名义进行销售
1998.09发布 SMLib 1.0
1998.09发布 GSLib/TSLib/ASPin 2.0
1998.12销量新增:13
1999.10发布 SMLib 2.0,以及 GSLib/TSLib/ASPin 3.0 在这里插入图片描述
1999.12销量新增:20,来自 SMLib 的收入持续增长
2000.04开发新产品 POPLib,聚焦多边形建模
2000.10发布 SMLib 3.0
2000.12发布 GSLib/TSLib 4.0,并将 ASPin 合并到 GSLib 产品中
2000.12IntegrityWare 自有产品销量累计接近 50,来自 SMLib 的销量接近 20
2000.01IntegrityWare 的多边形库产品网站 www.PolygonLibrary.com 上线
2000.03发布 POPLib 1.0,本质上是一款用于 NURBS 裁剪曲面与实体细分的工具在这里插入图片描述
2001.09发布 POPLib 2.0,包括布尔运算、射线求交、网格简化
2002.01戴夫・吉尔(Dave Gill)受雇负责领导采用 IntegrityWare 技术的新产品开发工作
2002.07IntegrityWare 助力成立了 nPower Software 有限责任公司(官网:www.nPowerSoftware.com),该公司专注于在图形插件领域应用 IW 技术
2004.02IntegrityWare 推出了 SOLIDS++—— 下一代建模内核,包括了 SMLib 不具备的特性;SMLib + Adv. Surfacing + ... = SOLIDS++
2004与 Solid Modeling Solutions 的联盟协议终止

早期客户

  • 福特汽车
  • 马自达 (日本)
  • 本田(美国)
  • 日立
  • Alias (formerly Alias/Wavefront)
  • Bentley Systems, Inc.
  • ProSTEP GmbH
  • ObjectLogic, Inc. (First Web-based CAD Viewer - went on to become part of PTC Windchill)
  • Applied Automation Technologies, Inc.
  • Robert McNeel and Associates
  • Engineering Animation, Inc.
  • Okino Computer Graphics
  • Softek
  • Opticad Corporation
  • 天狼星系统公司
  • Intercim
  • Datakit
  • AIM Technologies
  • Cognitens 3D Vision Systems Ltd.
  • MYCRONA GmbH
  • 皮克斯
  • Helmel Engineering - builds CMM machines

白皮书

白皮书内容
IntegrityWare_Blending_White_Paper混合曲面生成
IntegrityWare_Derivative Surface White Paper倒数曲面
IntegrityWare_Filleting_White_Paper过渡圆角曲面生成
IntegrityWare_Rail Sweeping White Paper轨迹扫掠曲面生成

参考材料

  1. IntegrityWare官网
  2. IntegrityWare官网快照
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值