找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: lt_zzy

[求助]:为什么选择范围会改变

[复制链接]
发表于 2003-1-14 14:08:39 | 显示全部楼层
我看到的都是汉字,只是打开时我选了能显示汉字的字体。另外如果要删除那些字,在2000以上版本可用快速选择,在R14可用选择集过滤器。选择条件是文字,字高0.35。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-1-14 14:55:56 | 显示全部楼层
我试过了,没有出现你所说的情况。
就编个程序吧:

  1. (defun c:etext (/ pt1 pt2)
  2.      (command "zoom" "e" "")
  3.      (setq pt1 (getpoint "\n窗口第一点:"))
  4.      (command "zoom" "e" "")
  5.      (setq pt2 (getpoint "\n窗口对角点:"))
  6.      (command "zoom" "e" "")
  7.     (setq ename (ssget "w" pt1 pt2 '((0 . "TEXT"))))
  8.      (command "erase" ename )
  9. )

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

使用道具 举报

 楼主| 发表于 2003-1-15 10:59:59 | 显示全部楼层
我曾经编写了一个代码与你的差不多的LSP程序,但是还是没有能按照我的要求,它所能删除的只是那些在当前窗口里能够看到的内容,而那些在窗口范围之外,在坐标范围内的实体却没有被删除。现在我还是没能明白。能说说你说的没有出现我所说的那种情况是哪一种情况,我好比较一下,看看怎么样。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-1-15 17:45:07 | 显示全部楼层
最初由 lt_zzy 发布
[B]我曾经编写了一个代码与你的差不多的LSP程序,但是还是没有能按照我的要求,它所能删除的只是那些在当前窗口里能够看到的内容,而那些在窗口范围之外,在坐标范围内的实体却没有被删除。现在我还是没能明白。能说说?.. [/B]


ACAD的构造选择集除了X外,其他的都基于“显示表”,就是只能选择到屏幕内可见的实体,所以你的窗口内的实体如果不在屏幕内,就选择不到。

解决方法是根据你的窗口,先把屏幕ZOOM W 到窗口,把实体都显示出来后,在构造选择集,处理。

请看下下面XDRX_API提供的函数XDRX_DRAWING_ZOOMW和例子解释:


  1. <normalfont>
  2. 9.xdrx_drawing_zoomw

  3. 调用格式:(xdrx_drawing_zoomw  <点1>  <点2> [dist])
  4.          (xdrx_zoomw <中心点> <宽度> <高度>)

  5. 功能:以点1,点2为参数做zoom "w",并将左下角和右上角分别向外扩大一个小增量dist。
  6.       若不提供参数dist,则默认的增量是:两点距离/(当前屏幕显示高度*80)
  7. 返回值: nil。

  8. 示例:判断直线两端点是否都在屏幕内,若不是,以直线两端点为参数做ZOOM W。
  9.       (函数8和9结合使用示例)
  10.       变量含义:e :line实体
  11.       (setq ed (entget e))
  12.       (setq p10 (cdr (assoc 10 ed))
  13.             p11 (cdr (assoc 11 ed))
  14.       )
  15.       (if (setq tf (xdrx_isptoffscr p10 p11))
  16.          (xdrx_zoomw p10 p11)
  17.       )
  18.       .....
  19.       .....
  20.       (if tf
  21.          (command "zoom" "p") ;;若TF值为T,说明做过了ZOOM,因此,需要zoom p,返回先前屏幕,恢复
  22.       )
  23. 为什么需要判断点是否在屏幕外呢,因为,AUTOCAD构造选择集等是基于象素的,若实体不在屏幕内,许多
  24. 操作会得不到正确的结果。
  25. </font>


上面面代码中的函数 xdrx_isptoffscr  是判断给定的点是否在屏幕内的函数。

  1. <normalfont>
  2. 8.xdrx_isptoffscr

  3. 调用格式:(xdrx_isptoffscr  <点1>  [<点2>]...[<点n>])

  4. 功能:检测 '点1' 或 '点2'...[<点n>] 是否在当前屏幕以外。若有一个点在屏幕外,返回T。
  5.       只有都在屏幕内,才返回NIL。
  6. </font>
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-1-16 08:05:57 | 显示全部楼层
我编了一个小程序来删除实体,但是还是不如愿,现在我将那个我编写的LSP程序和程序执行前后的图传上来,大家帮我!谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 12:06 , Processed in 0.169311 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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