马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:XDTB_TextSumByRC (/ val tf ss e1 h w entl el p1 sum m x txt plane mat box pj)
- (xdrx_begin)
- (if (not #xd_var_global_bits)
- (setq #xd_var_global_bits 1)
- )
- (if (setq val (getint
- (xdrx_prompt "\n保留位数<" #xd_var_global_bits ">:" t)
- )
- )
- (setq #xd_var_global_bits val)
- )
- (xdrx_initget "0 1")
- (if (not (setq tf (getint "\n计算方式[0-按行/1-按列]<1>:")))
- (setq tf 1)
- )
- (princ (strcat "\n选取"
- (if (= tf 1)
- "按列"
- "按行"
- )
- "求和的数字文字<退出>:"
- )
- )
- (xdrx_initget)
- (while (and (xdrx_initssget
- (strcat "\n选取"
- (if (= tf 1)
- "按列"
- "按行"
- )
- "求和的数字文字<退出>:"
- )
- )
- (setq ss (xdrx_ssget '((0 . "TEXT"))))
- )
- (progn (setq e1 (ssname ss 0)
- box (XD::Entity:BoxAtEcs e1 e1)
- h (xdrx_text_height e1)
- w (distance (car box) (cadr box))
- )
- (xdrx_document_setPrec
- (if (= tf 1)
- w
- h
- )
- 1.0
- )
- (setq xdir (cadr (xdrx_entity_getecs (ssname ss 0))))
- (setq entl (XD::Pickset:TableSortAtEcs ss xdir tf 0 '< '<))
- (setq el (mapcar '(lambda (x)
- (setq sum 0)
- (foreach m x
- (setq txt2 (xdrx_text_string m))
- (if (XD::String:IsNum txt2)
- (setq sum (+ sum (atof txt2)))
- )
- )
- (list (car x) (rtos sum 2 #xd_var_global_bits))
- )
- entl
- )
- )
- (if (setq p1 (getpoint "\n插入点<退出>:"))
- (progn (setq mat0 (xdrx_matrix_identity 3))
- (foreach n el
- (setq e (car n)
- txt (cadr n)
- box (xdrx_entity_box e t)
- box (xd::pnts:ucs2wcs box)
- plane (apply 'XD::Geom:GetPerpPlaneWithLine
- (if (= tf 1)
- (list (car box) (last box) (xdrx_text_normal e))
- (list (car box) (cadr box) (xdrx_text_normal e))
- )
- )
- pj (xdrx_point_orthoproject (trans p1 1 0) plane)
- mat (xdrx_matrix_setTransLation
- mat0
- (mapcar '- pj (xdrx_getpropertyvalue e "position"))
- )
- )
- (xdrx_entity_transformedcopy e mat)
- (xdrx_text_setstring (entlast) txt)
- (xdrx_entity_setpropertiesfrom (entlast) e)
- )
- )
- )
- )
- )
- (xdrx_end)
- (princ)
- )
|