当前位置: 首页 > 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.gsyq.cn/news/12942.html

相关文章:

  • Momentum Gradient Descent(动量梯度下降)
  • 深入解析:深度解析 CUDA-QX 0.4 加速 QEC 与求解器库
  • ProjectLibre
  • 实用指南:iOS 26 兼容测试实战,机型兼容、SwiftUI 兼容性改动
  • 大中午记梦
  • Arbess从入门到实战(3) - 启用Arbess+GitLab实现Vue.js计划自动化部署
  • 【深度学习计算机视觉】07:单发多框检测(SSD) - 指南
  • MZOI 2025.9.27
  • Pod、 PVC 、PV的刪除順序
  • Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium - 指南
  • 完整教程:AI 术语通俗词典:Diffusion Models(扩散模型)
  • 抽象化编程(Abstraction in Programming)
  • 详细介绍:198种组合算法+优化BiLSTM神经网络+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备!
  • 配置RedisTemplate序列化机制
  • 优化器(Optimizer)
  • Kubernetes Ingress与OpenShift Router的比较分析
  • Kubernetes日志管理:使用Loki进行日志采集
  • PySimpleGUI 4.60.5完整控件列表
  • 深入解析:Go基础:模块化管理为什么能够提升研发效能?
  • 深入解析:阿里云推出全球首个全模态AI模型Qwen3-Omni,实现文本、图像、音视频端到端处理
  • MOS管 SI2302 KX2302 集成上下拉电阻,优化线路电路,降低物料成本
  • 最近难得的一点思考
  • Nexpose 8.22.0 for Linux Windows - 漏洞扫描
  • 大唐名相张九龄-海上生明月,天涯共此时
  • 王昌龄的态度
  • 开发知识点-Python-virtualenv
  • 2025年移动厕所厂家口碑排行榜:环保移动厕所,泡沫封堵移动厕所,市区公园露营地移动厕所,装配式移动厕所,公共移动厕所定制安装公司选择指南!
  • 醉后不知天在水,满船清梦压星河
  • 【诗词解读】跨越千年的文脉传承:月与酒是中国人的永恒浪漫
  • 突破文档型数据库迁移困境:金仓多模方案破解电子证照环境国产化难题