找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 989|回复: 14

[求助] [求助]:过滤选择怎样实现

[复制链接]
发表于 2006-2-28 15:23:17 | 显示全部楼层 |阅读模式

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

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

×
我想用lisp实现过滤选择所有字体或线或其它类型,我所编的程序如下:
(defun c:gl(/ mm1 mm2 mm3 enn ss1)
  (setq enn (entget(car(entsel))))
  (setq mm1 (cdr(assoc 0 enn)))
  (setq mm2 (cdr(assoc 8 enn)))
  (setq mm3 (cdr(assoc 62 enn)))
  (setq ss1 (ssget "X" (list (cons 0 mm1) (cons 8 mm2) (cons 62 mm3))))
  (princ)
)

执行后有两个问题,一是显示(setq ss1 (ssget "X" (list (cons 0 mm1) (cons 8 mm2) (cons 62 mm3))))这行有错误,不知为什么?改成(setq ss1 (ssget "X" (list (cons 0 mm1) (cons 8 mm2))))可以执行了,但所有被选对象不能高亮显示。
一、   我想将所有被过滤出的对象高亮显示。如何实现呢?
二、   提示错误的那一行代码错在哪了呢?ssget不可以有三个参数吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-2-28 15:40:13 | 显示全部楼层
(defun c:gl (/ mm1 mm2 mm3 enn ss1)
  (setq enn (entget (car (entsel))))
  (setq mm1 (assoc 0 enn))
  (setq mm2(assoc 8 enn))
  (setq mm3(assoc 62 enn))
  (if mm3
    (setq lst(list mm1 mm2 mm3))
    (setq lst(list mm1 mm2))
    )
  (setq ss1 (ssget "X" lst))
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-28 16:29:58 | 显示全部楼层
非常谢谢楼上的,程序可以正常执行了,但是不能实现被选对象高亮显示呀?
还请再帮忙解决一下,不胜感激!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-2-28 20:45:14 | 显示全部楼层
先谢谢楼上的,但我还是有点不懂,这个函数怎样用呢?
(defun c:gl (/ mm1 mm2 mm3 enn ss1)
(setq enn (entget (car (entsel))))
(setq mm1 (assoc 0 enn))
(setq mm2(assoc 8 enn))
(setq mm3(assoc 62 enn))
(if mm3
(setq lst(list mm1 mm2 mm3))
(setq lst(list mm1 mm2))
)
(setq ss1 (ssget "X" lst))
(redraw ss1 3)
(princ)
)
这样在CAD里执行时,报错,这是怎么回事呢?
请高手多多指教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-28 20:53:29 | 显示全部楼层
(redraw [ename [mode]])
必须要有两个参数:(redraw <ename> <mode>), 在此, ename 是要重画的图元名,
mode 是下列之一的整数值:

REDRAW 模式
作  用
1 重画在屏幕上的图元
2 未画的图元 (空白图元)
3 高亮度图元 (如果能显示的话)
4 低亮度图元 (如果能显示的话)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-28 21:01:22 | 显示全部楼层
能不能给个具体的程序呢,这样好理解点!
俺还是不明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-28 21:23:24 | 显示全部楼层
[php]
(defun c:gl (/ mm1 mm2 mm3 enn lst ss1 i)
  (setq enn (entget (car (entsel))))
  (setq mm1 (assoc 0 enn))
  (setq mm2 (assoc 8 enn))
  (setq mm3 (assoc 62 enn))
  (if mm3
    (setq lst (list mm1 mm2 mm3))
    (setq lst (list mm1 mm2))
  )
  (setq ss1 (ssget "X" lst))
  (setq i 0)
  (repeat (sslength ss1)
    (redraw (ssname ss1 i) 3)
    (setq i (1+ i))
  )
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 08:18:54 | 显示全部楼层
太感谢楼上了,但是我想要那种带夹点的高亮显示,这样可以让它们一起换一种颜色或是一个图层。虽然楼上的程序可以显示出都选择了哪些线,但不能让它们一起换色和图层了。
    还有,用(ssget "X")这个函数选的是所有的线,通用性不强。如果只想框选某一范围的对象,该如何实现呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-3-1 10:35:04 | 显示全部楼层
哇!真是这样呀,但是哪位高手可以告诉我带夹点的高亮显示如何才能实现呢?
    拜托!拜托!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-3-2 13:17:49 | 显示全部楼层
还从没用过sssetfirst函数,想不到这等功能,多谢12楼指教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-2 16:49:56 | 显示全部楼层
太感谢12楼的兄弟了,真是高手呀,感谢所有为我解答问题的兄弟,多谢你们!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-2 17:43:40 | 显示全部楼层
12楼的老兄,果然是高手阿。
多谢指教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 04:02 , Processed in 0.319597 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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