1.ArchiCAD二开入门
2.opencascade环境配置教程|vs2019
3.(五) Geometries
ArchiCAD二开入门
探索BIM世界中的ArchiCAD:入门指南 在BIM技术的大海中,Rhino和SketchUp以其直观易用赢得了初学者的青睐,Revit紧随其后,而ArchiCAD以其复杂性显得与众不同。Revit生态系统以其丰富的资源和广泛的接纳度占据首位,SketchUp和Rhino则稍逊一筹,港股 天源码头ArchiCAD的生态系统则相对较弱,尤其在方案设计公司,SketchUp更为常见,部分机构则在探索ArchiCAD的独特功能。 开发权限与入门门槛 想要进入ArchiCAD的二次开发世界,你需要首先注册开发者权限,申请Developer id和Local Id。这个过程可能略显繁琐,但这也反映出ArchiCAD作为小众软件的特性。 开发环境搭建 从官网下载官方SDK,并确保与你的ArchiCAD版本匹配。推荐使用Visual Studio 作为开发环境。在开始创建Addon项目时,遵循以下步骤:VS项目设置: 选用SDK提供的multimap源码解析模板,创建新项目,并整理文件结构,Libraries存放库,Resources包含资源,Src存放源代码,确保引用顺序的合理性。
头文件管理: 在引用API时,确保先引入"APIEnvir.h",以避免编译过程中的常见问题。
代码挑战与调试 在编写插件代码时,比如在"MenuCommandHandler"中创建交互功能,尝试创建MessageBox进行测试。调试过程中,可以使用"Add-On Manager"或Visual Studio附加到ArchiCAD进程。如果在Demo模式下工作,可能需要修改MDID并遵循特定的调试步骤。 在Visual Studio中,务必指定ArchiCAD的安装路径,并在Command Arguments中添加"-DEMO"标志。wordcount源码解析对于Native代码的调试,你需要选择"Native"类型,并在"Debug -> Attach to process"中连接到运行中的进程。 总结与启示 尽管ArchiCAD的二次开发道路充满挑战,但掌握这些基础知识后,你将能够深入挖掘其潜力,为建筑设计带来独特解决方案。每一步都需要耐心和细心,但每一次代码的运行,都是你迈向ArchiCAD二开世界的重要一步。opencascade环境配置教程|vs
配置环境
对OpenCASCADE的配置教程,旨在帮助用户快速上手,解决配置过程中的常见问题。本文将详细覆盖获取源代码、编译、链接操作,以及处理环境配置时可能遇到的常见问题。欢迎提出疑问,共同探讨。跑跑钓鱼源码
### 什么是OpenCASCADE?
OpenCASCADE是一个专为几何计算设计的C++库,提供Python和C++两种使用方式。它广泛应用于CAD领域,支持建模、计算以及文件输入输出,常见格式为.BRep。与CGAL相比,虽然都是几何计算库,但应用领域不同,OpenCASCADE在CAD行业中的知名度更高。
### OpenCASCADE类的继承关系
OpenCASCADE的头文件结构复杂,主要分为三类:GP、Geom、TopoDS。GP类包含基本单位,如point和vector;Geom类提供几何构型;TopoDS类用于复杂几何构型。GP类通过GC方法与Geom类交互,Geom类与TopoDS类通过BRepBuilderAPI实现转换。TopoShape类是jq 读取源码形状的基类,其子类包括vertex、Edge、Wire、mesh、Solid等。
### 下载源代码
从官方网站下载OpenCASCADE源代码,推荐选择源码版本,并确保下载第三方库时选择x位。具体操作指南可参考相关文档。
### Visual Studio环境配置
配置Visual Studio环境,解决编译和链接问题。编译将源代码转换为obj文件,而链接则将多个obj文件与库文件合并生成可执行文件。lib文件包含目标代码,dll文件包含函数实现,pdb文件用于调试。
#### 编译和链接
编译阶段处理源代码语法、引用头文件的错误;链接阶段关注库文件的设置,确保正确路径和版本匹配。
#### lib、dll、pdb文件关系
lib文件包含静态库代码,链接时直接并入;dll文件为动态库,包含函数实现;pdb文件用于调试时显示源代码信息。
#### 编译错误和链接错误
编译错误主要在语法、头文件引用上;链接错误涉及库文件缺失、版本不匹配等问题。解决方法包括配置依赖库路径、添加lib和dll文件路径。
### 链接错误解决步骤
配置依赖库路径、添加准确的lib库文件、在调试器工作环境添加dll和pdb文件路径。使用Far Manager工具查找未识别的符号,通过十六进制函数名手动在Visual Studio中添加库名。
### 个人简介
本文作者为深圳在读研究生,研究方向为BIM/CIM,旨在分享配置OpenCASCADE的学习过程及问题记录。
### 参考链接
提供详细的操作指南和文档链接,以便用户深入学习和实践。
(五) Geometries
本文主要介绍以下内容:
专栏代码地址: github.com/ue/three....
本文代码地址: github.com/ue/three....
在three.js概念里,mesh是由几何体Geometry和材质Material组成的,在源码Mesh.js可以看到之间的关系:
Mesh = Geometry + Material
为什么会有Mesh三角网的概念呢?
首先我们要回顾下图形渲染管线了。
所以,从上图可以理解:
Geometry: 就是在准备顶点数据,对应Vertex处理过程; Mesh: 就是对应的Triangle三角面处理过程; Material:对应Fragment片元处理过程,对每个三角面片进行着色、贴图等等处理;
几何体,就是在准备一堆顶点数据,主要包括顶点数据、颜色数据、UV贴图数据、法向量数据等等;简单的说,几何体就是数据源,如果你对如何通过三角面片拼接成几何体非常了解,完全可以自己组织数据,不幸的是,这样操作不仅麻烦,而且也是非常困难的事情。所以,three.js内置常用的几何体,供大家直接使用,然后控制Position、Scale、Rotation、visible等空间属性,来操控物体。
Three.js一共有 种内置的图元。
简单整个例子,了解下使用流程,其他几何体触类旁通,参考three.js官网即可。
参考代码:
执行命令:
运行后,场景中多一个Line。
运行后,多出一个三角锥:
为什么即存在Geometry,又存在BufferGeometry?
说白了,Geometry更适合于人来理解,自定义的地方比较多,但性能比较低一些;
BufferGeometry更适合计算机来理解,自定义的地方很少,适合对图形学非常了解的人使用,但是性能很高。
内置的几何体,都是一些非常基础的模型,可以使用这些基础模型组装成,搭积木的方式,组成非常复杂的场景。
目前国内,数字产业化搞得如火如荼,各个行业都要数字化,所以数据的来源也是非常复杂的,多种多样的,比如:BIM行业的Revit数据模型、CAD图纸,GIS行业的各种数据要素、倾斜摄影、tiles,可以参考CesiumLab的数据转换这张图。
最终都会将各行各业的数据进行转换,轻量化,瓦片化等等技术手段,传输给Three.js的BufferGeometry,进行渲染;
或者将数据通过Datasmith的插件,转换数据转换成Unreal Engine的资产进行渲染。
后期会针对熟悉的行业数据进行一一分析,探讨应用场景。
图形学分为三大部分,几何、渲染、动画。