本帖最后由 zhb236623 于 2013-7-31 18:52 编辑
【KAIXIN】 发表于 2013-7-31 18:31
也不难的,这样的话,你就要提取文本,获取最后一个数字进行加一即可
- (if (not (setq n1 (getint "\n请输入尾数起始顺序号 <0>: ")))
- (setq n1 0)
- )
- ;;地号最后三位数不够补0,例3=003,34=034,189=189
- (command ".style" "仿宋体" "仿宋_GB2312" wzstyle 1 0 "" "")
- (setq slist nil)
- (setq i 0)
- (setq ss (ssget '((0 . "text"))))
- (repeat (sslength ss)
- (setq en (ssname ss i)) ;(setq en (entget ssn))
- (vla-getboundingbox (vlax-ename->vla-object en)
- 'minpoint
- 'maxpoint
- )
- (setq pmax (vlax-safearray->list maxpoint)
- pmin (vlax-safearray->list minpoint)
- )
- (setq xmin (car pmin))
- (setq xmax (car pmax))
- (setq ymin (cadr pmin))
- (setq ymax (cadr pmax))
- (setq xmid (/ (+ xmin xmax) 2))
- ;;(setq ymid ( / ( + ymin ymax) 2))
- (setq xmid_ymax (list xmid ymax))
- (setq slist (cons xmid_ymax slist))
- (setq i (1+ i))
- )
- ;;;关键就是这里了,排序,1e-6为容差,意思是1乘以10的负6次方。你可以自己改
- ;;(setq tmp_slist (dh_zhy_sort_pt slist 1e-6))
- (setq tmp_slist (dh_zhy_sort_pt slist 3))
- (foreach insertp_mid tmp_slist
- ;;(setq insertp_move (pmove insertp_mid 0 wz_insertp_move_down)) ;;;最后一位为向下移动距离
-
- (cond
- ( (< n1 10)
- (setq wz_n (strcat "00" (itoa n1)))
- )
- ( (< 9 n1 100)
-
- (setq wz_n (strcat "0" (itoa n1)))
- )
- ( (> n1 99)
-
- (setq wz_n (itoa n1))
- )
- )
-
- (setq Parameter_a5 "aa")
- (setq wz (strcat Parameter_a5 wz_n)) ;;;
- ;;;就是要如何才能更改这个坐标点对应的文字呢?
- ;;直接生成文字可能还更容易……
- ;;(setq P_center_fz_nn_d1 (list 3 5))
- (entmake (list '(0 . "TEXT") (cons 1 "me") (cons 7 "仿宋体") (cons 10 insertp_mid ) (cons 40 0.5)(cons 41 0.8)(cons 71 1)(cons 72 1)(cons 73 1)(cons 8 "jj")))
- (setq n1 (+ n1 1))
- )
|