明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2050|回复: 9

[求助]按颜色选择pline并炸开。

[复制链接]
发表于 2004-8-20 00:43:00 | 显示全部楼层 |阅读模式
有很多条线,都是pline,颜色多种。


如何实现框选以后,只炸开某种颜色的pline?图形未分层。


比如黄色,color=2
发表于 2004-8-20 07:56:00 | 显示全部楼层
(defun c:test ()
(setq ss1 (ssget "X" (list (cons 0 "POLYLINE") (cons 62 2))))
(setq n 0)
(while (setq s1(ssname ss n))
(command "_explode" s1)
(setq n (+ 1 N))
)
(princ)
)
 楼主| 发表于 2004-8-20 18:43:00 | 显示全部楼层
老大,用不了啊,我用2004都不行。


        错误: 参数类型错误: lselsetp nil
发表于 2004-8-20 18:49:00 | 显示全部楼层
第二句 (setq ss1 (ssget "X" (list (cons 0 "POLYLINE") (cons 62 2))))
你改成下面的试试 (setq ss1 (ssget "X" '((0 . "LWPOLYLINE") ( 62 . 2))))
 楼主| 发表于 2004-8-20 19:11:00 | 显示全部楼层
还是不行啊,你不信自己试一下。
发表于 2004-8-20 19:57:00 | 显示全部楼层
(defun c:test(/ ss i)



(setvar "cmdecho" 0)


(setq color (getint "\n请输入颜色代码:")


                                                                                 ss (ssget "x" (list (cons 0        "*polyline")(cons 62 color)))


                                                                                 i 0


)


(if ss


(repeat (sslength ss)


         (setq ename (ssname ss i)


                                                                         i (1+ i))


         (vl-cmdf "explode" ename)


)


)


(setvar "cmdecho" 1)


(princ)


)
 楼主| 发表于 2004-8-20 20:40:00 | 显示全部楼层
这个是可以,但似乎太暴力了,根本没有进行选择的步骤,直接把整张图全部炸开了。
发表于 2004-8-21 00:48:00 | 显示全部楼层



(setq color (getint "\n请输入颜色代码:")


                                                                                 ss (ssget "x" (list (cons 0        "*polyline")(cons 62 color)))


                                                                                 i 0


)改为


(setq color (getint "\n请输入颜色代码:")


                                                                                 ss (ssget         (list (cons 0        "*polyline")(cons 62 color)))


                                                                                 i 0


)
发表于 2004-8-21 14:07:00 | 显示全部楼层
(setq ss1 (ssget "X" (list (cons 0 "OLYLINE") (cons 62 2))))


(setq ss1 (ssget "X" '((0 . "LWPOLYLINE") ( 62 . 2))))


语法上都没有问题,实体过滤上可以"*POLYLINE"


关键是有的实体颜色是随层的,这样就没有62组码。:)
发表于 2004-8-21 18:02:00 | 显示全部楼层
2楼的程序主要是没将变量设为局部变量及对象类型不完全符合楼主的要求导致无法使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-30 18:33 , Processed in 0.185406 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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