明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1903|回复: 9

[源码] [求助]为什么无法返回正确的选择集

[复制链接]
发表于 2009-11-25 11:54 | 显示全部楼层 |阅读模式

(defun c:test()
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 101.0 101.0 0.0) (40 . 2.0)))
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 102.0 102.0 0.0) (40 . 2.0)))
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 100.0 100.0 0.0) (40 . 2.0)))
    (ssget "_CP" '((106.2 103.4)(103.4 100.5)(110.0 100.5)))
)

命令: test
nil

命令:
命令: '_.zoom _e
命令: 指定对角点:
命令: _.erase 找到 3 个

命令: test
<Selection set: 5cc>

帮忙看看程序哪里有问题呢?
新打开的文档,第一次运行test,返回的选择集为什么无法得到前面用entmake函数生成的3个实体?
而如果这时我删除新生成的3个实体,然后再运行test,就可以得到这个选择集了?
请教一下,这种情况如何解决,在第一次运行命令的时候就可以返回这个选择集?

发表于 2009-11-25 12:19 | 显示全部楼层
只有屏幕上显示的才能选择到。
 楼主| 发表于 2009-11-25 23:34 | 显示全部楼层

我后面不是已经删除了吗?而且entmake的时候,注记不是已经显示在屏幕上了吗?

还有ssget不是可以选择隐藏的实体吗?不一定要屏幕上显示的呀...

那么在程序的处理过程中有没有什么折中或者比较理想的方法解决这个问题呢?

因为我希望后面生成注记的时候可以检测前面生成的注记位置,如果存在重叠,就不再生成了...

发表于 2009-11-26 14:26 | 显示全部楼层

生成后先entupd下或regen下试试~

发表于 2009-11-26 14:40 | 显示全部楼层
ZZXXQQ版主说的对,必须确保对象在屏幕的范围内,ssget cp才有效,为什么不用entlast
发表于 2009-11-26 14:55 | 显示全部楼层

受教了~

问一下是哪几个函数是受到屏幕显示范围限制?

发表于 2009-11-27 12:00 | 显示全部楼层
所有的使用w,wp,c,cp,f的选择都受到显示范围的限制。楼主可以自行想一下有多少命令和函数受限。
发表于 2009-11-27 13:02 | 显示全部楼层

(defun c:test()
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 101.0 101.0 0.0) (40 . 2.0)))
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 102.0 102.0 0.0) (40 . 2.0)))
    (entmake '((0 . "TEXT") (1 . "示例文字") (10 100.0 100.0 0.0) (40 . 2.0)))
  (command "zoom" "e")
  (setq sset (ssget "_CP" '((106.2 103.4)(103.4 100.5)(110.0 100.5))))
   (command "zoom" "p")
)

应该可以

 楼主| 发表于 2009-11-27 22:42 | 显示全部楼层

嗯,后来我也是使用zoom-e来解决这个问题的

谢谢各位的帮忙...

发表于 2012-1-5 15:44 | 显示全部楼层
直接entupd后再选行不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-16 12:11 , Processed in 0.144787 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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