明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1137|回复: 6

(求助)标注能否按相同行X列=个数的公式表示出来,谢谢!

[复制链接]
发表于 2013-4-22 12:41:57 | 显示全部楼层 |阅读模式
(求助)标注能否按相同行X列=个数的公式表示出来,详见附图,谢谢!
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2013-4-22 12:43:40 | 显示全部楼层
详见附图,谢谢!

本帖子中包含更多资源

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

x
发表于 2013-4-22 13:56:28 | 显示全部楼层
cxs259 发表于 2013-4-22 12:43
详见附图,谢谢!

  1. (defun c:tt (/ S1 S2 PT H N OBJ STRD A LST1 LST2 AA BB K)
  2.   (while (and
  3.            (progn
  4.              (princ "\n选择水平标注:")
  5.              (setq s1 (ssget '((0 . "DIMENSION"))))
  6.              )
  7.            (progn
  8.              (princ "\n选择垂直标注:")
  9.              (setq s2 (ssget '((0 . "DIMENSION"))))
  10.              )
  11.            (setq pt (getpoint "\n标注放置位置:"))
  12.            )
  13.      (setq H (getreal "\n标注高度<1000>:"))
  14.     (if (null h) (setq h 1000))
  15.     (repeat (setq n (sslength s1))
  16.       (setq obj (vlax-ename->vla-object (ssname s1 (setq n (1- n)))))
  17.       (setq strd (rtos (vla-get-Measurement obj) 2 0))
  18.       (if (setq a (assoc strd lst1))
  19.         (setq lst1 (subst (cons strd (1+ (cdr a))) a lst1))
  20.         (setq lst1 (cons (cons strd 1) lst1))
  21.         )
  22.       )
  23.     (repeat (setq n (sslength s2))
  24.       (setq obj (vlax-ename->vla-object (ssname s2 (setq n (1- n)))))
  25.       (setq strd (rtos (vla-get-Measurement obj) 2 0))
  26.       (if (setq a (assoc strd lst2))
  27.         (setq lst2 (subst (cons strd (1+ (cdr a))) a lst2))
  28.         (setq lst2 (cons (cons strd 1) lst2))
  29.         )
  30.       )
  31.     (foreach a lst1
  32.       (setq aa (car a) n (cdr a))
  33.       (foreach b lst2
  34.         (setq bb (car b) k (cdr b))
  35.         (entmake
  36.           (list '(0 . "text")
  37.                 '(100 . "AcDbEntity")
  38.                 '(67 . 0)
  39.                 '(8 . "COLOR2")
  40.                 '(100 . "AcDbText")
  41.                 (cons 10 pt)
  42.                 (cons 1 (strcat aa "X" bb "=" (itoa (* n k))))
  43.                 (cons 40 h)
  44.                 )
  45.           )
  46.         (setq pt (polar pt (* 1.5 pi) (* 1.5 h)))
  47.         )
  48.       )
  49.    
  50.     )
  51.   (princ)
  52.   )
发表于 2013-4-22 16:00:09 | 显示全部楼层
能列表出来并自动计算各种尺寸的面积更好
 楼主| 发表于 2013-4-22 16:52:30 | 显示全部楼层
感谢G版及时的解答!
发表于 2013-4-22 20:33:08 | 显示全部楼层
(if (setq a (assoc strd lst1))
        (setq lst1 (subst (cons strd (1+ (cdr a))) a lst1))
        (setq lst1 (cons (cons strd 1) lst1))
        )
在第一句中,lst1还未定义呢!下面才定义的。这样也可以啊?以前从未用过!
发表于 2013-4-22 21:04:51 | 显示全部楼层
唉,我太笨了,才看懂。
多谢G版了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-26 17:12 , Processed in 0.203088 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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