找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1300|回复: 2

[尺寸] (XD::Dim:AssDimEnts)获得和一个尺寸实体界线相贴或者循环相交的所有实体

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-5-19 12:49:47 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Dim:AssDimEnts
调用格式: (XD::Dim:AssDimEnts elst tf)
参数说明: elst ---- entsel 型 表,参数TF为T下,其中点作为判断最近的界线的条件
tf ---- t 仅查询获取界线相贴的
nil 所有和这个尺寸依次循环相贴的所有尺寸实体
返回值: 实体表
函数简介: 获得和一个尺寸实体界线相贴或者循环相交的所有实体
函数来源: 原创
函数作者: Lispboy
适用版本: XDRX API 
最后更新时间: 2016-05-19
备注: -
演示图片: -

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

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

×
本帖最后由 newer 于 2017-8-15 17:50 编辑

TF = NIL的情况
搜狗截图20170815174515.png

TF=T的情况

搜狗截图20170815174128.png

  1. (defun XD::Dim:AssDimEnts (elst tf / e el1 inx pts pts1 spts ss x)
  2.   (setq inx (XD::Dim:GetNearInx (car elst) (cadr elst))
  3.         spts (xdrx_entity_getstretchpoint (car elst))
  4.   )
  5.   (setq pts (mapcar
  6.               '(lambda (x)
  7.                  (nth x spts)
  8.                )
  9.               inx
  10.             )
  11.   )
  12.   (if (not tf)
  13.     (progn
  14.       (XD::Entity:AssIntersectEntsInit)
  15.       (reverse (XD::Entity:AssIntersectEnts (car elst) '((0 . "DIMENSION"))
  16.                                             0.0
  17.                )
  18.       )
  19.     )
  20.     (progn
  21.       (setq ss (ssget "cp" (xd::pnts:wcs2ucs (XD::Geom:GetPolyBox
  22.                                                pts (XD::Doc:GetPickBoxHeight)

  23.                                              )
  24.                            ) '((0 . "DIMENSION"))
  25.                )
  26.       )
  27.       (xdrx_setsstodb ss 9)
  28.       (while (setq e (xdrx_getentdata 9))
  29.         (setq pts1 (xdrx_entity_getstretchpoint e))
  30.         (if (vl-some '(lambda (x)
  31.                         (apply
  32.                           'xdrx_point_ison
  33.                           (cons x pts)
  34.                         )
  35.                       ) pts1
  36.             )
  37.           (setq el1 (cons e el1))
  38.         )
  39.       )
  40.       (reverse el1)
  41.     )
  42.   )
  43. )

应用代码:

  1. (defun c:tt ()
  2.   (if (setq e (xdrx_entsel "\n点取尺寸<退出>:" '((0 . "dimension"))))
  3.     (progn (setq elst (XD::Dim:AssDimEnts e nil))
  4.            (xdrx_pickset_redraw elst)
  5.     )
  6.   )
  7.   (princ)
  8. )



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

已领礼包: 217个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 217个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 02:10 , Processed in 0.194622 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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