C# Smart3D Plate Part零件形状提取

news/2025/9/27 16:14:08/文章来源:https://www.cnblogs.com/NanShengBlogs/p/19115238

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.mzph.cn/news/919650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

威海建设局网站首页图片编辑在线

在FTP协议中&#xff0c;可以通过配置服务器端的空闲连接超时时间来设置连接的过期时间。具体步骤如下&#xff1a; 登录FTP服务器&#xff0c;进入服务器的配置文件目录。通常配置文件位于/etc或/etc/vsftpd目录下。打开FTP服务器的配置文件&#xff0c;例如vsftpd.conf。在配…

网站使用微软雅黑小程序模板免费下载

C语言实验lab10C程序设计实验报告学院&#xff1a;国际商学院班级&#xff1a;14电商专业&#xff1a;电子商务姓名&#xff1a;熊靓男日期&#xff1a;15.5.25学号&#xff1a;1420070049实验目的复习一维数组掌握二维数组参数的传递掌握排序算法实验内容消灭怪物在阳光明媚月…

化妆品网站系统规划网站制作排名

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param s string字符串 * param n int整型 * return string字符串*/public String trans (String s, int n) {// write co…

长春网站建设公司会展设计效果图

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 查询数据 条件 逻辑运算符 模糊查询 范围查询 in 判断空 UNION 排序 聚合 分组&#xff1a;group by —————————…

网站开发工程师的证件seo技术专员招聘

本文简单记录一次实践使用过程&#xff0c;涉及presto-mysql,presto-elasticsearch&#xff0c;文中参数未做注释&#xff0c;请参考官方文档&#xff0c;希望能帮到大家1 下载安装 presto-0.228<1>下载服务端客户端相关jar<2>安装&#xff1a;1> 解压tar -zxvf…

路飞和女帝做h的网站女装网站建设计划书

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。r…

潍坊市住房和城乡建设厅网站如何自己制作链接内容

第一步&#xff1a;安装svg-sprite-loader插件 <!-- svg-sprite-loader svg雪碧图 转换工具 --> <!-- <symbol> 元素中的 path 就是绘制图标的路径&#xff0c;这种一大串的东西我们肯定没办法手动的去处理&#xff0c; 那么就需要用到插件 svg-sprite-loader …

用户体验好的网站wordpress用户修改头像

在处理多个 Python 库依赖时&#xff0c;遇到依赖冲突是很常见的&#xff0c;特别是当项目依赖的库版本相互不兼容时。要解决这些冲突&#xff0c;可以采用以下方式。 1. 虚拟环境的使用 为了避免系统级和用户级包的冲突&#xff0c;建议你使用 虚拟环境。虚拟环境为每个项目…

题解:QOJ9619/洛谷13568 [CCPC 2024 重庆站] 乘积,欧拉函数,求和(数论+状压DP)

首先将 \(\phi(x)\) 拆成 \(\phi(x)= x \prod_{p | x} \frac {p-1}{p}\),发现我们要求的式子其实可以转化为 \(\sum_{S} (\prod a_i)\prod_{p|\prod a_i} \frac {p-1}{p}\)。 发现其实我们只关心哪些质数 \(p\) 在最终…

Momentum Gradient Descent(动量梯度下降)

Momentum Gradient Descent(动量梯度下降)是标准梯度下降(SGD)的一个重要改进版,旨在加速训练过程,并帮助模型更有效地找到最优解。 你可以将动量(Momentum)想象成物理学中的惯性。动量梯度下降(Momentum GD)…

Halcon算子——2D几何变换

齐次坐标 介绍仿射变换前,先介绍什么是齐次坐标。对于一个平面像素点,我们可以通过坐标(x,y)描述其位置。但是当涉及平移时,如果仅仅使用它对应的坐标向量[x,y],就必须通过向量加法来描述其位移。 而齐次坐标的引入…

深入解析:深度解析 CUDA-QX 0.4 加速 QEC 与求解器库

深入解析:深度解析 CUDA-QX 0.4 加速 QEC 与求解器库pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

网站建设360网站建设优化汕头

Plupload有以下功能和特点&#xff1a; 1、拥有多种上传方式&#xff1a;HTML5、flash、silverlight以及传统的<input type”file” />。Plupload会自动侦测当前的环境&#xff0c;选择最合适的上传方式&#xff0c;并且会优先使用HTML5的方式。所以你完全不用去操心当前…

电子商务网站开发意义深圳商业网站建设案例

“工作三年&#xff0c;并不等于拥有三年的工作经验。”这句话告诉我们每天都要思考自己当天所遇到的问题&#xff0c;记录下来&#xff0c;并且思考这个问题的解决办法&#xff0c;每一周或两周总结这些问题和解决办法&#xff0c;归纳思考问题根源&#xff0c;学习解决问题的…

Pytest+requests进行接口自动化测试6.0(Jenkins) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025钉螺,花螺,田螺,香辣麻辣钉螺,捞汁钉螺,鲜活钉螺,无沙去尾钉螺厂家推荐榜单:全链条生产 + 北部湾原料,破解沙臭空壳痛点钉螺工厂选购指南!

钉螺作为餐饮市场的热门食材,其品质与供应稳定性直接影响餐饮门店的口碑与运营效率。然而当前行业仍面临多重痛点:原料含沙量高导致口感粗糙,臭螺、空壳问题频发拉低菜品品质,部分产品因加工工艺不佳出现 “不好吸…

insta go2 对比vivo x100pro超广角

go2 画面比例 镜头视角 横向 FOV 纵向 FOV 对角线 FOV16:9 画面比例 超广角 116.6 69.9 127.8 1/2.3英寸CMOS 拍照分辨率3040*3040(圆形视场),处理后最高为2560x2560=655万go3相比于go2 由于cmos没变,分辨率略有提…

深圳罗湖网站开发wordpress产品数量

采集k8s挂载Nas后的日志 该文档主要介绍使用logtail以两种不同的方式进行k8s挂载Nas后的日志采集。两种采集方式的实现原理是一样的&#xff0c;都是通过将Logtail和业务容器挂载到相同的NAS上&#xff0c;使Logtail和业务容器的日志数据共享&#xff0c;以此实现日志采集。下…

《C++程序设计》笔记p4 - 指南

《C++程序设计》笔记p4 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

无锡市滨湖区建设局网站网站实名审核

ONLYOFFICE 协作空间是一个在线协作平台&#xff0c;帮助您更好地与客户、业务合作伙伴、承包商及第三方进行文档协作。今天我们来介绍一下&#xff0c;如何在 Windows 上安装协作空间的自托管版。 ONLYOFFICE 协作空间主要功能 使用 ONLYOFFICE 协作空间&#xff0c;您可以&a…