知识点: 遍历选中视图中的草图

我们来继续学习一下工程图里的东西,如下图,我们可以在工程图中画草图,也可以在某个视图中画草图,你不要问我为什么要画,因为我也不知道你要干什么。


今天就简单介绍一下,如何获取这几条线的信息。
大家都知道零件的时候画草图都是要先定义基准面的,而且画完左侧特征树上也会显示一个特征,但是我们在图纸上或者视图上画的时候,却不用,也没有显示特征。
所以我猜侧,这里是Solidworks做了隐藏及优化,图纸或者视图上的草图只能有一个,所有就不用再显示 出来了。

动手-> 去api 帮助里面找一找相关的帮助,看看有没有什么新发现。

-----------------------------------------------------------------------------华丽的分割线-----------------------------------------------------------------------------------------

好像发现了什么:

找到了个View的接口:

关键信息在这里:
Remarks
Each drawing view contains an underlying sketch. The user can activate the sketch for a drawing view by double-clicking the view. Once the drawing view is active, you can add sketch directly to the view’s sketch.

我假装看不懂,哈哈。翻译一下:

那就好办了,就是先搞到一个View对象,再GetSketch,这样我们就有和零件草图一样的对象了,这样我们就可以遍历里面的直线、点、文字这些信息了。

其实代码我写好很久了,一直没有发文章解释一下。

 private void btnGetView_Click(object sender, EventArgs e){SldWorks swApp = Utility.ConnectToSolidWorks();ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;SelectionMgr selectionMgr = (SelectionMgr)swModel.SelectionManager;//获取选择的视图对象View view = (View)selectionMgr.GetSelectedObject5(1);//获取视图的草图var viewSketch = view.IGetSketch();//var pointsCount = viewSketch.GetSketchPointsCount2();var points = (object[])viewSketch.GetSketchPoints2();var skSegs = (object[])viewSketch.GetSketchSegments();List<SketchPoint> segmentPoints = new List<SketchPoint>();if (points != null){for (int i = 0; i < points.Length; i++){var thisPoint = (SketchPoint)points[i];Debug.Print(thisPoint.Type.ToString());if (thisPoint.Type == 1){// thisPoint.Select(true);segmentPoints.Add(thisPoint);}}}List<SketchSegment> segmentCenterLines = new List<SketchSegment>();if (skSegs != null){for (int i = 0; i < skSegs.Length; i++){var thisSeg = (SketchSegment)skSegs[i];// thisSeg.Select(false);if (thisSeg.Style == (int)swLineStyles_e.swLineCENTER){//thisSeg.Select(true);segmentCenterLines.Add(thisSeg);}}}}

其它来不及解释了,大家自己思考吧,顺便来个小调查,谢谢大家。

C# SolidWorks二次开发-工程图-遍历选中视图中的草图相关推荐

  1. C# SolidWorks二次开发---工程图简单版标注长宽

    文章目录 工程图中标注长宽 一.开发目标 二.方案解析 1.思路 2.关键代码 3.调用 总结 工程图中标注长宽 工程图中标注常用方法有哪些?请思考再继续查看. 一.开发目标 在常规矩形零件的工程图中 ...

  2. C# SolidWorks二次开发---工程图中心标记(Center Marks)

    工程图的中心标记 作为一个不专业的制图人员,我就不解释中心标记是什么了.大家自己看Solidworks的官方帮助说明(好像不应该放英文的,大家都看不懂了 ). 就是这么个东东. 我自己画了一个非常复杂 ...

  3. C# SolidWorks二次开发---工程图简单版标注孔信息

    突然感觉好久没有写技术文章了,确实,回头看了一下上次的文章,快一个月了.我在忙什么? 文章目录 目标 一.要标什么? 二.思路 三.代码 总结 目标 提示:今天的内容和上一篇属于一个范围,就是工程图的 ...

  4. C# SolidWorks 二次开发 API ---遍历特定圆柱面进行处理

    功能要求 如下图,从客户处过来的图档螺丝孔后缀尺寸第三位都是0.001 ,这是客户用来定义螺纹的标识. 但是对于加工处理上,不需要这个后缀,会让生产人员误解为精度要求比较高. 所以考虑是否有批处理的功 ...

  5. C# Solidworks二次开发 输入零件名选中零件

    实现功能 基于.NET Framework控制台应用程序进行SolidWorks二次开发,实现输入零件名,在软件中选中零件. 注意:(1)进行SolidWorks控制台程序二次开发不能使用.NET C ...

  6. SolidWorks二次开发 遍历树节点

    各位Solidworks二次开发小伙伴,趁着年还没过玩,祝大家新年快乐,掐指一算 , 明天就是元宵节了. 各位是不是应该送我点什么? 说错了,是我送来送点东西给大家. 最近在看api帮助时发现了一个知 ...

  7. SolidWorks二次开发 API-获取当前语言与重命名文件

    新的一年了,开始新的分享. 做SolidWorks二次开发的时候,难免会遇到多语言的问题. 针对不同语言的客户生成不同语言的菜单,所以我们要知道Solidworks的当前界面语言是什么. 这个就简单的 ...

  8. C# SolidWorks二次开发 干涉检查

    总体思路 基于.NET Framework控制台应用程序进行SolidWorks二次开发,选中输入零件,实现干涉检查功能. 使用SelectByID2方法,选中待检查零件,然后使用ToolsCheck ...

  9. 基于SOLIDWORKS二次开发的3D产品研发增效和企业信息化工具集SolidKits

    基于SOLIDWORKS二次开发的SolidKits工具的含义是3D产品研发增效和企业信息化工具集,目前已经帮助高科技.机器人.航空航天.船舶.汽车.机械设备.电器.电子等行业的上百家制造业企业提供了 ...

最新文章

  1. 三大运营商3G无线上网套餐资费对比
  2. Android系统中设置TextView等的行间距
  3. 算法2:判断两个字符串内容是否相同
  4. centos安装禅道的步骤
  5. linux tcp 创建,Linux下tcp服务器创建的步骤
  6. 中文域名销售平台_中国开关网.商城被搭建为南京某公司官网,这样的域名你喜欢吗?...
  7. ROS入门(八) make_plan的Server连接
  8. 关于java中求和的方法,用可变变量来解决这个问题
  9. 老司机 iOS 周报 #42 | 2018-11-05
  10. 80%的销售来源于第4至11次的跟踪!
  11. 综合布线系统计算机网络,综合布线 计算机网络系统
  12. unity3D 如何提取游戏资源
  13. 学生成绩分析之成绩的预处理 python3 pandas 学生成绩汇总到一张表
  14. 【5G核心网】PFCP Message PFCP 消息
  15. 国内主流Arduino图形化编程软件专业评测
  16. 王可欣作业一 统计软件简介与数据操作
  17. Google浏览器设置不自动更新:关闭谷歌浏览器自动更新方法(总是自动更新提示失败)
  18. 集团公司申请企业邮箱有哪些注意事项?
  19. 【数学建模竞赛指南】对大学生性价比超高的数学建模竞赛
  20. 猿创征文|【国产数据库实战】一文学会应用SqlSugar访问及操作人大金仓数据库

热门文章

  1. 文章阅读:ET-Net
  2. 微信小程序的应用场景
  3. 省一级计算机ppt,江苏省计算机一级要点.ppt
  4. 从零开始弄懂LightGBM_参数篇
  5. Oregon Tool任命Elliot Zimmer为首席执行官
  6. 行列式(determinant)
  7. 下一代网络——“无损网络”
  8. Vue中实现div编辑效果,及contenteditable设置为plaintext-only与true的区别
  9. Matlab作图多项式拟合
  10. 使用CSS3旋转DIV