明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 473|回复: 2

【K:CreateTabSty】创建表格样式并置为当前

[复制链接]
发表于 2025-3-20 15:47:47 | 显示全部楼层 |阅读模式

根据这篇贴子的资料就行了调整:https://hyperpics.blogs.com/beyond_the_ui/2012/07/creating-a-table-style-with-autolisp-and-the-activex-api.html
  1. (defun K:CreateTabSty (StyNam MaxTxt MinTxt Margin / dictObj TabSty)
  2.     ;; 获取 Dictionary 集合和 TableStyle 字典
  3.     (setq dictObj (vla-Item (vla-get-Dictionaries (vla-get-activedocument (vlax-get-acad-object))) "acad_tablestyle"))
  4.     (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list dictObj StyNam)))
  5.         (progn
  6.               ;创建自定义表格
  7.               ;(setq StyNam "WorkTools")
  8.               (setq TabSty (vla-AddObject dictObj StyNam "AcDbTableStyle"))

  9.               ;样式名称和注释
  10.               (vla-put-Name TabSty StyNam)
  11.               (vla-put-Description TabSty "用于统计数据")

  12.               ;设置样式的位标志值
  13.               (vla-put-BitFlags TabSty 1)

  14.               ;设置表格的方向,从上到下或从下到上
  15.               (vla-put-FlowDirection TabSty acTableTopToBottom)

  16.               ;; Sets the supression of the table header
  17.               (vla-put-HeaderSuppressed TabSty :vlax-false)
  18.               ;; Sets the supression of the table title
  19.               (vla-put-TitleSuppressed TabSty :vlax-false)
  20.             
  21.               ;水平边距+垂直边距
  22.               (vla-put-HorzCellMargin TabSty Margin)
  23.               (vla-put-VertCellMargin TabSty Margin)

  24.               ;文字居中对齐
  25.               (vla-SetAlignment TabSty (+ acDataRow acTitleRow) acMiddleCenter)
  26.               (vla-SetAlignment TabSty acHeaderRow acMiddleCenter)

  27.               ;|设置标题行和表头行的背景颜色
  28.                 (setq colObj (vlax-create-object (strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2))))
  29.                 (vla-SetRGB colObj 98 136 213)
  30.                 (vla-SetBackgroundColor TabSty (+ acHeaderRow acTitleRow) colObj)
  31.                 ;; Release the color object
  32.                 (vlax-release-object colObj)
  33.               |;

  34.               ;清除数据行的背景颜色
  35.               (vla-SetBackgroundColorNone TabSty acDataRow :vlax-true)
  36.               ;|
  37.                 ;设置标题行底部网格颜色
  38.                 (vla-SetRGB colObj 0 0 255)
  39.                 (vla-SetGridColor TabSty acHorzBottom acTitleRow colObj)
  40.                
  41.                 ;设置标题行的底部网格线线宽
  42.                 (vla-SetGridLineWeight TabSty acHorzBottom acTitleRow acLnWt025)
  43.               |;
  44.               ;为数据行和标题行设置可见的网格水平线
  45.               (vla-SetGridVisibility TabSty acHorzInside  (+ acHeaderRow acDataRow) :vlax-true)
  46.               ;设置文本样式
  47.               (vla-SetTextStyle TabSty (+ acDataRow acHeaderRow acTitleRow) "Standard")
  48.               ;设置标题、表头和数据行的文本高度
  49.               (vla-SetTextHeight TabSty acTitleRow MaxTxt)
  50.               (vla-SetTextHeight TabSty (+ acDataRow acHeaderRow) MinTxt)
  51.               (setvar 'ctablestyle StyNam)
  52.         )
  53.         (setvar 'ctablestyle StyNam)
  54.     )
  55.     (princ)
  56. )



用法:
  1. (K:CreateTabSty "WorkTools" 5.0 4.0 0.0)
回复

使用道具 举报

发表于 2025-3-24 08:49:07 | 显示全部楼层
谢谢楼主分享!
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
谢谢楼主分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-1 09:30 , Processed in 0.145384 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表