明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1780|回复: 4

列出计算式并显示计算结果

[复制链接]
发表于 2014-10-23 16:13:57 | 显示全部楼层 |阅读模式
1明经币

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2014-12-2 16:26:06 | 显示全部楼层
这个应该不难,论坛里有很多类似的东西。
回复

使用道具 举报

发表于 2014-12-2 19:38:51 | 显示全部楼层
愿付费开发,可以联系我。
回复

使用道具 举报

发表于 2014-12-4 10:31:38 | 显示全部楼层
本帖最后由 newbuser 于 2014-12-4 18:25 编辑
  1. (defun c:tt (/ lst clst)
  2.   (setq ss (ssget '((0 . "LINE"))))  ;选择直线
  3.   (setq i 0)
  4.   (repeat (sslength ss)
  5.     (setq e  (ssname ss i)
  6.     el (entget e)
  7.     q  (assoc 10 el)
  8.     z  (assoc 11 el)
  9.     )
  10.     (setq a (cdr q))
  11.     (setq b (cdr z))
  12.     (setq
  13.       pt_Ymax (car (vl-sort (list a b)
  14.           '(lambda (u v) (> (cadr u) (cadr v)))
  15.        )
  16.         )
  17.     )
  18.     ;;Y值大的坐标
  19.     (setq
  20.       pt_Ymin (car (vl-sort (list a b)
  21.           '(lambda (u v) (< (cadr u) (cadr v)))
  22.        )
  23.         )
  24.     )
  25.     ;;X值大坐标
  26.     (setq ang (angle pt_Ymin pt_Ymax))
  27.     ;;文字竖直朝左角度
  28.           ;(setq pt (list (car (cdr q)) (max (caddr q) (caddr z)) 0))              ;;找出Y值大的坐标
  29.     (setq ss1 (ssget "f" (list (cdr q) (cdr z)) '((0 . "TEXT"))))
  30.           ;获取通过该直线的文字选择集
  31.     (setq e1  (ssname ss1 0)
  32.     el1 (entget e1)
  33.     h1  (assoc 40 el1)
  34.     h   (cdr h1)
  35.     )
  36.     (setq mrk (atoi (cdr (assoc 1 el1))))
  37.     ;;获取钢筋编号(将字符串转为整数)
  38.     (setq e-obj (vlax-ename->vla-object e))
  39.     ;;转为vla对象
  40.     (setq l (vla-get-length e-obj))
  41.     (setq clst (append clst (list l)))
  42.     ;;获取线的长度
  43.     (setq str-len (rtos l))
  44.     ;;单根直线长度字符串
  45.           ;(setq ang (vla-get-angle e-obj))         ;;获取线的角度
  46. ;;;       (setq lst nil)
  47.     (setq lst (append lst (list (list mrk str-len))))
  48.     (entmake (list '(0 . "TEXT")
  49.        (cons 8 "0")
  50.        (append '(10) pt_Ymax)
  51.        (append '(11) pt_Ymax)
  52.        h1
  53.        (cons 1 str-len)
  54.        (cons 50 ang)
  55.        (cons 71 0)
  56.        (cons 72 2)
  57.        (cons 73 0)
  58.        )
  59.     )
  60.     (setq i (1+ i))
  61.   )
  62.   (setq
  63.     llst (vl-sort lst
  64.       (function (lambda (e1 e2) (< (car e1) (car e2))))
  65.    )
  66.   )
  67.   (setq p1 (getpoint "\n 请指定X方向表格左上角位置==>> "))
  68.   ;;表格左上角坐标
  69.   (setq  pz   (polar p1 0 (* 15.75 h))
  70.   ;;表格右上角坐标
  71.   p1_x (polar p1 4.71239 (* 1.4 h))
  72.   pz_x (polar p1_x 0 (* 15.75 h))
  73.   p_c  (polar p1 0 (* 5.25 h))
  74.   p_g  (polar p1 0 (* 10.5 h))
  75.   )
  76.   (command "line" p1 pz "")
  77.   (command "line" p1_x pz_x "")
  78. ;;;     (setq btxlst (list (list p1 pz) (list p1_x pz_x)))
  79. ;;;     (点表生成直线 btxlst)
  80.   (setq  pp  (polar p1 4.71239 (* 1.275 h))
  81.   pbh (polar pp 0 (* h 0.125))
  82.   ;;编号插入点
  83.   pcd (polar pp 0 (* h 5.375))
  84.   ;;长度插入点
  85.   pgs (polar pp 0 (* h 10.625))
  86.       ;;根数插入点
  87.   )
  88.   (setq n 0)
  89.   (repeat (length llst)
  90.     (setq pq (polar p1 4.71239 (* (+ (* n 1.4) 2.8) h)))
  91.     ;;文字下横线起点
  92.     (setq pe (polar pq 0 (* 15.75 h)))
  93.     ;;由起点算出终点
  94.     (setq bm1 (polar pbh 4.71239 (+ (* 1.4 h) (apply '* (list 1.4 n h))))
  95.     bm2 (polar bm1 0 (* 5.25 h))
  96.     bm3 (polar bm1 0 (* 10.5 h))
  97.     )
  98.     (setq zlst (nth n llst))
  99.     (entmake (list '(0 . "TEXT")
  100.        (cons 1 (itoa (car zlst)))
  101.        h1
  102.        (append '(10) bm1)
  103.        )
  104.     )
  105.     (entmake (list '(0 . "TEXT")
  106.        (cons 1 (cadr zlst))
  107.        h1
  108.        (append '(10) bm2)
  109.        )
  110.     )
  111.     (entmake
  112.       (list '(0 . "TEXT") (cons 1 "1") h1 (append '(10) bm3))
  113.     )
  114.     (command "line" pq pe "")
  115.     (setq n (1+ n))
  116.   )
  117.   (setq  pd1 (polar p1
  118.        4.71239
  119.        (apply '* (list (+ (length llst) 2) 1.4 h))
  120.       )
  121.   pd2 (polar p_c
  122.        4.71239
  123.        (apply '* (list (+ (length llst) 2) 1.4 h))
  124.       )
  125.   pd3 (polar p_g
  126.        4.71239
  127.        (apply '* (list (+ (length llst) 2) 1.4 h))
  128.       )
  129.   pd4 (polar pz
  130.        4.71239
  131.        (apply '* (list (+ (length llst) 2) 1.4 h))
  132.       )
  133.   )
  134.   (setq  phz (polar pbh
  135.        4.71239
  136.        (apply '* (list (+ (length llst) 1) 1.4 h))
  137.       )
  138.   pz1 (polar phz 0 (* h 5.375))
  139.   pz2 (polar phz 0 (* h 10.625))
  140.   )

  141.   (command "line" p1 pd1 "")
  142.   (command "line" p_c pd2 "")
  143.   (command "line" p_g pd3 "")
  144.   (command "line" pz pd4 "")
  145.   (command "line" pd1 pd4 "")
  146.   (setq  btlst
  147.    (list (list "编号" pbh)
  148.          (list "长度" pcd)
  149.          (list "根数" pgs)
  150.          (list "汇总" phz)
  151.          (list (rtos (apply '+ clst) 2 3) pz1)
  152.          (list (rtos (length llst) 2 0) pz2)
  153.    )
  154.   )
  155.   ;;标题文字坐标插入点表
  156.   (foreach n btlst
  157.     (entmake (list '(0 . "TEXT")
  158.        (cons 1 (car n))
  159.        (append '(10) (cadr n))
  160.        h1
  161.        )
  162.     )
  163.   )
  164.   ;;标题文字生成
  165. )
已经初步形成了,不过,沿X方向你自己看着修改下吧。希望能够满足您的要求。
回复

使用道具 举报

发表于 2018-8-11 22:44:44 | 显示全部楼层
看帖回帖是美德
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-27 13:07 , Processed in 0.163587 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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