在这个lisp中,结果是正确的,但一些挑剔的细节人员想知道它们是否可以堆叠。是否可以将vl函数合并到此表中以实现此目的?
(defun C:stt (/ col count dis dmz lpc lup pt row strdis tb va vm vo) (setq pt (vlax-3d-point (getpoint "\nPick Insertion Point: "))) (setq vo (vlax-get-acad-object)) (setq va (vla-get-activedocument vo)) (setq vm (vla-get-modelspace va)) (setq row (+ 1 (getreal "\nHow many Stubs? : "))) (setq col 1) (setq dis (getdist "\nWhat Is The First Stub Dimension? : ")) (setq lup (getvar "lunits")) (setvar "lunits" 5) ; architectural units (setq lpc (getvar "luprec")) (setvar "luprec" 4) ;precision 1/16" (setq dmz (getvar "dimzin")) (setvar "dimzin" 1) ;includes both feet and inches for primary unit (setq strdis (rtos dis 4 4)) (setq tb (vla-addtable vm pt row col 1 1)) (vla-put-titlesuppressed tb :vlax-false) (vla-put-headersuppressed tb :vlax-true) (vla-put-RegenerateTableSuppressed tb :vlax-true) (vla-put-vertcellmargin tb 0.5) (vla-put-horzcellmargin tb 0.5) (vla-setrowheight tb 0 4.5) (vla-setcolumnwidth tb 0 16.1) (vla-settextstyle tb actitlerow "bold") ;title text style (vla-settextstyle tb acdatarow "STANDARD") ;data rows text style (vla-settextheight tb actitlerow 2.5) ;title text height = 0.27 (vla-settextheight tb acdatarow 1.75) ;other cells text height = 0.21 (vla-setalignment tb actitlerow acmiddlecenter) ;title alignment (vla-setalignment tb acdatarow acmiddlecenter) ;data cell alignment (vla-settext tb 0 0 "STUBS") ;title text (setq count 1) (while (< count row) (vla-setrowheight tb count 4.5) (if (= count 1) (progn (vla-settext tb count 0 strdis) (vla-setcellformat tb count 0 "%lu4%pr4"));lu4 - format in architectural units, pr4 - precision is 1/16" (progn (vla-settext tb count 0 (strcat "= A2*" (itoa count)));lu4 - format in architectural units, pr4 - precision is 1/16" (vla-setcellformat tb count 0 "%lu4%pr4") ) ) (setq count (1+ count)) ) (vla-put-RegenerateTableSuppressed tb :vlax-false) (setvar "luprec" lpc) (setvar "lunits" lup) (setvar "dimzin" dmz) (princ) ) ;_ end(vl-load-com)