找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 35007|回复: 24

[求助] 如何选择块内和Bylayer的各种非连续线型

[复制链接]
发表于 2013-7-3 08:43:30 | 显示全部楼层 |阅读模式

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

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

×
请教一个问题:如何选择块内和Bylayer的各种非连续线型
(setq ss (ssget  '((0 . "arc,circle,ellipse,line,*polyline"))))    ;最好只选择下面四种线型
(setq ss1(ssget ss (       ;选取center线型和Bylayer为center的线型,包含块
(setq ss2(ssget ss (       ;选取dashed线型和Bylayer为dashed的线型,包含块
(setq ss3(ssget ss (       ;选取phantom线型和Bylayer为phantom的线型,包含块
(setq ss3(ssget ss (       ;选取divide线型和Bylayer为divide的线型,包含块
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-7-3 08:51:30 | 显示全部楼层
严重概念性错误!块内对象是不可以用选择集选择的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-7-3 09:01:25 | 显示全部楼层
无法直接选。
块内实体用ssget无法直接选到。
属性(颜色、线形等)随层的实体,其属性是默认的,是不在实体表中直接显示的,要判断其属性,需要对其层进行判别(tblsearch),所以,这个工作量不是一步ssget就能完成的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-3 09:49:48 | 显示全部楼层
牢固 发表于 2013-7-3 08:51
严重概念性错误!块内对象是不可以用选择集选择的!

版主大大,你好
问题现在可能要分成几部分了:
(一)、不在块内的
     (1).线型为Center、Dashed、Phantom、Divide的
     (2).bylayer为Center、Dashed、Phantom、Divide的
     (3).byblock为Center、Dashed、Phantom、Divide的
(二)、在块内的
     (1).线型为Center、Dashed、Phantom、Divide的
     (2).bylayer为Center、Dashed、Phantom、Divide的
     (3).byblock为Center、Dashed、Phantom、Divide的

是否可以帮我写一个包含(一).(1)(2)的选择集呢,这个我很需要 非常感谢版主大大了!

点评

遍历图层,找出是这几个线形的图层,构造选择集  详情 回复 发表于 2013-7-3 11:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-3 10:21:22 | 显示全部楼层
.bylayer为Center、Dashed、Phantom、Divide的


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

使用道具 举报

 楼主| 发表于 2013-7-3 10:36:45 | 显示全部楼层
newer 发表于 2013-7-3 10:21
这句话是啥意思? 完整的主谓宾都说出来吧。

线型分为bylayer,Center......
如果某条线在中心线层上 线型为bylayer,
那么在筛选的时候应该当这条线为Center线型处理,
嗯,,,就是这个意思噢!~~~{:soso_e100:}

点评

这句话你好像还是没说明白啊, 是不是这个意思: 线B的线型是BYLAYER, 在层 A 上, 而层A的线型设置是CENTER, 所以线B 线型也应该是CENTER  详情 回复 发表于 2013-7-3 10:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-3 10:45:20 | 显示全部楼层
yangist 发表于 2013-7-3 10:36
线型分为bylayer,Center......
如果某条线在中心线层上 线型为bylayer,
那么在筛选的时候应该当这条线 ...

这句话你好像还是没说明白啊,

是不是这个意思:

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-3 11:04:42 | 显示全部楼层
yangist 发表于 2013-7-3 09:49
版主大大,你好
问题现在可能要分成几部分了:
(一)、不在块内的

遍历图层,找出是这几个线形的图层,构造选择集
  1. (ssget '((-4 . "<or")
  2.   (6 . "center,dashed,phantom,divide")
  3.   (-4 . "<and")
  4.   (8 . "layer1,layer2")
  5.   (6 . "bylayer")
  6.   (-4 . "and>")
  7.   (-4 . "or>")
  8. )
  9. )

评分

参与人数 1D豆 +5 收起 理由
yangist + 5 热心帮忙奖!

查看全部评分

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-3 11:22:09 | 显示全部楼层
获取图层部分
  1. (defun getltype (/ d r)
  2.   (while (setq d (tblnext "layer" (null d)))
  3.     (if (wcmatch (cdr (assoc 6 d)) "CENTER,DASHED,PHANTOM,DIVIDE")
  4.       (setq r (cons (cdr (assoc 2 d)) r))
  5.     )
  6.   )
  7.   (vl-string-translate
  8.     " "
  9.     ","
  10.     (vl-string-trim "(,)" (vl-princ-to-string r))
  11.   )
  12. )

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

使用道具 举报

 楼主| 发表于 2013-7-3 14:03:37 | 显示全部楼层
eachy 发表于 2013-7-3 11:04
遍历图层,找出是这几个线形的图层,构造选择集

谢谢 这段代码对我很有用,下面的那段看不懂噢!
现在我的程序好用了,非常感谢

点评

就是,贴上来可以得到更多的指点,进步更快  详情 回复 发表于 2013-7-3 15:19
把你写的程序贴上来吧。  详情 回复 发表于 2013-7-3 15:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-3 15:09:25 | 显示全部楼层
yangist 发表于 2013-7-3 14:03
谢谢 这段代码对我很有用,下面的那段看不懂噢!
现在我的程序好用了,非常感谢

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-3 15:19:35 | 显示全部楼层
yangist 发表于 2013-7-3 14:03
谢谢 这段代码对我很有用,下面的那段看不懂噢!
现在我的程序好用了,非常感谢

就是,贴上来可以得到更多的指点,进步更快{:soso_e100:}

点评

(defun auto_lay_lts () (setq ss0 (ssget '((0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE")))) (setq ss1 (ssadd));;;建立选择集 (setq ss2 (ssadd)) (setq ss3 (ssadd)) (setq ss4 (ssadd)) (setq  详情 回复 发表于 2013-7-4 14:15
还没写好,没有达到我要的效果 麻烦再帮我看下这段代码能这样写吗?谢谢 (setq ss0 (ssget '((-4 . "")))) (setq ss1 (ssget ss0 '((6 . "center,center*,*center")))) (command "_.chprop" ss1 "" "la" "  详情 回复 发表于 2013-7-4 11:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-4 11:39:15 | 显示全部楼层
eachy 发表于 2013-7-3 15:19
就是,贴上来可以得到更多的指点,进步更快

还没写好,没有达到我要的效果

麻烦再帮我看下这段代码能这样写吗?谢谢
  1.   (setq        ss0 (ssget '((-4 . "<or") (6 . "*") (-4 . "<and") (8 . "*") (6 . "bylayer") (-4 . "and>") (-4 . "or>"))))
  2.   (setq        ss1 (ssget ss0 '((6 . "center,center*,*center"))))
  3.   (command "_.chprop" ss1 "" "la" "03Center" "c" "bylayer" "lt" "bylayer" "")


点评

(defun auto_lay_lts () (setq ss0 (ssget '((0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE")))) (setq ss1 (ssadd));;;建立选择集 (setq ss2 (ssadd)) (setq ss3 (ssadd)) (setq ss4 (ssadd)) (setq  详情 回复 发表于 2013-7-4 14:12
ss0 是选择集了,后面不能嵌套在 ssget 里面,ssget 需要过滤表  详情 回复 发表于 2013-7-4 12:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-4 12:00:00 | 显示全部楼层
yangist 发表于 2013-7-4 11:39
还没写好,没有达到我要的效果

麻烦再帮我看下这段代码能这样写吗?谢谢

ss0 是选择集了,后面不能嵌套在 ssget 里面,ssget 需要过滤表

点评

eachy 噢 那应该怎么写呢 我想把ss0 再按线型分成4个list 分别操作  详情 回复 发表于 2013-7-4 12:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-4 12:21:49 | 显示全部楼层
本帖最后由 yangist 于 2013-7-4 12:38 编辑
eachy 发表于 2013-7-4 12:00
ss0 是选择集了,后面不能嵌套在 ssget 里面,ssget 需要过滤表

eachy 噢 那应该怎么写呢
我想把ss0 再按线型分成4个list 分别操作
即通过ss0 创建4个选择集

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 10:40 , Processed in 0.482217 second(s), 70 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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