找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3096|回复: 20

[表格] 统计圆并分组编号生成表格

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-10-15 17:31:55 | 显示全部楼层 |阅读模式
  • 插件名称 : 圆统计表
  • 作  者 : Lispboy
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2016-10-15
  • 命令名称 :XDTB_TJCir
  • 插件介绍 :统计圆并分组编号生成表格
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

×
本帖最后由 newer 于 2017-9-11 22:27 编辑

函数 XD::Table:MakeFromList 见:http://bbs.xdcad.net/thread-705792-1-1.html

[sell=5]
(defun c:XDTB_TJCir ( / #height class1 class2 ents lst pt ss str1 str2 tlst2 val x y)
  (defun _maketable (lst)
    (if (setq pt (getpoint "\n表格插入点<退出>:"))
      (progn
        (setq lst (xd::table:celltile (list "序号" "编号" "孔径" "X坐标" "Y坐标") 1 lst)
              lst (cons (list "孔编号表" nil nil nil nil) lst)
        )
        (XD::Table:MakeFromList lst (trans pt 1 0) #xd_var_text_height (/ #xd_var_text_height 2.0))
      )
    )
  )
  (defun _format (val)
     (xdrx_string_regexpr "(?<=\\.[0-9]+)0{1,}$" val "")
  )
  (defun _write (lst)
    (setq tlst2 nil)
    (setq class1 "A")
    (mapcar
      '(lambda (x)
         (setq class2 "0")
         (mapcar
           '(lambda (y /)
              (setq str1 (strcat class1 (setq class2 (itoa (1+
                                                               (atoi class2)
                                                           )
                                                     )
                                        )
                         )
              )
              (xdrx_text_make (cadr y) str1 #xd_var_text_height (xd::ucs:angle))
              (XD::Text:AdjustAlignMent (entlast) 1 2)
              (xdrx_entity_move (entlast) (trans (xd::geom:get9pt (entlast) 5) 1 0) (cadr y) )
              (setq str2 (strcat "Φ" (rtos (* 2 (last y)) 2 1))
                    y (trans (cadr y) 0 1))
              (setq tlst2 (cons (list str1 str2
                                      (_format (rtos (car y) 2 4)) (_format (rtos
                                                                 (cadr y)
                                                                 2 4)
                                                           )
                                ) tlst2
                          )
              )
            )
           x
         )
         (setq class1 (chr (1+ (ascii class1))))
       )
      lst
    )
    (_maketable (reverse tlst2))
  )
  (if (not #xd_var_text_height)
    (setq #xd_var_text_height 3.5)
  )
  (if (setq val (getreal (xdrx_prompt "\n输入字高<" #xd_var_text_height ">:" t)))
    (setq #xd_var_text_height val)
  )
  (if (setq ss (xd::ssget "\n选取统计的圆<退出>" '(((0 . "circle")))))
    (progn
      (xdrx_begin)
      (xdrx_sysvar_push '("dimzin" 0))
      (setq ents (mapcar
                   '(lambda (x)
                      (list (xdrx_getpropertyvalue x "area") (cons x
                                                                   (xdrx_getpropertyvalue x "center" "radius")
                                                             )
                      )
                    )
                   (xdrx_pickset->ents ss)
                 )
      )
      (setq ents (xd::list:groupbyindex ents 0.0))
      (setq ents (vl-sort ents '(lambda (x y)
                                  (< (car x) (car y))
                                )
                 )
      )
      (setq ents (mapcar
                   'cdr
                   ents
                 )
      )
      (xd::text:init 1)
      (_write ents)
      (xdrx_end)
    )
  )
  (princ)
)

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

已领礼包: 50个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 3198个

财富等级: 富可敌国

发表于 2016-10-15 23:20:49 | 显示全部楼层
本帖最后由 lucas3 于 2016-10-15 23:23 编辑

只统计孔 啊,要是螺纹孔呢?
像燕秀,螺纹符号都是做块块,可以根据块名就知道螺纹大小了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-15 23:38:27 | 显示全部楼层

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

使用道具 举报

已领礼包: 6480个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

发表于 2016-10-16 09:32:14 | 显示全部楼层

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

使用道具 举报

已领礼包: 68个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 104个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 403个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 403个

财富等级: 日进斗金

发表于 2017-9-11 18:07:29 | 显示全部楼层
本帖最后由 sjj 于 2017-9-11 18:16 编辑

偶尔能成功,正在研究中。。。XD::Table:MakeFromList 不用特别加载。现在的XDAPI 可能集成了  
程序能运行时还是不错的,小数点尾部的0怎么去掉???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 403个

财富等级: 日进斗金

发表于 2017-9-11 18:43:24 | 显示全部楼层
本帖最后由 sjj 于 2017-9-11 18:51 编辑

经过一系列的测试:
1)当UCS 为用户坐标系,数据和表据会移位。(移到看不见了,表现为:木有反应
2)小数点尾部的0去掉就OK了
3)排序有点小问题,偶尔发现次序不对。


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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2017-9-11 21:50:06 | 显示全部楼层

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

使用道具 举报

已领礼包: 403个

财富等级: 日进斗金

发表于 2017-9-12 07:00:59 | 显示全部楼层

      谢谢老大,可以了,UCS完美解决,连旋转的情况也考虑了,另外加上了序号,不错。(现在排序的问题:在X相同,或Y相同时,随机出现次序打乱)

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2017-9-12 08:34:30 | 显示全部楼层

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

使用道具 举报

已领礼包: 403个

财富等级: 日进斗金

发表于 2017-9-12 12:23:28 | 显示全部楼层
本帖最后由 sjj 于 2017-9-12 12:35 编辑
固然这样,最后一个园重新作图,排列就是A1,A2,A3
而不是原来的A1,A3,A2。
但是以下代码
      (setq ents (vl-sort ents '(lambda (x y)
                                  (< (car x) (car y))
                                )
                 )
      )
这不是排序么?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 10:31 , Processed in 0.388660 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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