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

C# Smart3D Plate Part零件形状提取

image

image

 

image

 

  public class ExportPartShape : BaseModalCommand{public override void OnStart(int instanceId, object argument){base.OnStart(instanceId, argument);var symFile = @"C:\Program Files (x86)\Smart3D\Common2D\Symbol2D\Templates\template.sha";var pp = ClientServiceProvider.SelectSet.SelectedObjects.FirstOrDefault();if (pp == null) return;if (pp is PlatePart){var cp = pp as PlatePartBase;Matrix4X4 bpmt = cp.Matrix;var mt = new Matrix4X4(bpmt);mt.Invert();var ports = cp.GetPorts(TopologyGeometryType.Face, GeometryStage.Current);var p = ports.OrderByDescending(c => c.Area).FirstOrDefault();//ComplexString3d complexString3D;System.Collections.ObjectModel.Collection<ComplexString3d> complexString3Ds;p.GetBoundaries(out complexString3Ds);if (complexString3Ds == null) return;Ingr.RAD2D.Application oSketch2dApplication = (Ingr.RAD2D.Application)MiddleServiceProvider.Sketch2dApplication;oSketch2dApplication.Visible = false;var fn = MiddleUtilities.GetEquivalentProductPath(symFile);var oDoc = oSketch2dApplication.Documents.Add(symFile, false);var oActiveSheet = oDoc.ActiveSheet;foreach (var complexString3D in complexString3Ds){var ents = new System.Collections.ObjectModel.Collection<DrawingObjectBase>();complexString3D.Transform(mt);var curves1 = new System.Collections.ObjectModel.Collection<ICurve>();complexString3D.GetCurves(out curves1);foreach (var cur in curves1.OfType<Curve3d>()){if (cur is Line3d){var l = cur as Line3d;var ccur = oActiveSheet.Lines2d.AddBy2Points(l.StartPoint.X, l.StartPoint.Y, l.EndPoint.X, l.EndPoint.Y);ents.Add(ccur);}else if (cur is Arc3d){var arc = cur as Arc3d;var iscw = arc.Normal.Z > 0;var ccur = oActiveSheet.Arcs2d.AddByCenterStartEnd(arc.Center.X, arc.Center.Y,iscw ? arc.StartPoint.X : arc.EndPoint.X, iscw ? arc.StartPoint.Y : arc.EndPoint.Y,iscw ? arc.EndPoint.X : arc.StartPoint.X, iscw ? arc.EndPoint.Y : arc.StartPoint.Y);ccur.LinearStyle.Color = System.Drawing.Color.Red;ents.Add(ccur);}else if (cur is EllipticalArc3d){var arc = cur as EllipticalArc3d;var ccur = oActiveSheet.EllipticalArcs2d.AddByCenter(arc.Center.X, arc.Center.Y,arc.MajorAxis.X, arc.MajorAxis.Y, arc.MinorMajorRatio,Geom2dOrientationConstants.igGeom2dOrientClockwise, arc.StartAngle, arc.StartAngle + arc.SweepAngle);ccur.LinearStyle.Color = System.Drawing.Color.Yellow;ents.Add(ccur);}else if (cur is BSplineCurve3d){var arc = cur as BSplineCurve3d;int order;int number;System.Collections.ObjectModel.Collection<Position> colPoles;System.Collections.ObjectModel.Collection<double> weights = new System.Collections.ObjectModel.Collection<double>();System.Collections.ObjectModel.Collection<double> kds;arc.GetPolesWeightsKnots(out order, out number, out colPoles, out weights, out kds);var poleArray = colPoles.SelectMany(c => new double[] { c.X, c.Y }).ToArray();var ccur = oActiveSheet.BSplineCurves2d.AddByPoints(order, number, ref poleArray);ccur.LinearStyle.Color = System.Drawing.Color.Magenta;ents.Add(ccur);}var gp= oActiveSheet.Groups.AddByObjects(ents, true);}}string strSymbolFile = $@"C:\{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.sha";oDoc.SaveAsEx(strSymbolFile, SaveAsFilterType.igSaveAsIGR);oDoc.SaveAsEx(Path.ChangeExtension(strSymbolFile,".dwg"), SaveAsFilterType.igSaveAs2000DWG);oDoc.Close(false);Process.Start(strSymbolFile);Process.Start(Path.ChangeExtension(strSymbolFile, ".dwg"));}}}

 

http://www.jsqmd.com/news/4912/

相关文章:

  • 题解:QOJ9619/洛谷13568 [CCPC 2024 重庆站] 乘积,欧拉函数,求和(数论+状压DP)
  • Momentum Gradient Descent(动量梯度下降)
  • Halcon算子——2D几何变换
  • 深入解析:深度解析 CUDA-QX 0.4 加速 QEC 与求解器库
  • Pytest+requests进行接口自动化测试6.0(Jenkins) - 指南
  • 2025钉螺,花螺,田螺,香辣麻辣钉螺,捞汁钉螺,鲜活钉螺,无沙去尾钉螺厂家推荐榜单:全链条生产 + 北部湾原料,破解沙臭空壳痛点钉螺工厂选购指南!
  • insta go2 对比vivo x100pro超广角
  • 《C++程序设计》笔记p4 - 指南
  • ProjectLibre
  • 解析01背包 - 教程
  • 电脑显示器黑屏(闪烁:隔几秒中黑一两秒),向日葵远程正常——DeepSeek问答
  • 实用指南:iOS 26 兼容测试实战,机型兼容、SwiftUI 兼容性改动
  • 深入解析:Tomcat
  • 消息队列Apache Kafka教程 - 指南
  • 9.21~9.27 周总结
  • 大中午记梦
  • 概率/期望 $dp$
  • 计算机毕业设计springboot我国制氢产业专利检索系统的设计与实现 基于Spring Boot框架的中国制氢产业专利检索平台开发与设计 Spring Boot手艺驱动的中国制氢产业专利检索系统构建
  • 9.21~9.27
  • Jetbrains 全家桶激活码激活
  • Arbess从入门到实战(3) - 启用Arbess+GitLab实现Vue.js计划自动化部署
  • 【深度学习计算机视觉】07:单发多框检测(SSD) - 指南
  • MZOI 2025.9.27
  • 原码 反码 补码
  • Spring Framework 远程命令执行漏洞
  • 配置本地环境以管理Git多账户SSH连接
  • Pod、 PVC 、PV的刪除順序
  • python基本脚本要素
  • Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium - 指南
  • 完整教程:AI 术语通俗词典:Diffusion Models(扩散模型)