找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 502|回复: 2

[编程申请]:請曉東幫忙修改

[复制链接]
发表于 2002-12-12 10:47:57 | 显示全部楼层 |阅读模式

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

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

×
  1. 命令:XDTB_HatchArea
  2.   功能:求填充HATCH和SOLID實體的面積
  3. |;
  4. (defun c:XDTB_HatchArea (/ ss harea e hnum snum tf i)
  5.   (if (not $XDTB_HATCH_TOTAL_AREA)
  6.     (setq $XDTB_HATCH_TOTAL_AREA 0.0)
  7.   )

  8.   (while (progn
  9.            (initget "C")
  10.            (setq sel (getkword (strcat "\n{歷史記錄: " (rtos $XDTB_HATCH_TOTAL_AREA
  11.                                                              2 2
  12.                                                        )
  13.                                        " | 歷史清空[C]}<繼續>:"
  14.                                )
  15.                      )
  16.            )
  17.          )
  18.     (cond
  19.       ((= sel "C")
  20.         (setq $XDTB_HATCH_TOTAL_AREA 0.0)
  21.       )
  22.     )
  23.   )
  24.   (prompt "\n請選取計算面積的Hatch,Solid實體[ALL-全選]<退出>:")
  25.   (if (setq ss (ssget '((0 . "hatch,solid"))))
  26.     (progn
  27.       (xdrx_setsstodb ss 0)
  28.       (setq harea 0
  29.             hnum 0
  30.             snum 0
  31.       )
  32.       (setq tf (> (setq len (sslength ss))
  33.                   100
  34.                )
  35.       )
  36.       (if tf
  37.         (progn
  38.           (xdrx_pbarbegin "計算中..." len)
  39.           (setq i 0
  40.                 eNum 0
  41.                 lNum 0
  42.           )
  43.         )
  44.       )
  45.       (while (setq e (xdrx_getentdata 0))
  46.         (if tf
  47.           (xdrx_pbarsetpos (setq i (1+ i)))
  48.         )
  49.         (setq enttype (xdrx_getentdxf 0))
  50.         (cond
  51.           ((= "SOLID" enttype)

  52.             (setq ss1 (ssadd)
  53.                   ss1 (ssadd e ss1)
  54.                   snum (+ snum 1)
  55.             )
  56.             (setq harea (+ harea (abs (apply
  57.                                         'xdrx_parea
  58.                                         (car (xdrx_searchoutline ss1))
  59.                                       )
  60.                                  )
  61.                         )
  62.             )
  63.           )
  64.           ((= "HATCH" enttype)
  65.             (setq hnum (+ hnum 1)
  66.                   harea (+ harea (car (xdrx_getarea e)))
  67.             )
  68.           )
  69.         )
  70.       )
  71.       (if tf
  72.         (xdrx_pbarend)
  73.       )
  74.       (setq $XDTB_HATCH_TOTAL_AREA (+ $XDTB_HATCH_TOTAL_AREA harea))
  75.       (prompt (strcat "\n共選取了 " (itoa hnum) " 個Hatch, " (itoa snum)
  76.                       " 個Solid,面積總和是:" (rtos harea 2 2)
  77.                       " 歷史記錄總和是: " (rtos $XDTB_HATCH_TOTAL_AREA 2 2)
  78.               )
  79.       )
  80.     )
  81.   )
  82.   (princ)
  83. )

是否能夠把
" 個Solid,面積總和是:" (rtos harea 2 2)
" 歷史記錄總和是: " (rtos $XDTB_HATCH_TOTAL_AREA 2 2)
直接輸出至螢幕且除上一定數(譬如/100000)+單位(M)
不勝感激
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-12-12 12:09:05 | 显示全部楼层

Re: [编程申请]:請曉東幫忙修改

将最后的这样改下,注意保存避免工具箱升级时覆盖掉:

  1. (setq $XDTB_HATCH_TOTAL_AREA (+ $XDTB_HATCH_TOTAL_AREA harea))
  2. ;|(prompt        (strcat        "\n共選取了 "
  3.                 (itoa hnum)
  4.                 " 個Hatch, "
  5.                 (itoa snum)
  6.                 " 個Solid,面積總和是:"
  7.                 (rtos harea 2 2)
  8.                 " 歷史記錄總和是: "
  9.                 (rtos $XDTB_HATCH_TOTAL_AREA 2 2)
  10.         )
  11. )|;
  12. (setq p0 (getpoint "\nInsert Point: "))
  13. (entmake (list '(0 . "Text")
  14.                '(100 . "AcDbEntity")
  15.                '(100 . "AcDbText")
  16.                (cons 10 p0)
  17.                (cons 1
  18.                      (strcat (itoa snum)
  19.                              " 個Solid,面積總和是:"
  20.                              (rtos (/ harea 100000) 2 2)
  21.                      )
  22.                )
  23.                (cons 40 (getvar "textsize"))
  24.                '(50 . 0)
  25.          )
  26. )
  27. (entmake
  28.   (list        '(0 . "Text")
  29.         '(100 . "AcDbEntity")
  30.         '(100 . "AcDbText")
  31.         (cons 10 (polar p0 (/ pi 2) (* 1.5 (getvar "textsize"))))
  32.         (cons 1
  33.               (strcat "歷史記錄總和是: "
  34.                       (rtos (/ $XDTB_HATCH_TOTAL_AREA 100000) 2 2)
  35.               )
  36.         )
  37.         (cons 40 (getvar "textsize"))
  38.         '(50 . 0)
  39.   )
  40. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 01:36 , Processed in 0.485990 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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