明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1169|回复: 4

[讨论] 判断矩形内部是否存在图元

[复制链接]
发表于 2023-1-1 22:05:38 | 显示全部楼层 |阅读模式
请问如何判断矩形内部是否存在图元呢,相交的也算。
 楼主| 发表于 2023-1-1 22:08:01 | 显示全部楼层
C:\Users\86198\Pictures\Camera Roll
发表于 2023-1-1 22:56:55 | 显示全部楼层
  • (defun c:ff ()
  •   (setq i 0)(setq lss nil)                              
  •   (setq juxing (entsel))                                 
  •   (command "measure" juxing "2" "")                  
  •   (setq dianji (ssget "p"))
  •   (repeat (sslength dianji)
  •     (setq point1(cdr(assoc 10 (entget(ssname dianji i)))))
  •     (setq lss (cons point1 lss))
  •     (setq i (+ 1 i))
  •   )
  •   (command "erase" dianji "")
  •   (Setq jxss (ssget "CP" lss))
  •   (sssetfirst jxss jxss)
  •   (setq n (sslength jxss))
  •   (setq n1 (1- n))
  •   (alert (strcat "所选取的矩形内共有"(itoa n1)"个对象!"))
  •   (princ)
  • )


看看这个方法怎么样





本帖子中包含更多资源

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

x
发表于 2023-1-2 07:49:23 | 显示全部楼层
本帖最后由 vitalgg 于 2023-1-2 08:01 编辑

  1. ;; 选择一个多段线
  2. (setq ent (car (entsel "选择一个矩形:")))
  3. ;; 得到矩形的点序
  4. (setq pts (curve:get-points ent))
  5. ;; 用点序围选
  6. (setq ents (pickset:to-list(ssget "cp" pts )))
  7. ;; 去除 矩形图元
  8. (setq ents (vl-remove ent ents))
  9. ;; 如果不空,亮显选中的图元
  10. (if ents (sssetfirst nil (pickset:from-list ents)) (alert "没有选中"))


支持任意形状的多段线。

用到的函数:









本帖子中包含更多资源

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

x
发表于 2023-1-3 08:58:17 | 显示全部楼层
根据角点坐标用SSGET"cp"方式就可以了吧,至于是不是矩形得另行判断。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 06:57 , Processed in 0.160712 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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