找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1324|回复: 15

[LISP程序]:还请高手解决!

[复制链接]
发表于 2002-6-16 17:15:34 | 显示全部楼层 |阅读模式

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

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

×
如果我想统计图中白颜色的文本“10”,请问能否这样:(sslength (ssget '((62 . 7)(8. "0")(0 . "10"))))?如果不行请执教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-6-16 17:22:39 | 显示全部楼层

Re: [LISP程序]:还请高手解决!

最初由 keleboy 发布
[B]如果我想统计图中白颜色的文本“10”,请问能否这样:(sslength (ssget '((62 . 7)(8. "0")(0 . "10"))))?如果不行请执教! [/B]


推荐你用

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

使用道具 举报

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

使用道具 举报

发表于 2002-6-17 08:16:23 | 显示全部楼层
(sslength (ssget "X" '((0 . "TEXT")(62 . 7)(1 . "10"))));;(不包括随层白色之文本)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-18 01:06:09 | 显示全部楼层
送你两个函数,看看第二个

  1. (defun cy_lay_62(filt);;;filt=图层颜色1~255 ,列出所有颜色为filt的图层表
  2.   (setq lay0(tblnext "LAYER" t)
  3.         laynam(dxf 2 lay0)lay-col(abs (dxf 62 lay0)))
  4.   (if (= filt lay-col)
  5.     (setq layb(list laynam))
  6.     (setq layb '())
  7.   )
  8.   (while (setq lay0(tblnext "LAYER"))
  9.     (setq laynam(dxf 2 lay0)
  10.           lay-col(abs (dxf 62 lay0)))
  11.     (if (= filt lay-col)
  12.       (setq layb(append layb (list laynam)))
  13.     )
  14.   )
  15. )

  16. (defun cy_ssget_col(col / E EN IN LAYB N S S1);;;col=1~255
  17.   (setq layb(cy_lay_62 col))
  18.   (prompt "\n选择要用颜色过滤的物体【不选=全选】:")
  19.   (setq s (ssget))
  20.   (if (not s)(setq s(ssget "X")))
  21.   (setq n (sslength s) in 0 s1(ssadd))
  22.   (repeat n
  23.     (setq e(ssname s in) en(entget e)
  24.           in (1+ in))
  25.     (if (assoc 62 en)
  26.       (if (= (dxf 62 en) col)(ssadd e s1))
  27.       (if (member (dxf 8 en) layb)(ssadd e s1))
  28.     )
  29.   )s1
  30. )

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

使用道具 举报

发表于 2002-6-18 10:24:14 | 显示全部楼层

1

最初由 cy956 发布
[B]送你两个函数,看看第二个

(defun cy_lay_62(filt);;;filt=图层颜色1~255 ,列出所有颜色为filt的图层表
  (setq lay0(tblnext "LAYER" t)
        laynam(dxf 2 lay0)lay-col(abs (dxf 62 lay0)))
  (if (= fi... [/B]

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

使用道具 举报

 楼主| 发表于 2002-6-18 21:31:41 | 显示全部楼层
我是个cad初学者,请问将此代码放入lisp编辑器中,怎样执行?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-18 22:51:01 | 显示全部楼层
内部函数,其实是作为一个小模块,方便引用的。
最后它返回一个选择集而已。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2002-6-25 15:58:14 | 显示全部楼层
执行到第一句便提示错误: 输入的列表有缺陷?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-25 22:32:50 | 显示全部楼层
少了一个返回值:

  1. (defun cy_lay_62(filt / LAY-COL LAY0 LAYB LAYNAM)
  2.   (setq lay0(tblnext "LAYER" t)
  3.         laynam(dxf 2 lay0)lay-col(abs (dxf 62 lay0)))
  4.   (if (= filt lay-col)
  5.     (setq layb(list laynam))
  6.     (setq layb '())
  7.   )
  8.   (while (setq lay0(tblnext "LAYER"))
  9.     (setq laynam(dxf 2 lay0)
  10.           lay-col(abs (dxf 62 lay0)))
  11.     (if (= filt lay-col)
  12.       (setq layb(append layb (list laynam)))
  13.     )
  14.   )layb  ;;;<--------
  15. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2002-6-26 11:01:08 | 显示全部楼层
不好意思,我没有QQ。申请了几次,
都是服务器忙,索性再也不睬它。

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 00:43 , Processed in 0.436538 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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