lisp 用vla-addtable函数绘制表格,表格字体大小vla-setcelltextheight(方法三)

  • A+
所属分类:CAD二次开发

cad表格是可以直接导出到其他软件使用的,前提下数据要同步,前面已经介绍了两种,一种是硬通过直线画,缺点不能同步数据,第2种是使用组码创建,第3种就是使用vla-addtable 函数创建了,懒得介绍了,自己看吧,代码有注释。

lisp 用vla-addtable函数绘制表格,表格字体大小vla-setcelltextheight(方法三)

(defun c:aDD ( / ActiveDocument mSpace pt myTable nRows nCols row cell lst_en ptt)
(vl-load-com)

;指向 AutoCAD 对象的指针,对象特性
(setq ActiveDocument (vla-get-activedocument
(vlax-get-acad-object)))
(setq mSpace(vla-get-modelspace ActiveDocument))

;vlax-vbDouble (5) 双精度浮点数
(setq pt (vlax-make-safearray vlax-vbDouble'(0 . 2)))

;表的插入点
(setq ptt (getpoint "\n-->>>伙计百科-->请指定表的基点:"))

(vlax-safearray-fill pt ptt);创建数组、填满数组

(setq myTable(vla-addtable mSpace pt 6 5 12 35));(vla-addtable 空间对象 表点 行数 列数 行高 列宽)

(vla-setcelltextheight myTable 0 0 15);标题字体大小
(vla-settext myTable 0 0 "网站huojibk.com");标题

;表的行数
(setq nRows(- (vla-get-rows myTable) 1))

;表的列数
(setq nCols(- (vla-get-columns myTable) 1))

(setq btt'("序号" "日期" "网站" "名称" "备注" )
cell 0)

;设置表头
(while (<= cell nCols)
(setq lst_en(nth cell btt))

(vla-setCelltextHeight myTable 1 cell 8.0);字体大小
(vla-settext myTable 1 cell lst_en)
(setq cell (1+ cell))
)

; 行和列的循环初始值
(setq row 2
cell 0
lst_en 0)

; 循环写表
(while (<= row nRows)
(while (<= cell nCols)

(vla-setCelltextHeight myTable row cell 6.0);字体大小
;(vla-settext 表对象 行 例 “值”)
(vla-settext myTable row cell (strcat "伙计百科" (itoa lst_en)))
; 中间对齐
(vla-setCellAlignment myTable row cell 5)

(setq cell (1+ cell)
lst_en(1+ lst_en))
);while
(setq row (1+ row))
(setq cell 0)
);while
(princ)
)

复制

 

测试命令ADD

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: