当前位置: 首页 > news >正文

【Xbim+C#】创建圆盘扫掠IfcSweptDiskSolid

基础回顾

https://blog.csdn.net/liqian_ken/article/details/143867404
https://blog.csdn.net/liqian_ken/article/details/114851319

效果图

在这里插入图片描述

在这里插入图片描述

代码示例

  1. 在前文基础上,增加一个工具方法:
public static IfcProductDefinitionShape CreateDiskSolidShape(IfcStore model)
{IfcSweptDiskSolid solid = model.Instances.New<IfcSweptDiskSolid>(so =>{// 为扫描模型创建扫描曲线so.Directrix = model.Instances.New<IfcTrimmedCurve>(c =>{c.SenseAgreement = false;c.MasterRepresentation = IfcTrimmingPreference.CARTESIAN;c.Trim1.Add(model.Instances.New<IfcCartesianPoint>(pt => pt.SetXYZ(0, 2000, 0)));c.Trim2.Add(model.Instances.New<IfcCartesianPoint>(pt => pt.SetXYZ(2000, 0, 0)));c.BasisCurve = model.Instances.New<IfcCircle>(x =>{x.Radius = 1000;x.Position = model.Instances.New<IfcAxis2Placement3D>(a =>{a.Location = model.Instances.New<IfcCartesianPoint>(pt => pt.SetXYZ(0, 0, 0));});});});so.Radius = 100;so.InnerRadius = 100;});var rep = model.Instances.New<IfcShapeRepresentation>(r =>{r.Items.Add(solid);});return model.Instances.New<IfcProductDefinitionShape>(s => s.Representations.Add(rep));
}

关于IFC裁剪线IfcTrimmedCurve的参数理解可以参考:https://blog.csdn.net/liyazhen2011/article/details/82259083

涉及了扫掠方向、圆心、半径的设置。


  1. 调用:
public void TestMethod1()
{var model = IfcUtil.MakeIfcStore();using (var tran = model.BeginTransaction()){var shape = IfcUtil.CreateDiskSolidShape(model);var arch = IfcUtil.CreateFlowFitting(model);arch.Representation = shape;var building = IfcUtil.CreateBuilding(model);building.AddElement(arch);var site = IfcUtil.CreateSite(model);site.AddBuilding(building);var project = IfcUtil.CreateProject(model);project.AddSite(site);tran.Commit();}model.SaveAs("./B.ifc");
}
http://www.lryc.cn/news/489027.html

相关文章:

  • IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发
  • 利用oss进行数据库和网站图片备份
  • Excel - VLOOKUP函数将指定列替换为字典值
  • 实验室管理平台:Spring Boot技术构建
  • 操作系统进程和线程——针对实习面试
  • 使用 cnpm 安装 Electron,才是正确快速的方法
  • 【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
  • 【第八课】Rust中的函数与方法
  • c语言学习25二维数组
  • 如何理解Lua 使用虚拟堆栈
  • 【倍数问题——同余系】
  • 「San」监听DOM变化的方法
  • 如何选择服务器
  • 嵌入式驱动面试总结
  • Uniapp 简单配置鸿蒙
  • 线程池的实现与应用
  • 基于Java Springboot单位考勤系统
  • 近源渗透|HID ATTACK从0到1
  • 【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-block.py
  • 代码随想录算法训练营第五十三天|Day53 图论
  • LeetCode:203.移除链表元素
  • 知识见闻 - 数学: 均方根 Root Mean Square
  • 机器硬件调优
  • 如何更改手机GPS定位
  • HarmonyOS(57) UI性能优化
  • Mysql的加锁情况详解
  • hive3.1.2编译spark3安装包
  • 网络安全,文明上网(1)享科技,提素养
  • ESP32 烧录问题