在开发过程中很容易遇到用户坐标的情况,一般来说,如果没有发生旋转的,只需要将世界坐标转为用户坐标就好了TransformBy(ed.CurrentUserCoordinateSystem),但是如果旋转了,就还需要把它转正。
以下方法是获取用户坐标下旋转的角度。

public static double UcsRotation(){double ucsRotation = 0;if (System.Convert.ToInt16(Application.GetSystemVariable("WORLDUCS")) == 0){Point3d ucsXDir = ((Point3d)Application.GetSystemVariable("UCSXDIR"));ucsRotation = Math.Acos(ucsXDir.X);if (ucsXDir.Y < 0)ucsRotation = 0 - ucsRotation;}return ucsRotation;}

根据Matrix3d.Rotation()旋转矩阵函数就可以把它根据用户坐标的方向转正。

 Matrix3d curUCSMatrix = ed.CurrentUserCoordinateSystem;CoordinateSystem3d curUCS = curUCSMatrix.CoordinateSystem3d;
polyline1.TransformBy(Matrix3d.Rotation(UcsRotation(), curUCS.Zaxis, new Point3d((polyline2.GeometricExtents.MinPoint.X + polyline2.GeometricExtents.MaxPoint.X) / 2, (polyline2.GeometricExtents.MinPoint.Y + polyline2.GeometricExtents.MaxPoint.Y) / 2, 0)));

CAD 二次开发用户坐标发生旋转的问题相关推荐

  1. lisp陡坎程序_(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版)最新版...

    <毕业论文:Autolisp在CAD二次开发中的应用.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版) ...

  2. CAD二次开发(C#)第三节

    前言 这是最后一部分代码,往后若有时间,对其中的代码详细讲解.初心不变,以便日后查看.特别感谢作者孙成波译作<AutoCAD .NET 开发指南 2012 版>.三部分代码里面有些许失误, ...

  3. c#CAD二次开发全套视频目录

    本人非专业编程人员,设计院画图民工一名.自学CAD编程,也写了一些小程序!初期学习lisp编程语言,基本了解CAD各中开发模块,写过一些程序!前段时间自学C#CAD二次开发,遍布网上无教学视频.经过自 ...

  4. CAD二次开发之创建道路

    在CAD中一般通过先绘制道路中心线,之后对中心线的圆角化及偏移等操作达到道路绘制的效果(流程如图一).但是当需要绘制大量道路特别是道路存在交叉等情况时这种方式显然很低效,对设计人员来讲可能成为一件令人 ...

  5. cad二次开发程序的绿色安装

    此问题的引入是因为一个cad二次开发软件,客户要求做成绿色安装.何为绿色安装呢?软件包copy到一台电脑上(已安装CAD),双击exe,打开的界面包含自定义的菜单.菜单的图标能正确显示.每个功能能使用 ...

  6. intersect 相交 范围_关于CAD二次开发中(范围线自相交)相交线的问题

    CAD二次开发对于毕业没多久,又是半路出家的我来说,是一个很大的挑战,遇到过很多难以解决的问题,这次在CAD二次开发遇到一个很苦恼的问题:判断 一个由线段组成的闭合区域中,是否存在着相互之间相交的线段 ...

  7. CAD 二次开发 图层操作(1)创建图层

    CAD二次开发的资料比较少,除了李冠亿先生的<深居浅出AutoCAD二次开发>这本书之外,目前没有找到合适的参考资料.现将自己工作中用的的一些方法贴出来.方便各位网友快速入门. #regi ...

  8. CAD 二次开发 图层操作(3)取得指定图层下的所有对象id

    对于CAD二次开发的人来说,可能需要对某一图层下的实体(点,线,面域,块,三维实体)进行不同的操作.下面的方法,即可实现获取指定图层名称下的所有实体ID. 输入参数为图层名称: 返回值为:对象主键集合 ...

  9. 关于objectArx /CAD二次开发中“属性块”操作

    关于objectArx /CAD二次开发中"属性块"操作 属性块就是在图块上附加一些文字属性(Attribute),这些文字可以非常方便地修改.属性块被广泛应用在工程设计和机械设计 ...

最新文章

  1. iOS 发大招 otherButtonTitles:(nullable NSString *)otherButtonTitles, ... 写法 编写通用类的时候关于可变参数的处理...
  2. mysql分类和事务回滚
  3. python读取目录_Python读取一个目录下所有目录和文件
  4. 20165301 我期望的师生关系
  5. 架构评审,技术总监怒了,丢给我 400 个架构案例,先研究透!
  6. 博士扩招!反正我是你们得不到的学生...
  7. 并行批处理多个文件 matlab
  8. [Javascript_库编写]创建自己的“JavaScript库”
  9. 机器学习基于skcilearn tensorflow电子书_Tensorflow机器学习模型的跨平台上线
  10. JS 调试(debug)
  11. delphi webbrowser 对象不支持_建模初学者,那些你可能还不知道的10个ZBrush小技巧!【值得收藏】...
  12. 添加文字 生成pdf_PDF 文件编辑方法和工具大全
  13. 迷宫问题,手动模拟栈
  14. 3.15 送货通知单
  15. 写你自己 android 多通道打包工具 可以包libs和.so文件
  16. pubmed 影响因子_如何在Pubmed利用影响因子筛选文献?
  17. 在Vue 项目 webpack 打包中关于 背景图片的路径问题
  18. [图文教程] 手把手教你安装Android SDK
  19. 在win2012上安装OfficeScan12控制台显示IIS服务未启动的解决办法
  20. Javase基础思维导图

热门文章

  1. 【JAVASCRIPT】-【RSA加密解密】02、前端RSA加密解密的实现方式
  2. ⚡python写一个不起床让你后悔的闹钟⚡
  3. 总有不期而遇的温暖-兄弟连IT教育
  4. jQuery实现文件上传
  5. 给Android应用开发小团队的十个建议
  6. educoder实训平台python顺序结构答案_Educoder Python顺序结构习题
  7. 毕业论文格式自查宝典
  8. 计算机考研复试占比小的学校,赞!这所211学校复试居然只占20%!——管理科学与工程考研2021学校揭秘!...
  9. Python科学计算之Pandas merge函数操作
  10. 非智能手机java_非智能手机操作系统两大介绍【图文】