找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10582|回复: 61

[曲线] 相同Pline编号

  [复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2016-5-21 13:39:40 | 显示全部楼层 |阅读模式
  • 插件名称 : 相同Pline编号
  • 作  者 : st788796
  • 运行环境 :XDRX API 
  • 发布时间 :2016-05-21
  • 命令名称 :XDTB_SamePolyline
  • 插件介绍 :同源 闭合 Pline 归类(不包括镜像操作生成的曲线)
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
游客,如果您要查看本帖隐藏内容请回复
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8612个

财富等级: 富甲天下

发表于 2016-5-21 13:53:03 | 显示全部楼层
同源就是指从同一个实体复制出来的吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1371个

财富等级: 财源广进

发表于 2016-5-21 15:01:05 | 显示全部楼层
l老大又发神贴了速度跟上。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2016-5-21 15:12:25 | 显示全部楼层
ST大师,你又不用XDAPI, 为什么总发表用API写的程序呢?呜呜...

点评

有机器种地后,你还想用手吗? 境界不同了。你走进去才能知道。  详情 回复 发表于 2016-5-21 15:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-5-21 15:44:50 | 显示全部楼层
lucas3 发表于 2016-5-21 15:12
ST大师,你又不用XDAPI, 为什么总发表用API写的程序呢?呜呜...

有机器种地后,你还想用手吗? 境界不同了。你走进去才能知道。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-5-22 10:05:20 | 显示全部楼层
由 List:GroupByIndex 想到了 C# 中的类 或数据

  1. public class CurveInfo
  2.     {
  3.         public override int GetHashCode()
  4.         {
  5.             unchecked
  6.             {
  7.                 var hashCode = NumVerts;
  8.                 hashCode = (hashCode*397) ^ (Bulges != null ? Bulges.GetHashCode() : 0);
  9.                 hashCode = (hashCode*397) ^ (Vec != null ? Vec.GetHashCode() : 0);
  10.                 return hashCode;
  11.             }
  12.         }

  13.         protected bool Equals(CurveInfo other)
  14.         {
  15.             return NumVerts == other.NumVerts && Equals(Bulges, other.Bulges) && Equals(Vec, other.Vec);
  16.         }

  17.         public override bool Equals(object obj)
  18.         {
  19.             if (ReferenceEquals(null, obj)) return false;
  20.             if (ReferenceEquals(this, obj)) return true;
  21.             return obj.GetType() == this.GetType() && Equals((CurveInfo) obj);
  22.         }


  23.         public ObjectId Id { get; set; }

  24.         public int NumVerts { get; set; }

  25.         public DoubleCollection Bulges { get; set; }

  26.         public Vector3dCollection Vec { get; set; }

  27.         public CurveInfo(ObjectId id, int numVerts, DoubleCollection bugles, Vector3dCollection vec)
  28.             : this()
  29.         {
  30.             Id = id;
  31.             NumVerts = numVerts;
  32.             Bulges = bugles;
  33.             Vec = vec;
  34.         }

  35.         private CurveInfo()
  36.         {
  37.            
  38.         }

  39.         public static bool operator >(CurveInfo cv1, CurveInfo cv2)
  40.         {
  41.             return cv1.NumVerts > cv2.NumVerts;
  42.         }

  43.         public static bool operator <(CurveInfo cv1, CurveInfo cv2)
  44.         {
  45.             return cv1.NumVerts < cv2.NumVerts;
  46.         }
  47.         public static bool operator ==(CurveInfo cv1, CurveInfo cv2)
  48.         {
  49.             if (cv1 != null && (cv2 != null && cv1.NumVerts != cv2.NumVerts))
  50.                 return false;
  51.             var flag1 = true;
  52.             var flag2 = true;
  53.             Debug.Assert(cv1 != null, "cv1 != null");
  54.             for (var i = 0; i < cv1.NumVerts; i++)
  55.             {
  56.                 Debug.Assert(cv2 != null, "cv2 != null");
  57.                 if (!(Math.Abs(cv1.Bulges[i] - cv2.Bulges[i]) > 0.0000001)) continue;
  58.                 flag1 = false;
  59.                 break;
  60.             }
  61.             if (!flag1) return false;
  62.             for (var i = 0; i < cv1.NumVerts; i++)
  63.             {
  64.                 Debug.Assert(cv2 != null, "cv2 != null");
  65.                 if (cv1.Vec[i].IsEqualTo(cv2.Vec[i])) continue;
  66.                 flag2 = false;
  67.                 break;
  68.             }
  69.             return (flag2);
  70.         }

  71.         public static bool operator !=(CurveInfo cv1, CurveInfo cv2)
  72.         {
  73.             return !(cv1 == cv2);
  74.         }
  75.     }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-5-22 15:01:45 | 显示全部楼层
大师,什么是同源?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2016-5-22 15:08:00 | 显示全部楼层
Lisphk 发表于 2016-5-22 15:01
大师,什么是同源?

由同一 Pline 复制的,或者由副本再复制的

点评

那根据图形的点表,画出的多边形,算是同源吗?另外这个东西一般在什么地方能用?  详情 回复 发表于 2016-5-22 22:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-5-22 16:03:44 来自手机 | 显示全部楼层
newer 发表于 2016-5-21 15:44
有机器种地后,你还想用手吗? 境界不同了。你走进去才能知道。

这回答,完全可以做新闻发言人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

发表于 2016-5-22 22:01:01 | 显示全部楼层
看上去
真是
高大上啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-5-22 22:40:34 | 显示全部楼层
st788796 发表于 2016-5-22 15:08
由同一 Pline 复制的,或者由副本再复制的

那根据图形的点表,画出的多边形,算是同源吗?另外这个东西一般在什么地方能用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2016-5-22 23:00:39 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2016-5-22 23:02 编辑
Lisphk 发表于 2016-5-22 22:40
那根据图形的点表,画出的多边形,算是同源吗?另外这个东西一般在什么地方能用?


pline 相同用了几个特征
1顶点数量
2 每个节点处 bulge
3 每段的向量
4 节点表按第一段向量方向做 x 轴,startpoint做原点进行变换
满足以上4条的视为相同

2 3需要先进行4变换,这样就消除了旋转因素
实际上由4变换后,相同的线是重合线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2772个

财富等级: 家财万贯

发表于 2016-5-22 23:07:02 | 显示全部楼层
有点不太明白这个的用法,是不是等同于源物体的复制呢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2016-5-22 23:09:19 来自手机 | 显示全部楼层
也许 机械 行业计算同一零件用的着
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-5-25 17:45:13 | 显示全部楼层
看看,感觉还可以
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 00:51 , Processed in 0.435168 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表