找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2793|回复: 15

[求助] 己解决!谢谢大仙们!!!

[复制链接]
发表于 2013-11-26 17:24:05 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 freeok2013 于 2013-11-26 23:24 编辑

此程序来源于一位大神,自己改不来,又找不着原帖了,在此求帮助!谢谢这位大神及大侠们!
(defun c:pp(/ ss i e cpt pts)
  (setq ss (ssget '((0 . "circle"))))
  (while (setq e (ssname ss (setq i (1+ i))))
    (setq cpt (cdr (assoc 10 (entget e))))
    (if (not (member cpt pts))
      (setq pts (cons cpt pts))
    )
  )
  (length pts)
  (alert (strcat "\n共有圆的个数:" (rtos pt))) ;想要弹出此段该如何加?谢谢/想要写入此段该如何加?谢谢

)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-11-26 17:39:41 | 显示全部楼层
(defun c:pp(/ ss i e cpt pts)
  (setq ss (ssget '((0 . "circle"))))
  (while (setq e (ssname ss (setq i (1+ i))))
    (setq cpt (cdr (assoc 10 (entget e))))
    (if (not (member cpt pts))
      (setq pts (cons cpt pts))
    )
  )
  (setq pt(length pts))
  (alert (strcat "\n共有圆的个数:" (itoa pt)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-11-26 17:50:51 | 显示全部楼层
(defun c:pp(/ ss i e cpt pts)
  (setq ss (ssget '((0 . "circle"))) i -1)
  (while (setq e (ssname ss (setq i (1+ i))))
    (setq cpt (cdr (assoc 10 (entget e))))
    (if (not (member cpt pts))
      (setq pts (cons cpt pts))
    )
  )
  (setq pt(length pts))
  (alert (strcat "\n共有圆的个数:" (itoa pt))))

点评

好像还是没有弹出 AutoCAD信息框呢。  详情 回复 发表于 2013-11-26 20:35
谢谢您!另外我想问下, (setq ss (ssget '((0 . "circle"))) i -1);这行如果有 i -1) 运行出结果下一行会出现 -1 (setq ss (ssget '((0 . "circle"))));这行如果没有 i -1) 运行出结果下一行则不会出现  详情 回复 发表于 2013-11-26 19:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-26 19:43:44 | 显示全部楼层
19622928 发表于 2013-11-26 17:50
(defun c:pp(/ ss i e cpt pts)
  (setq ss (ssget '((0 . "circle"))) i -1)
  (while (setq e (ssname  ...

谢谢您!另外我想问下,
    (setq ss (ssget '((0 . "circle"))) i -1);这行如果有 i -1) 运行出结果下一行会出现 -1
    (setq ss (ssget '((0 . "circle"))));这行如果没有 i -1) 运行出结果下一行则不会出现 -1。哪个正确呢?

点评

你问的是单行? 这两个语句单行运行结果都是让你选对象,第一个出现-1,是因为这行求值的最后结果是-1. 但结合你上面的程序,只有第一个带-1的对,因为这个是给循环里面的I赋初值的,循环里面不断的+1,才让你  详情 回复 发表于 2013-11-26 20:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-11-26 20:02:13 | 显示全部楼层
freeok2013 发表于 2013-11-26 19:43
谢谢您!另外我想问下,
    (setq ss (ssget '((0 . "circle"))) i -1);这行如果有 i -1) 运行出结果 ...

你问的是单行?

这两个语句单行运行结果都是让你选对象,第一个出现-1,是因为这行求值的最后结果是-1.

但结合你上面的程序,只有第一个带-1的对,因为这个是给循环里面的I赋初值的,循环里面不断的+1,才让你能正确的得到每一个实体。如果不加-1就错了。
在循环外面,给循环里面的变量赋初值0,或者这个里面的-1,是写程序的一个技巧。

点评

谢谢!明白了是初始赋值! 但是为什么----带有 -1 的运行如下: 命令: pp 选择对象: 指定对角点: 找到 22 个 选择对象: -1 命令: 不 带有 -1 的运行如下: 命令: ppp  详情 回复 发表于 2013-11-26 20:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-26 20:32:37 | 显示全部楼层
Lisphk 发表于 2013-11-26 20:02
你问的是单行?

这两个语句单行运行结果都是让你选对象,第一个出现-1,是因为这行求值的最后结果是-1 ...

谢谢!明白了是初始赋值!
   但是为什么----带有 -1 的运行如下:
     命令: pp
    选择对象: 指定对角点: 找到 22 个
    选择对象:
    -1
    命令:

    不 带有 -1 的运行如下:
   命令: ppp
   选择对象: 指定对角点: 找到 22 个
   选择对象:----------------------------------为什么这里都还会出现一行选择对象,当然不影响使用。
   命令:

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

使用道具 举报

 楼主| 发表于 2013-11-26 20:35:18 | 显示全部楼层
19622928 发表于 2013-11-26 17:50
(defun c:pp(/ ss i e cpt pts)
  (setq ss (ssget '((0 . "circle"))) i -1)
  (while (setq e (ssname  ...

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

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-26 21:10:09 | 显示全部楼层
freeok2013 发表于 2013-11-26 20:35
还是没有弹出 AutoCAD信息框呢。

  1. (defun c:tt (/ ss i e cpt pts)
  2.   (if (setq ss (ssget '((0 . "circle"))))
  3.     (progn (setq i -1)
  4.            (while (setq e (ssname ss (setq i (1+ i))))
  5.              (setq cpt (cdr (assoc 10 (entget e)))) ;_
  6.              (if (not (member cpt pts))
  7.                (setq pts (cons cpt pts))
  8.              )
  9.            )
  10.            (alert (strcat "\n共有圆的个数:"
  11.                           (rtos (length pts))
  12.                           "\n另有同心圆: "
  13.                           (itoa (- (sslength ss) (length pts)))
  14.                   )
  15.            )
  16.     )
  17.   )
  18.   (princ)
  19. )

点评

试了下,可行,但是我把 circle 改成polyline 为什么又不行了呢?LINE是可以的。谢谢!  详情 回复 发表于 2013-11-26 21:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-26 21:28:32 | 显示全部楼层

试了下,可行,但是我把 circle 改成polyline 为什么又不行了呢?LINE是可以的。谢谢!

点评

你首先要明确干什么,再就是要明白 DXF 组码的意思,当然对这个lisp也要懂  详情 回复 发表于 2013-11-26 21:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-26 21:43:53 | 显示全部楼层
freeok2013 发表于 2013-11-26 21:28
试了下,可行,但是我把 circle 改成polyline 为什么又不行了呢?LINE是可以的。谢谢!

你首先要明确干什么,再就是要明白 DXF 组码的意思,当然对这个lisp也要懂

点评

统计圆,线,多段线呢。 这个DXF组码还真是不太清楚。。。有建议参考的吗?谢谢!  详情 回复 发表于 2013-11-26 21:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-26 21:50:13 | 显示全部楼层
st788796 发表于 2013-11-26 21:43
你首先要明确干什么,再就是要明白 DXF 组码的意思,当然对这个lisp也要懂

统计圆,线,多段线呢。
       这个DXF组码还真是不太清楚。。{:soso_e121:}。有建议参考的吗?谢谢!

点评

1 论坛上这种程序很多 2 看 help , acad_dxf.chm acad_alr.chm  详情 回复 发表于 2013-11-26 22:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-26 22:02:20 | 显示全部楼层
freeok2013 发表于 2013-11-26 21:50
统计圆,线,多段线呢。
       这个DXF组码还真是不太清楚。。。有建议参考的吗?谢谢!
...

1 论坛上这种程序很多
2 看 help , acad_dxf.chm acad_alr.chm

点评

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

使用道具 举报

 楼主| 发表于 2013-11-26 22:35:17 | 显示全部楼层
st788796 发表于 2013-11-26 22:02
1 论坛上这种程序很多
2 看 help , acad_dxf.chm acad_alr.chm

非常谢谢,还是解不出来。

点评

真不知道你到底要干什么?圆是按半径统计,直线按什么统计?PLINE按什么统计?  详情 回复 发表于 2013-11-27 08:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10248个

财富等级: 富甲天下

发表于 2013-11-27 08:05:56 | 显示全部楼层
freeok2013 发表于 2013-11-26 22:35
非常谢谢,还是解不出来。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 02:30 , Processed in 0.374110 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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