找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2125|回复: 19

[编程申请] 求个CAD插件,能对标注 求和

[复制链接]
发表于 2017-10-31 14:47:45 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-10-31 15:51:19 | 显示全部楼层
  1. (defun c:tt ()
  2.   (xdrx_begin)
  3.   (xdrx_initssget "\n选择要统计长度的标注<退出>:")
  4.   (if (setq ss (ssget '((0 . "DIMENSION")
  5.                         (-4 . "<OR")
  6.                         (70 . 32)
  7.                         (70 . 33)
  8.                         (-4 . "OR>")
  9.                        )
  10.                )
  11.       )
  12.     (progn (setq lst (mapcar
  13.                        '(lambda        (x)
  14.                           (setq val (xdrx_getpropertyvalue x "dimensiontext"))
  15.                           (if (= val "")
  16.                             (xdrx_getpropertyvalue x "Measurement")
  17.                             (atof val)
  18.                           )
  19.                         )
  20.                        (xdrx_pickset->ents ss)
  21.                      )
  22.                  val (apply '+ lst)
  23.            )
  24.            (xdrx_prompt "\n选择的标注总长度为:" val)
  25.     )
  26.   )
  27.   (xdrx_end)
  28.   (princ)
  29. )


点评

代码很棒,非常好使  发表于 2017-10-31 16:53

评分

参与人数 1D豆 +5 收起 理由
JYL888 + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-10-31 15:26:19 | 显示全部楼层
本帖最后由 newer 于 2017-10-31 15:28 编辑

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

使用道具 举报

 楼主| 发表于 2017-10-31 15:41:01 | 显示全部楼层

如图所示,插件统计这些标注,求和,然后结果可以窗口显示,也可以输出到EXCEL
6.png
7.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 15:55:36 | 显示全部楼层

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2017-10-31 16:20:55 | 显示全部楼层
论坛插件,代码C:后面的字符串,就是命令名。建议你多看看论坛帖子。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 16:56:01 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2017-11-1 08:35:44 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-11-1 08:43:45 | 显示全部楼层

晓东工具箱安装目录下SYS目录下有个文件 xd_ccomandlist.dat,
1、你要确保能自动加载你的LISP文件(具体方法搜索论坛)
2、修改这个DAT文件

命令设置 XDTB_Commandmenu XD:Commandmenu
测量长度 XDTB_Curvelength XD:Curvelength
曲线面积 XDTB_Curvearea XD:Curvearea
线变复线 XDTB_L2PL XD:L2PL
快速选择 XDTB_FastSelect XD:FastSelect
出图比例 XDTB_Drawscale XD:Drawscale
选层保留 XDTB_Layerrev XD:Layerrev
所有层开 XDTB_LyrOnAll XD:LyrOnAll
选层关闭 XDTB_LyrOffByPick XD:LyrOffByPick
组选开关 Xgrouponof XD:LyrOffByPick


10个常用命令,
每行一个,  第一个是汉字显示的命令名, 第二个是LISP文件C:后面的定义的命令字符串, 第三个是想定义内部命令的字符串
你按照这个格式修改一个保存DAT文件,重进CAD就有了。

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

使用道具 举报

 楼主| 发表于 2017-11-1 09:27:06 | 显示全部楼层

第三个不能理解,怎么改,例如这个代码,应该怎么盖到DAT文件中去????

(defun c:tt ()  (xdrx_begin)  (xdrx_initssget "\n选择要统计长度的标注<退出>:")  (if (setq ss (ssget '((0 . "DIMENSION")                        (-4 . "<OR")                        (70 . 32)                        (70 . 33)                        (-4 . "OR>")                       )               )      )    (progn (setq lst (mapcar                       '(lambda        (x)                          (setq val (xdrx_getpropertyvalue x "dimensiontext"))                          (if (= val "")                            (xdrx_getpropertyvalue x "Measurement")                            (atof val)                          )                        )                       (xdrx_pickset->ents ss)                     )                 val (apply '+ lst)           )           (xdrx_prompt "\n选择的标注总长度为:" val)    )  )  (xdrx_end)  (princ))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-1 09:36:02 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-11-1 09:38:34 | 显示全部楼层

拷贝的代码,你要保存成扩展名为.lsp的文件,放到ACAD支持目录里面,然后设置它自动加载,怎么做,搜索论坛。

你会加载程序了,剩下就是怎么执行了,

你贴的代码,C:TT, 标识TT是命令名,不过推荐你修改成别的字符串,要是以后还是C:TT的,会覆盖,只执行最后定义的TT。

上面第三个,你照猫画虎随便改。

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

使用道具 举报

 楼主| 发表于 2017-11-1 10:16:31 | 显示全部楼层

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

使用道具 举报

已领礼包: 196个

财富等级: 日进斗金

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

使用道具 举报

发表于 2017-11-1 22:13:39 | 显示全部楼层
  1. (defun c:tt ()
  2.   (princ "\n选择要统计长度的标注<退出>:")
  3.   (if (setq ss (ssget '((0 . "DIMENSION")))
  4.             i  -1
  5.             aa 0
  6.       )
  7.     (progn
  8.       (while (setq s1 (ssname ss (setq i (1+ i))))
  9.         (setq a         (cdr (assoc 42 (entget s1)))
  10.               aa (+ aa a)
  11.         )
  12.       )
  13.       (princ (strcat "\n选择的标注总长度为: " (rtos aa 2 0)))
  14.     )
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:08 , Processed in 0.262999 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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