找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4028|回复: 12

[实体] (XD::Entity:BOXatECS)获得选择集或实体对齐参考实体ECS下实际的包围盒

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-25 18:29:58 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Entity:BOXatECS
调用格式: (XD::Entity:BOXatECS ss e)
参数说明: ss --- 实体名 or 选择集
e --- 参考实体(确定X轴方向) or X轴向量
返回值: 包围盒(WCS下)
函数简介: 获得选择集或实体对齐参考实体ECS下实际的包围盒
函数来源: 原创
函数作者: Lispboy
适用版本: XDRX API 
最后更新时间: 2013-07-25
备注: 2013.10.10第二版
演示图片:

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

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

×
  1. ;|
  2. 获得实体ECS下实际的包围盒
  3. 参数:
  4.    ss ---  实体名 or 选择集
  5.    e  ---  参考实体或ecs(确定X轴方向), ecs=(原点 X轴 Y轴 Z轴)

  6. 返回值:
  7. 对齐一个实体的包围盒(UCS点)
  8. |;
  9. (defun XD::Entity:BOXatECS (ss e / box from mat pj r to xAxis yAxis zAxis)
  10.   (if (= (type e) 'ENAME)
  11.      (setq from (xdrx_entity_getecs e))
  12.      (progn
  13.         (setq xAxis e
  14.               yAxis (xdrx_vector_perpVector xAxis)
  15.               zAxis (xdrx_vector_crossProduct xAxis yAxis)
  16.               from (list '(0 0 0) xAxis yAxis zAxis)
  17.         )
  18.      )
  19.   )
  20.   (xdrx_document_ucsoff)
  21.   (setq box (xdrx_entity_box ss))
  22.   (setq pj (car box)
  23.         to (list pj '(1 0 0) '(0 1 0) '(0 0 1))
  24.         mat (xdrx_matrix_AlignCoordSystem from to)
  25.   )
  26.   (xdrx_entity_transform ss Mat)
  27.   (setq box (xdrx_entity_box ss))
  28.   (xdrx_entity_transform ss (setq r (xdrx_matrix_inverse Mat)))
  29.   (XD::Pnts:WCS2UCS (XD::Pnts:Transform box r))
  30. )

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

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-7-25 18:30:38 | 显示全部楼层
测试命令代码:

  1. (defun c:ttt ()
  2.   (if (and
  3.         (setq e (car (xdrx_entsel "\n拾取参考实体确定X轴<退出>:")))
  4.         (progn
  5.           (princ "\n选取要处理的实体<退出>:")
  6.           (setq ss (ssget))
  7.         )
  8.       )
  9.     (progn
  10.       (XD::Begin)
  11.       (setq box (XD::Pnts:UCS2WCS (XD::Entity:BoxAtEcs ss e)))
  12.       (apply
  13.         'xdrx_polyline_make
  14.         (cons t box)
  15.       )
  16.       (XD::End)
  17.     )
  18.   )
  19.   (princ)
  20. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-25 18:46:30 | 显示全部楼层
看了下 EntityBox 函数的代码, 能不能不 Transform ss 仅 transform box, 毕竟这个 SS 一般要比 Box 大很多,Box就是 四个点,把四个点缩放和旋转要效率高的多
,

点评

不行的,不同坐标系下,那个盒子大小是不一样的,只变换点,除了要旋转外,还要缩放,平移,这个矩阵不好找出来。 还是让transform ent 来找盒子吧。  详情 回复 发表于 2013-7-25 19:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-25 19:10:15 | 显示全部楼层
{:soso_e101:}
都去研究XDapi啦!!
我也不玩lisp了。
玩看书去。

点评

api不用研究,想用啥吱一声就有  详情 回复 发表于 2013-7-25 20:08
别啊,你也一起来研究啊,你看书是大家的损失啊。  详情 回复 发表于 2013-7-25 19:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-7-25 19:30:41 | 显示全部楼层
本帖最后由 Lispboy 于 2013-7-25 19:31 编辑
st788796 发表于 2013-7-25 18:46
看了下 EntityBox 函数的代码, 能不能不 Transform ss 仅 transform box, 毕竟这个 SS 一般要比 Box 大很多 ...

不行的,不同坐标系下,那个盒子大小是不一样的,只变换点,除了要旋转外,还要缩放,平移,这个矩阵不好找出来。
还是让transform ent 来找盒子吧。找到盒子,再给转回去,只旋转变换好实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

 楼主| 发表于 2013-7-25 19:44:12 | 显示全部楼层
wowan1314 发表于 2013-7-25 19:10
都去研究XDapi啦!!
我也不玩lisp了。
玩看书去。

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

使用道具 举报

发表于 2013-7-25 20:08:43 来自手机 | 显示全部楼层
wowan1314 发表于 2013-7-25 19:10
都去研究XDapi啦!!
我也不玩lisp了。
玩看书去。

api不用研究,想用啥吱一声就有:)

点评

xdapi除了2006版的还有其他说明文件吗 2010版看着好多函数不知道参数表  详情 回复 发表于 2013-7-27 01:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 33个

财富等级: 招财进宝

发表于 2013-7-27 01:08:07 | 显示全部楼层
Free-Lancer 发表于 2013-7-25 20:08
api不用研究,想用啥吱一声就有

xdapi除了2006版的还有其他说明文件吗 2010版看着好多函数不知道参数表

点评

api 2006版本手册是早年发布的,至少在2005年左右就有了,那个时候是200多个函数, 现在的每个版本的函数都是一样的,700多了吧。新版手册还没有出来,部分函数用法论坛出来了。  详情 回复 发表于 2013-7-27 09:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-27 09:24:51 | 显示全部楼层
cre8o 发表于 2013-7-27 01:08
xdapi除了2006版的还有其他说明文件吗 2010版看着好多函数不知道参数表

api 2006版本手册是早年发布的,至少在2005年左右就有了,那个时候是200多个函数, 现在的每个版本的函数都是一样的,700多了吧。新版手册还没有出来,部分函数用法论坛出来了。

点评

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

使用道具 举报

已领礼包: 33个

财富等级: 招财进宝

发表于 2013-7-27 22:37:08 | 显示全部楼层
newer 发表于 2013-7-27 09:24
api 2006版本手册是早年发布的,至少在2005年左右就有了,那个时候是200多个函数, 现在的每个版本的函数 ...

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

使用道具 举报

已领礼包: 5个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2018-7-3 15:26:31 | 显示全部楼层
这个函数速度很慢,哪个快些?

点评

这个矩阵太复杂,太多函数了,看得晕,所以效率低。 其实两步就搞定了 (apply 'xdrx_ucs_set ucs-lst);_设置用户坐标系 (xdrx_entity_box ss) 如果用矩阵解决,高飞鸟的纯Lisp效果不错。  详情 回复 发表于 2024-7-1 17:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

发表于 2024-7-1 17:36:27 | 显示全部楼层
dyjwyqz5221 发表于 2018-7-3 15:26
这个函数速度很慢,哪个快些?

这个矩阵太复杂,太多函数了,看得晕,所以效率低。
其实两步就搞定了
(apply 'xdrx_ucs_set ucs-lst);_设置用户坐标系
(xdrx_entity_box ss)

如果用矩阵解决,高飞鸟的纯Lisp效果不错。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 14:45 , Processed in 0.463844 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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