找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 810|回复: 3

[求助] [求助]:怎样才能在一定范围中自动选择东西

[复制链接]
发表于 2007-11-21 19:58:01 | 显示全部楼层 |阅读模式

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

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

×
(DEFUN c:ewae (/ ellp selt loop pmin pmax x sn numb spt cen vpt hpt ewae svol)
  (begn)
  (PRINC " 圆圈的隐现  ")
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (SETQ        ellp (SSGET "x"        '((-4 . "<AND")
                         (0 . "ELLIPSE")
                         (62 . 5)
                         (-4 . "AND>")        ))        )
  (if         (/= ellp nil) (command "erase" ellp "")
            (progn

  (SETQ        plmin (GETPOINT "\n 右上点:    ")
             plmax  (GETPOINT "\n 左下点:    ")
        pmin (LIST (CAR plmin) (CADR plmin))
        pmax (LIST (CAR plmax) (CADR plmax))
        x    (/ (DISTANCE pmax pmin) 300.6)        )
  (SETQ selt (SSGET "x" '((62 . 2)))        loop (SSLENGTH selt)        sn  0        )
  (REPEAT loop
    (SETQ numb (ENTGET (SSNAME selt sn)        )        )
    (SETQ spt  (cdr (assoc 10 numb)) svol (atof (cdr (assoc 1 numb)))        )
    (setq cen (polar spt (* 50 (/ pi 180)) (* x 1.9))        )
    (IF (< svol 9.1) (setq cen (polar cen  pi (* x 0.7)))        )
    (setq vpt (polar cen (/ pi 2) (* x 2.2))
          hpt (polar cen 0 (* x 2.2))
          sn (1+ sn)                )
    (COMMAND "COLOR" "5")
    (command "ellipse" "c" cen vpt hpt)
    (SETQ ellip (entget (entlast))        )
    (SETQ ellip (SUBST (CONS 8 "DIM") (ASSOC 8 ellip) ellip))
    (setq ellip (subst (cons 62 5)  (assoc 62 ellip) ellip))
    (ENTMOD ellip)
    (COMMAND "COLOR" "BYLAYER")
      )  ;_ end of REPEAT
     )        ;end of progn   
    )        ;end of if
    (endpr)
  ) ;_ end of DEFUN  我这样会把模型空间中全部的黄色字都选了,但是我只要手动输入那两点范围内的黄色字就可以了,大哥们帮帮忙啊!!!!!!!!!!!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-11-22 09:24:56 | 显示全部楼层
思路
用getcorner 给出窗选的两点pt1 pt2
再用ssget ,把 x 换成 w 加上pt1 pt2  和 '((-4 . " (0 . "ELLIPSE")
(62 . 5)
(-4 . "AND>")

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

使用道具 举报

发表于 2007-11-22 22:30:54 | 显示全部楼层
[php](DEFUN c:ewae (/ ellp selt loop        pmin pmax x sn numb spt        cen vpt        hpt ewae
               svol)
;;;  (begn)
  (PRINC " 圆圈的隐现 ")
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq pt1 (getpoint "\n框选左下角:"))
  (setq pt2 (getcorner pt1 "\n对角点:"))
  (SETQ        ellp (SSGET "w"
                    pt1
                    pt2
                    (list (cons 0 "ELLIPSE")
                          (cons 62 5)
                    )
             )
  )
  (if (/= ellp nil)
    (command "erase" ellp "")
    (progn
      (SETQ plmin (GETPOINT "\n 右上点: ")
            plmax (GETPOINT plmin "\n 左下点: ")
            pmin  (LIST (CAR plmin) (CADR plmin))
            pmax  (LIST (CAR plmax) (CADR plmax))
            x          (/ (DISTANCE pmax pmin) 300.6)
      )
      (SETQ selt (SSGET "x" '((62 . 2)))
            loop (SSLENGTH selt)
            sn         0
      )
      (REPEAT loop
        (SETQ numb (ENTGET (SSNAME selt sn)))
        (SETQ spt  (cdr (assoc 10 numb))
              svol (atof (cdr (assoc 1 numb)))
        )
        (setq cen (polar spt (* 50 (/ pi 180)) (* x 1.9)))
        (IF (< svol 9.1)
          (setq cen (polar cen pi (* x 0.7)))
        )
        (setq vpt (polar cen (/ pi 2) (* x 2.2))
              hpt (polar cen 0 (* x 2.2))
              sn  (1+ sn)
        )
        (COMMAND "COLOR" "5")
        (command "ellipse" "c" cen vpt hpt)
        (SETQ ellip (entget (entlast)))
        (SETQ ellip (SUBST (CONS 8 "DIM") (ASSOC 8 ellip) ellip))
        (setq ellip (subst (cons 62 5) (assoc 62 ellip) ellip))
        (ENTMOD ellip)
        (COMMAND "COLOR" "BYLAYER")
      )
    )
  )
;;;  (endpr)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-26 17:24:41 | 显示全部楼层
楼上的程序,当模型空间选定区域里有椭圆的时候,可以删除选定区域的椭圆,别的区域删不了OK,但是当选定区域里没有随圆时,模型空间中所有黄色字(不管是否以经有椭圆的)都加了椭圆了,这样不行啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 01:38 , Processed in 0.350862 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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