请教单行文字对齐
本帖最后由 TPG辉 于 2020-1-13 08:07 编辑[*]t1 '("序号" "尺寸" "个数" "数量")
[*]t2 '("T1" "36" "633" "63")
[*]t3 '("T2" "8544" "52" "635")
请问怎么把上面的三个表,输出整行单行文字,右对齐
TPG辉 发表于 2020-1-13 14:57
这样才对
(defun c:xx(/ gd1 gd2 pt)
(setq gd1 '("T1" "525" "635" ))
(setq gd2 '("T10" "44564" "63555"))
(setq pt (getpoint "\n->统计数据报表左上插入点:"))
(LL:Txtbx pt gd1 20)
(setq pt (polar pt (- 0 (/ pi 2)) 5))
(LL:Txtbx pt gd2 20)
)
(defun LL:Txtbx(lt1 lt2 lt3 / i t1)
(setq i 0)
(repeat (length lt2)
(setq t1 (polar lt1 0 (* lt3 i)))
(entmake (list
'(0 . "TEXT")
(cons 1 (nth i lt2))
(cons 7 "Standard")
(cons 8 "dim")
'(10 0 0 0)
(cons 11 t1)
(cons 40 (* lt3 0.15))
(cons 41 0.75)
(cons 50 0)
(cons 72 2)
(cons 73 1)
'(100 . "AcDbText")
)
)
(setq i (1+ i))
)
)
只有lisp高手才做到得到了。 写个点位的表
(foreach x t1
(entmake (list
'(0 . "TEXT")
(cons 1 x)
(cons 11 点位)
)
)
)
sharetow 发表于 2020-1-13 09:13
写个点位的表
(defun c:xx(/ gd gd1 gd2 po pt)
(setq gd1 '("T1" "525" "635" ))
(setq gd2 '("T10" "44564" "63555"))
(setq gd (append gd1 gd2))
(setq sb (length gd))
(setq pt (getpoint "\n->统计数据报表左上插入点:"))
(setq po (XD::Pnts:Matrix pt sb 3 5 5))
(foreach x gd
(entmake (list
'(0 . "TEXT")
(cons 1 x)
(cons 11 po)
)
)
(setq po (polar po *x-pi15* 4.26))
)
)
(defun XD::Pnts:Matrix (basepnt rows cols rowgap colgap / j rowpts pts)
(repeat rows
(setq j -1)
(setq rowpts nil)
(setq basepnt
(polar basepnt (- (/ pi 2.0)) rowgap)
)
(repeat cols
(setq
rowpts (cons (polar basepnt 0.0 (* colgap (setq j (1+ j))))
rowpts
)
)
)
(setq pts (cons (reverse rowpts) pts))
)
(reverse pts)
) sharetow 发表于 2020-1-13 09:13
写个点位的表
哪里错了吗? TPG辉 发表于 2020-1-13 11:53
哪里错了吗?
你的这种需求,这样写可能运行快一点。
(defun c:xx(/ gd1 gd2 pt)
(setq gd1 '("T1" "525" "635" ))
(setq gd2 '("T10" "44564" "63555"))
(setq pt (getpoint "\n->统计数据报表左上插入点:"))
(LL:Txtbx pt gd1 5)
(setq pt (polar pt 0 20))
(LL:Txtbx pt gd2 5)
)
(defun LL:Txtbx(lt1 lt2 lt3 / i t1)
(setq i 0)
(repeat (length lt2)
(setq t1 (polar lt1 (- 0 (/ pi 2)) (* lt3 i)))
(entmake (list
'(0 . "TEXT")
(cons 1 (nth i lt2))
(cons 7 "Standard")
(cons 8 "dim")
'(10 0 0 0)
(cons 11 t1)
(cons 40 (* lt3 0.75))
(cons 41 0.75)
(cons 50 0)
(cons 72 2)
(cons 73 1)
'(100 . "AcDbText")
)
)
(setq i (1+ i))
)
)
sharetow 发表于 2020-1-13 14:50
你的这种需求,这样写可能运行快一点。
这样才对
页:
[1]