发一个以前写的,要用doslib。当时没考虑补位。

- (defun c:szpx(/ A CS D IN P0 P11 SSZ SZ TSZ XYZ-SZPX ZC ZCT ZCW)
- (undo_begin)
- (mapcar 'setvar '("cmdecho""blipmode")'(0 0))
- (setq xyz-szpx (if xyz-szpx xyz-szpx
- '(("字串头" . "")("头数字" . "1") ("字串尾" . "")("数字升值" . "1")("排列次数" . "10")))
- xyz-szpx(dos_proplist "--by陈勇--" "文字数字排序【数字位数=0表示不补位】" xyz-szpx)
- zct(dxf "字串头" xyz-szpx)zcw(dxf "字串尾" xyz-szpx)
- tsz(distof (dxf "头数字" xyz-szpx))
- ssz(distof (dxf "数字升值" xyz-szpx))
- cs(atoi (dxf "排列次数" xyz-szpx))
- p0(getpoint "\n选择第一个文字的插入点:")
- d(getdist p0 "\n输入文字的排列间距:"))
- (setq a(getangle p0 "\n输入文字的排列角度:")
- in 0)
- (repeat cs
- (setq sz(+ tsz (* in ssz))
- zc(strcat zct (rtos sz 2 0) zcw)
- p11(polar p0 a (* in d))
- in(1+ in))
- (#M_TXT p11 zc "DXFS" (* 3.0 0bl) 0.7 0 0 0 "dim" -1)
- )
- (mapcar 'setvar '("cmdecho""blipmode")'(1 1))
- (undo_end)(princ)
- )
增加补位。

- (defun c:szpx1(/ A CS D IN P0 P11 SSZ SZ SZ2 SZZ TSZ WS1 WS2 ZC ZCT ZCW)
- (undo_begin)
- (mapcar 'setvar '("cmdecho""blipmode")'(0 0))
- (setq xyz-szpx (if xyz-szpx xyz-szpx
- '(("字串头" . "")("起始数字" . "1") ("字串尾" . "")("数字升值" . "1")("排列次数" . "10")))
- xyz-szpx(dos_proplist "--by陈勇--" "文字数字排序【数字位数=0表示不补位】" xyz-szpx)
- zct(dxf "字串头" xyz-szpx)zcw(dxf "字串尾" xyz-szpx)
- tsz(atoi (dxf "起始数字" xyz-szpx))
- ssz(atoi (dxf "数字升值" xyz-szpx))
- cs(atoi (dxf "排列次数" xyz-szpx))
- sz2(+ tsz (* ssz cs))
- ws2(strlen (itoa sz2))
- ;;bw(- ws2 ws1)
- p0(getpoint "\n选择第一个文字的插入点:")
- d(getdist p0 "\n输入文字的排列间距:")
- a(pri1 getangle p0 "\n输入文字的排列角度:" 0)
- in 0)
- (repeat cs
- (setq sz(+ tsz (* in ssz))
- ws1(strlen (itoa sz))szz ""
- zc(strcat zct
- (if (< ws1 ws2)
- (repeat (- ws2 ws1)
- (setq szz (strcat szz "0"))
- )
- ""
- )
- (itoa sz) zcw)
- p11(polar p0 a (* in d))
- in(1+ in))
- (#M_TXT p11 zc "DXFS" (* 3.0 0bl) 0.7 0 0 0 "dim" -1)
- )
- (mapcar 'setvar '("cmdecho""blipmode")'(1 1))
- (undo_end)(princ)
- )
拷贝方式,增加补位控制

- (defun c:szpx2(/ CS E EB EN IN K-BW P0 P1 SSZ SZ SZ2 SZZ TSZ WS1 WS2 ZC ZCT ZCW)
- (undo_begin)
- (mapcar 'setvar '("cmdecho""blipmode")'(0 0))
- (setq xyz-szpx (if xyz-szpx xyz-szpx
- '(("字串头" . "")("起始数字" . "1") ("字串尾" . "")("数字升值" . "1")
- ("数字位数=1表示补位" . "1")))
- xyz-szpx(dos_proplist "--by陈勇--" "文字数字排序" xyz-szpx)
- zct(dxf "字串头" xyz-szpx)zcw(dxf "字串尾" xyz-szpx)
- tsz(atoi (dxf "起始数字" xyz-szpx))
- ssz(atoi (dxf "数字升值" xyz-szpx))
- k-bw(dxf "数字位数=1表示补位" xyz-szpx)
- sz tsz
- p0(getpoint "\n选择第一个文字的插入点:")
- in 0 eb'())
- (while (setq p1(getpoint p0 "\n输入新的插入点:"))
- (setq zc(strcat zct (itoa sz) zcw))
- (#M_TXT p1 zc "DXFS" (* 3.0 0bl) 0.7 0 0 0 "dim" -1)
- (setq e(entlast) eb(cons e eb)sz(+ sz ssz))
- )
- (if (= k-bw "1")(progn
- (setq sz2(- sz ssz)cs(length eb)eb(reverse eb)
- ws2(strlen (itoa sz2)) sz tsz)
- (repeat cs
- (setq e(nth in eb)en(entget e)in(1+ in)
- ws1(strlen (itoa sz))szz ""
- zc(strcat zct
- (if (< ws1 ws2)
- (repeat (- ws2 ws1)
- (setq szz (strcat szz "0"))
- )
- ""
- )
- (itoa sz) zcw)
- en(subst (cons 1 zc)(assoc 1 en) en)sz(+ sz ssz))
- (entmod en)
- )
- ) )
-
- (mapcar 'setvar '("cmdecho""blipmode")'(1 1))
- (undo_end)(princ)
- )
|