马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
和第一版相比,加入了周长的统计
[C++] 纯文本查看 复制代码 (defun c:XDTB_TJCIR1 (/ ss lst areas val h)
(if (not #xd_var_center_txtheight)
(setq #xd_var_center_txtheight 3.5)
)
(if (setq val (getreal
(xdrx_prompt "\n字高<" #xd_var_center_txtheight ">:" t)
)
)
(setq #xd_var_center_txtheight val)
)
(if (not #xd_var_center_bits)
(setq #xd_var_center_bits 1)
)
(if (setq val (getint
(xdrx_prompt "\n小数位数<" #xd_var_center_bits ">:" t)
)
)
(setq #xd_var_center_bits val)
)
(if (and (xdrx_initssget "\n选取要统计的圆<退出>:")
(setq ss (xdrx_ssget '((0 . "CIRCLE"))))
)
(progn (xdrx_begin)
(xdrx_sysvar_push '("dimzin" 0))
(setq lst (xdrx_entity_getproperty ss "area" "radius" "length")
lst (xd::list:groupbyindex lst 0.1)
lst (mapcar '(lambda (x)
(list (rtos (car (cadr x)) 2 #xd_var_center_bits)
(rtos (cadr (cadr x)) 2 #xd_var_center_bits)
(rtos (car x) 2 #xd_var_center_bits)
(itoa (length (cdr x)))
)
)
lst
)
lengths (rtos (apply '+ (mapcar '(lambda (x) (atof (cadr x))) lst))
2
#xd_var_center_bits
)
areas (rtos (apply '+ (mapcar '(lambda (x) (atof (caddr x))) lst))
2
#xd_var_center_bits
)
lst (xd::table:celltile
'("序 号" "半 径" "周 长" "面 积" "数 量")
1
lst
)
lst (cons (list "圆统计表" nil nil nil nil) lst)
lst (append lst
(list (list "合 计" nil lengths areas (itoa (sslength ss))))
)
)
(xd::text:init 1)
(setq h (* (xd::var:getratio)
(xd::var:getscaleratio)
#xd_var_center_txtheight
)
)
(xd::table:makefromlist lst '(0 0 0) h (/ h 2.0))
(xd::drag:simplemove (entlast) "\n->表格插入点:" 8 t)
(xdrx_sysvar_pop)
(xdrx_end)
)
)
(princ)
) |