找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 877|回复: 3

[每日一码] 线长统计

[复制链接]
发表于 2013-11-30 18:54:47 | 显示全部楼层 |阅读模式

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

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

×
; (c) Chris Hardwicke 1996

(DEFUN C:xctj ()
  (setq tot_len 0)  
  (prompt "\n(c) Chris Hardwicke 1996 ")
  (prompt "\nSelect all objects to count: ")
  (setq ss (ssget))
  (while (> (sslength ss) 0)
    (setq en (ssname ss 0))
    (setq ed (entget en))
    (setq e_type (cdr (assoc '0 ed)))
    (cond
      ((= e_type "LINE") (add_lines))
      ((= e_type "ARC") (add_arcs))
      ((= e_type "POLYLINE") (add_poly))
      ((= e_type "LWPOLYLINE") (add_poly))
      ((or
         (/= e_type "LINE")
         (/= e_type "ARC")
         (/= e_type "POLYLINE")
       )
       (ssdel en ss)
      )
    )
  )
  (prompt (strcat "\nTotal length is: " (rtos tot_len 2 1)))
  (setq txtPt (getpoint "\nInsertion point for total value: "))
  (command "._text" "middle" txtpt)
  (if (= 0.0 (cdr (assoc 40 (tblsearch "style" (getvar "textstyle")))))
           (command "" "" (rtos tot_len 2 1))
           (command "" (rtos tot_len 2 1))
        )
)

(defun add_lines ()
  (setq pt1 (cdr (assoc '10 ed)))
  (setq pt2 (cdr (assoc '11 ed)))
  (setq line_len (distance pt1 pt2))
  (setq tot_len (+ tot_len line_len))
  (ssdel en ss)
)

(defun add_arcs ()
  (SETQ CEN (CDR (ASSOC '10 Ed))
        RAD (CDR (ASSOC '40 Ed))
        DIA (* RAD 2.0)
        CIRCUM (* (* RAD PI) 2.0)
        S_ANG (CDR (ASSOC '50 Ed))
        E_ANG (CDR (ASSOC '51 Ed))
  )
  (IF (< E_ANG S_ANG)
    (SETQ E_ANG (+ E_ANG (* PI 2.0)))
  )
  (SETQ
        N_ANG (- E_ANG S_ANG)
        N_ANG_1 (* (/ N_ANG PI) 180.0)
        PART_CIRC (/ N_ANG_1 360.0)  
        A_LEN (* PART_CIRC CIRCUM)
  )
  (setq tot_len (+ tot_len a_len))
  (PRIN1)
  (SSDEL EN SS)
)

(defun add_poly ()
  (command "area" "e" en)
  (setq tot_len (+ tot_len (getvar "perimeter")))
  (ssdel en ss)
)


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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 4803个

财富等级: 富可敌国

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 13:44 , Processed in 0.383097 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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