找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 金鹅起飞

[已解决] [已解决]求立体图统计尺寸及汇总编号的程序

[复制链接]
 楼主| 发表于 2013-11-23 23:13:55 | 显示全部楼层

APPLOAD 已加载 XDRX_API.R17.X32.arx。
已成功加载 立体图统计尺寸汇总程序.lsp。
命令: tt
选择对象: 指定对角点: 找到 2 个
选择对象:
Output Point: ; 错误: no function definition: XD::LIST:GROUPBYINDEX


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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-23 23:15:52 | 显示全部楼层
把这个函数XD:LIST:GROUPBYINDEX放在程序的最前面

点评

是把这一行连括号一起剪切,再粘贴到第一行去吗?  详情 回复 发表于 2013-11-23 23:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-23 23:19:42 | 显示全部楼层
st788796 发表于 2013-11-23 23:15
把这个函数XDIST:GROUPBYINDEX放在程序的最前面


是把(XD::LIST:GROUPBYINDEX el 0)这一行连括号一起剪切,再粘贴到第一行去吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-23 23:25:21 | 显示全部楼层

点评

我把 (XD:ist:GroupByIndex)按索引对表进行分组 这个函数下载后,加载到cad再试,还是不行,不知何故。  详情 回复 发表于 2013-11-23 23:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-23 23:30:29 | 显示全部楼层
本帖最后由 金鹅起飞 于 2013-11-23 23:33 编辑


我把  (XD::List:GroupByIndex)按索引对表进行分组 这个函数下载后,加载到cad再试,还是不行,出现:



参数类型错误: stringp nil


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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-23 23:35:46 | 显示全部楼层
金鹅起飞 发表于 2013-11-23 23:30
我把  (XD:ist:GroupByIndex)按索引对表进行分组 这个函数下载后,加载到cad再试,还是不行,出现:
...

  1. (defun XD::List:GroupByIndex (lst fuzz / ll ilst l index tf)
  2.   (or
  3.     (and
  4.       (listp (caar lst))
  5.       (setq ll        (list (car lst))
  6.             lst        (cdr lst)
  7.       )
  8.       (while lst
  9.         (if (setq l
  10.                    (apply 'append
  11.                           (mapcar
  12.                             'cdr
  13.                             (vl-remove-if-not
  14.                               '(lambda (x) (equal (car x) (caar ll) fuzz))
  15.                               lst
  16.                             )
  17.                           )
  18.                    )
  19.             )
  20.           (setq        ll  (cons (append (car ll) l) (cdr ll))
  21.                 lst (vl-remove-if
  22.                       '(lambda (x) (equal (car x) (caar ll) fuzz))
  23.                       lst
  24.                     )
  25.           )
  26.         )
  27.         (setq ll  (cons (car lst) ll)
  28.               lst (cdr lst)
  29.         )
  30.       )
  31.     )
  32.     (and (setq index (caar lst))
  33.          (or (and (= (type index) 'INT)
  34.                   (setq        tf  t
  35.                         lst (mapcar
  36.                               '(lambda (x) (cons (float (car x)) (cdr x)))
  37.                               lst
  38.                             )
  39.                   )
  40.              )
  41.              (= (type index) 'REAL)
  42.              (= (type index) 'STR)
  43.          )
  44.          (setq
  45.            lst (vl-sort lst '(lambda (l1 l2) (< (car l1) (car l2))))
  46.          )
  47.          (mapcar '(lambda (x y / l)
  48.                     (if        (equal (caar ll) x fuzz)
  49.                       (setq ll (cons (cons x
  50.                                            (if (listp y)
  51.                                              (append y (cdar ll))
  52.                                              (cons y (cdar ll))
  53.                                            )
  54.                                      )
  55.                                      (cdr ll)
  56.                                )
  57.                       )
  58.                       (setq ll (cons (cons x y) ll))
  59.                     )
  60.                   )
  61.                  (mapcar 'car lst)
  62.                  (mapcar 'cdr lst)
  63.          )
  64.          (if tf
  65.            (setq ll (mapcar '(lambda (x) (cons (fix x) (cdr x))) ll))
  66.          )
  67.     )
  68.   )
  69.   (vl-remove nil ll)
  70. )
  71. (defun c:tt (/ ss tss dss el h v zl p)
  72.   (if (and (setq ss (ssget '((0 . "*text,3dsolid"))))
  73.            (setq tss (ssget "P" '((0 . "*text"))))
  74.            (setq dss (xdrx_pickset_subtract ss tss))
  75.            (setq p (getpoint "\nOutput Point: "))
  76.       )
  77.     (progn
  78.       (setq
  79.         el
  80.            (mapcar
  81.              '(lambda (x / box)
  82.                 (setq box (xdrx_getpropertyvalue x "Boundingbox"))
  83.                 (list
  84.                   (mapcar
  85.                     '(lambda (a) (fix (abs a)))
  86.                     (apply
  87.                       'mapcar
  88.                       (cons '- box)
  89.                     )
  90.                   )
  91.                   (last (cadr box))
  92.                   x
  93.                 )
  94.               )
  95.              (xdrx_pickset->ents dss)
  96.            )
  97.         el (vl-sort el
  98.                     '(lambda (h1 h2)
  99.                        (< (cadr h1) (cadr h2))
  100.                      )
  101.            )
  102.         zl (vl-sort
  103.              (mapcar
  104.                '(lambda        (x)
  105.                   (list        (xdrx_getpropertyvalue x "Text")
  106.                         (caddr (xdrx_getpropertyvalue x "Location"))
  107.                   )
  108.                 )
  109.                (xdrx_pickset->ents tss)
  110.              )
  111.              '(lambda (h1 h2)
  112.                 (< (cadr h1) (cadr h2))
  113.               )
  114.            )
  115.         el (mapcar '(lambda (x y)
  116.                       (list (car x) (car y) (/ (length (cdr x)) 2))
  117.                     )
  118.                    el
  119.                    zl
  120.            )
  121.       )
  122.       (setq h (getvar "textsize") ;_字高
  123.             v (list 0. (* 2.0 h) 0.) ;_行距 2 倍间距
  124.       )
  125.       (mapcar
  126.         '(lambda (x / typ num)
  127.            (setq typ (xdrx_string_join
  128.                        (vl-sort        (vl-remove-if-not
  129.                                   '(lambda (s) (= (type s) 'STR))
  130.                                   x
  131.                                 )
  132.                                 '<
  133.                        )
  134.                        "="
  135.                      )
  136.                  num (itoa (apply '+
  137.                                   (vl-remove-if-not
  138.                                     '(lambda (s) (= (type s) 'INT))
  139.                                     x
  140.                                   )
  141.                            )
  142.                      )
  143.            )
  144.            (xdrx_text_make
  145.              p
  146.              (strcat typ
  147.                      "  "
  148.                      (xdrx_string_join (mapcar 'itoa (car x)) "x")
  149.                      "="
  150.                      num
  151.              )
  152.              h
  153.              0.
  154.            )
  155.            (setq p (mapcar '- p v))
  156.          )
  157.         (XD::LIST:GROUPBYINDEX el 0)
  158.       )
  159.     )
  160.   )
  161.   (princ)
  162. )
solid.gif

点评

ST788796大师:您好!刚才试用了您的最新程序,还是出不来。但您的演示图片是行的,从演示图片可以看出:可以单选也可以框选,都能实现。我试的时候,出现以下错误: 命令: tt 选择对象: 指定对角点: 找到 2 个  详情 回复 发表于 2013-11-24 09:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 09:31:57 | 显示全部楼层

ST788796大师:您好!刚才试用了您的最新程序,还是出不来。但您的演示图片是行的,从演示图片可以看出:可以单选也可以框选,都能实现。我试的时候,出现以下错误:

命令: tt
选择对象: 指定对角点: 找到 2 个
选择对象:
Output Point: ; 错误: 参数类型错误: stringp nil

请问大师:我还差什么函数?谢谢!

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-24 09:35:26 | 显示全部楼层
金鹅起飞 发表于 2013-11-24 09:31
ST788796大师:您好!刚才试用了您的最新程序,还是出不来。但您的演示图片是行的,从演示图片可以看出: ...

检查复制的对吗? 文字用 Mtext

点评

ST788796大师:终于出来了!谢谢您!但是数字晓得不的了,每次都要调整数字的大小,求教:怎样让数字与三维图相匹配?请看下面的图片。  详情 回复 发表于 2013-11-24 10:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 10:02:03 | 显示全部楼层
本帖最后由 金鹅起飞 于 2013-11-24 10:16 编辑
st788796 发表于 2013-11-24 09:35
检查复制的对吗? 文字用 Mtext


ST788796大师:终于出来了!谢谢您!但是数字小得不的了,每次都要调整数字的大小,求教:怎样让数字与三维图相匹配?请看下面的图片。
演示文件2.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-24 10:38:51 | 显示全部楼层
(getvar "textsize")
->
(xdrx_getpropertyvalue (ssname tss 0) "textHeight")

点评

ST788796大师:这个怎么操作?我不懂lsp。请指教。  详情 回复 发表于 2013-11-24 10:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 10:45:25 | 显示全部楼层
st788796 发表于 2013-11-24 10:38
(getvar "textsize")
->
(xdrx_getpropertyvalue (ssname tss 0) "textHeight")

ST788796大师:这个怎么操作?我不懂lsp。请指教。

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-24 10:55:20 | 显示全部楼层
金鹅起飞 发表于 2013-11-24 10:45
ST788796大师:这个怎么操作?我不懂lsp。请指教。

用第二句替换前面一句

点评

st788796大师:谢谢您无私的帮助!您辛苦编写的程序完全可以达到我的要求了!再次感谢!晓东CAD论坛因为有您而精彩!  详情 回复 发表于 2013-11-24 11:23
谢谢!好的,我先试试。  详情 回复 发表于 2013-11-24 10:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-24 10:59:05 | 显示全部楼层
st788796 发表于 2013-11-24 10:55
用第二句替换前面一句

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

使用道具 举报

 楼主| 发表于 2013-11-24 11:23:40 | 显示全部楼层
st788796 发表于 2013-11-24 10:55
用第二句替换前面一句

st788796大师:谢谢您无私的帮助!您辛苦编写的程序完全可以达到我的要求了!再次感谢!晓东CAD论坛因为有您而精彩!

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-24 11:35:21 | 显示全部楼层
本帖最后由 st788796 于 2013-11-24 11:37 编辑
金鹅起飞 发表于 2013-11-24 11:23
st788796大师:谢谢您无私的帮助!您辛苦编写的程序完全可以达到我的要求了!再次感谢!晓东CAD论坛因为 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 07:55 , Processed in 0.265827 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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