找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: taner

[求助] [求助]:請教:怎樣判斷兩個選擇集是否相等?

  [复制链接]

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-10-20 21:55:13 | 显示全部楼层
我也覺得XYP版主的想法不錯,不知道能否將SSUNION  的源碼公開,供學習一下.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-20 22:29:43 | 显示全部楼层
最初由 taner 发布
[B]我也覺得XYP版主的想法不錯,不知道能否將SSUNION  的源碼公開,供學習一下. [/B]

已经给出源码了:
[php](command "select" ss1 ss2 "")[/php]
源码:
  1. [FONT=courier new];;;ss1 + ss2 选择集之和
  2. ;;;方式 : (ssunion ss1 ss2)
  3. (defun ssunion (ss1 ss2 / hilite ss3)
  4.   (setq hilite (getvar "highlight"))
  5.   (setvar "highlight" 0)
  6.   (command "_.select" ss1 ss2 "")
  7.   (setq ss3 (ssget "p"))
  8.   (setvar "highlight" hilite)
  9.   ss3
  10. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-10-26 08:07:23 | 显示全部楼层

還沒解決的問題

如:
(setq ss1 (ssget (list (cons 0 "LINE,ARC,*POLYLINE"))))
一些編輯指令改變ss1後,
現在接著創建第第二個選擇集,但是不想重複以下的指令.(創建ss1時,可能用了很多方式,如c,w等)
(setq ss2 (ssget (list (cons 0 "LINE,ARC"))))
而是想讓cad記住上次選擇的方式,即選擇的範圍是一樣大的,只是範圍內的實體變了.

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-10-26 20:34:27 | 显示全部楼层
老大,這樣不行啊
我要將這個選擇集賦給變量,以後要調用啊.比如,第一個選擇集選發LINE,ARC,POLYLINE,選擇方式用了c,w等方式,即:(setq ss1 (ssget (list (cons 0 "LINE,ARC,*POLYLINE"))))
然後,對ss1作了編輯,即SS1變化了
現要創建第二個選擇集,選擇範圍和SS1相同,只是這次只要line了,並要將選擇集賦給變量ss2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-10-26 21:41:15 | 显示全部楼层
狂刀先生,兄弟我還是沒弄明白,請麻煩一下,編幾行代碼,如何?謝謝先!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-10-27 00:17:49 | 显示全部楼层
如果是這樣呢?
(setq ss1 (ssget (list (cons 0 "LINE,ARC"))))
而ss2裏我要的是polyline.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-10-27 00:23:19 | 显示全部楼层
最初由 taner 发布
[B]如果是這樣呢?
(setq ss1 (ssget (list (cons 0 "LINE,ARC"))))
而ss2裏我要的是polyline. [/B]

不知道你这两个选择集什么关系?既然ss1里没有选择 polyline ,那需要的时候当然要重新选择或者使用 x 选项,这和 ss1 有什么关系?
(setq ss2 (ssget '((0 . "*polyline"))))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-11-16 13:59:03 | 显示全部楼层
最初由 xyp1964 发布
[B]
已经给出源码了:
[php](command "select" ss1 ss2 "")[/php]
源码:
[CODE][FONT=... [/B]


明经上找的

;;选择集合并[oldss-原选择集 ss-被合并的选择集]
(defun yad_ssadd(oldss ss / n)
  (setq n -1)
  (repeat (sslength ss)
    (ssadd (ssname ss (setq n (1+ n))) oldss)
  )
  oldss
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-16 17:57:35 | 显示全部楼层
最初由 taner 发布
[B]

明经上找的

;;选择集合并[oldss-原选择集 ss-被合并的选择集]... [/B]
  1. [FONT=courier new](defun yad_ssadd (oldss ss / n)
  2.   (command "_.select" oldss ss "")
  3.   (setq oldss (ssget "P"))
  4.   oldss
  5. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-16 18:32:07 | 显示全部楼层
这样就可以了

  1. (defun yad_ssadd (oldss ss / n)
  2.   (command "_.select" oldss ss "")
  3.   (ssget "P")
  4. )

另:
taner 可试试看:
其实按我的习惯是不这么做的(步骤有点烦),不过这么写比较简单

  1. (setq ss (ssget ))
  2. (setq ssline (ssget "p" '((0 . "LINE,ARC"))))
  3. (command ".select" ss "")
  4. (setq sspoly (ssget "p" '((0 . "*POLYLINE"))))
  5. (command ".select" ss "")
  6. (setq ssCIR (ssget "p" '((0 . "CIRCLE,ELLIPSE"))))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-11-17 00:04:34 | 显示全部楼层
在(command "pedit" "M" ss "" "j" pc "")
      (command "pedit" "M" ss "" "Y" "j" pc "")
这两句前需要加一个条件判断,怎么加?
[PHP](defun c:xx (/ z pc ss)
  (setq z (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (command "undo" "be")
  (initget 5)
  (setq pc (getdist "\n请输入模糊值:"))
  (if (setq ss (ssget '((-4 . "<or") (-4 . "<and")
                       (0 . "line,arc")
                       (-4 . "and>")
                       (-4 . "<and")
                       (0 . "*polyline")
                       (70 . 0)
                       (-4 . "and>")
                       (-4 . "or>")
                      )
               )
      )
    (if (条件语句)
      (command "pedit" "M" ss "" "j" pc "")
      (command "pedit" "M" ss "" "Y" "j" pc "")
    )
  )
  (command "undo" "e")
  (setvar "cmdecho" z)
  (princ)

)[/PHP]

怎么没人理呢?达到的目的是将选中的线,弧,非闭合多义线聚合起来.
另外,不想将PC设为全局变量,怎样才能使PC具有记忆功能?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:05 , Processed in 0.429471 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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