/// <summary>/// 计算坐标,返回List/// </summary>/// <param name="startPoint">参考坐标点</param>/// <param name="bottomLeft">参考面的左下角坐标点</param>/// <param name="point">要计算的点</param>/// <param name="angle">参考面的角度(角度)</param>/// <returns></returns>private List<double> PointLoc(Point3d startPoint, Point3d bottomLeft, Point3d point, double angle, EntityPmkModel pmkModel){List<double> pointLoc = new List<double>();if (startPoint.X == 0 || startPoint.Y == 0){_doc.PrintMessage("起点的水平和垂直坐标至少有一个为0");}if (point.X == 0 || point.Y == 0){_doc.PrintMessage("特征点的水平和垂直坐标至少有一个为0");}//得到相对的水平距离double length = point.X - bottomLeft.X;_doc.PrintMessage("顶高的水平距离是:" + length.ToString("F2"));//计算三角函数使用的是弧度制,angle = angle * Math.PI / 180;double x2 = 0.0;double y2 = 0.0;//起点X大于终点X,起点Y小于终点Y,(90,180)if (pmkModel.PmStartPointX > pmkModel.PmEndPointX && pmkModel.PmStartPointY < pmkModel.PmEndPointY){//根据给的起点计算坐标,CAD中坐标与现实中坐标是相反的x2 = startPoint.Y - length * Math.Sin(angle);y2 = startPoint.X - length * Math.Cos(angle);}//起点X小于等于终点X,起点Y小于等于终点Y,[0,90]else if (pmkModel.PmStartPointX <= pmkModel.PmEndPointX && pmkModel.PmStartPointY <= pmkModel.PmEndPointY){//根据给的起点计算坐标,CAD中坐标与现实中坐标是相反的x2 = startPoint.Y + length * Math.Sin(angle);y2 = startPoint.X + length * Math.Cos(angle);}//起点X小于等于终点X,起点Y大于等于终点Y,[270,360)else if (pmkModel.PmStartPointX <= pmkModel.PmEndPointX && pmkModel.PmStartPointY >= pmkModel.PmEndPointY){//根据给的起点计算坐标,CAD中坐标与现实中坐标是相反的x2 = startPoint.Y + length * Math.Sin(angle);y2 = startPoint.X + length * Math.Cos(angle);}//起点X大于终点X,起点Y大于终点Y,(180,270)else if (pmkModel.PmStartPointX > pmkModel.PmEndPointX && pmkModel.PmStartPointY > pmkModel.PmEndPointY){//根据给的起点计算坐标,CAD中坐标与现实中坐标是相反的x2 = startPoint.Y - length * Math.Sin(angle);y2 = startPoint.X - length * Math.Cos(angle);}//起点X大于终点X,起点Y等于终点Y,180else if (pmkModel.PmStartPointX > pmkModel.PmEndPointX && pmkModel.PmStartPointY > pmkModel.PmEndPointY){//根据给的起点计算坐标,CAD中坐标与现实中坐标是相反的x2 = startPoint.Y + length * Math.Sin(angle);y2 = startPoint.X + length * Math.Cos(angle);}//依次将点添加到List里面pointLoc.Add(x2);pointLoc.Add(y2);return pointLoc;}

C#,CAD二次开发,基于参考面参考点计算一个点的坐标相关推荐

  1. C# CAD二次开发——建筑结构墙体线荷载计算工具开发(一)

    前言: 本人是一名建筑设计公司的结构设计人员,建筑业的势头显然没有前些年那般波涛汹涌.浪潮暂退的今天很多向我这样的结构设计从业人员倍感迷茫.行业沉寂的这些日子里我不断探索,希望在减隔震.BIM.钢结构 ...

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

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

  3. C#进行CAD二次开发学习笔记--02

    目录 Editor 拖动类EntityJig 选择集 Editor 在C#进行CAD二次开发时,Editor类是一个特别有用的类.它提供了大量常用的接口函数,比如: // 拖动相关接口 public ...

  4. 基于C#的中望CAD二次开发学习笔记(1)环境测试

    目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...

  5. Auto CAD二次开发:基于VBA语言的画圆软件开发

    本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 不仅是CATIA软件具有VBA二次开发接口,很多机械设计软件也都具有VBA二次开发接口.本期,就来为大家介 ...

  6. 引用:基于C#的中望CAD二次开发学习笔记

    目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...

  7. C#实战之CAD二次开发006:与python进行Socket传输文件

    前言 前面介绍了与CAD相关的一些功能,本期介绍一下C#和python如何通过socket通信来进行文件的传输,建议不了解Socket的同学先去了解一下socket的通讯原理,这样看起来不会云里雾里的 ...

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

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

  9. CAD二次开发资料汇总

    欢迎加入建筑信息化开发交流群,获取开发资料 群号:711844216 一.背景 对工程出身的朋友来说,CAD就像一位朋友,常伴吾身,为了提高效率,于是小伙伴门开始尝试CAD二次开发,刚入门,资料去哪找 ...

最新文章

  1. Mac中MacPorts安装和使用
  2. java窗口怎么实现修改密码_【求助】Java中如何实现更改windows密码
  3. Python之单元测试
  4. C# 之浅拷贝与深拷贝问题拙见(一)
  5. 在windows7上的通过composer安装yii2
  6. UVA 11557 - Code Theft (KMP + HASH)
  7. python独立图形_在networkx中查找图形对象中的独立图形
  8. Python入门--特殊属性
  9. SysUtils.Trim、SysUtils.TrimLeft、SysUtils.TrimRight - 删除空格
  10. AC日记——A+B Problem(再升级) 洛谷 P1832
  11. 黑客常备十大编程语言,每一个都不容易学,但每一个又很有用
  12. oracle中聚合比较函数,Oracle 分析函数与聚合函数区别
  13. 企业部署WAPI无线网络的技术详析
  14. 【Java学习笔记】2023_03_10Java基础
  15. face_recognition IndexError: list index out of range
  16. 【ELK】02、ElasticSearch基础
  17. SQL语句 字段类型转换—文本型转换成数值型
  18. Linux应用编程和网络编程(3)------- Linux中文件的属性
  19. “代码差的程序员,90%输在了方法上!”骨灰级开发:其实都是瞎努力
  20. 月赚3000不是梦(谷歌广告联盟)

热门文章

  1. intern()详解
  2. 智慧物流在大宗货运领域“落地”有多难?
  3. 【计网】DNS解析 DDNS解决动态公网IP访问
  4. Lab颜色空间及其应用
  5. 2023年徐汇区文化发展专项资金扶持项目申报指南
  6. 介绍一个软件开发工具,堪称快速开发神器
  7. Java8 通关攻略
  8. 基于jQuery实现表单提交验证
  9. 用ping ,mtr ,traceroute 进行网络丢包分析
  10. 【实战系列】intel 8代CPU I7 8700完美装WIN7系统