明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 623|回复: 1

【K:GetPlotStyleLst 】获取打印样式表名称

[复制链接]
发表于 2023-3-13 16:56:25 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2023-3-20 00:15 编辑

打印样式表全获取会包含stb,利用系统变量判断当前文件的样式模式,然后过滤样式表。
秋枫大佬的批量打印只能选择ctb,估计就是这里做判断了

  1. (defun K:GetPlotStyleLst (/ DOC Layout ALLPlotStyleLst)
  2.   (vl-load-com)
  3.   (setq DOC    (vla-get-ActiveDocument (vlax-get-acad-object))
  4.         Layout (vla-get-activeLayout DOC)
  5.   )
  6.   (vla-RefreshPlotDeviceInfo Layout) ;更新打印机、规范介质和打印样式表信息
  7.   (setq ALLPlotStyleLst (vlax-safearray->list (vlax-variant-value (vla-GetPlotStyleTableNames layout)))) ;获取<打印样式>列表
  8.   ;从列表中移除不含关键词的字符串
  9.   (defun k:Remove-NoChar (Lst Char / item NewLst)
  10.     (setq NewLst '())
  11.     (foreach item Lst
  12.       (if (vl-string-search (strcase Char) (strcase item))
  13.         (setq NewLst (cons item NewLst))
  14.       )
  15.     )
  16.     (reverse NewLst)
  17.   )
  18.   (if (= (getvar "PSTYLEMODE") 1);CTB颜色样式表
  19.     (princ (k:Remove-NoChar ALLPlotStyleLst ".ctb"))
  20.     (princ (k:Remove-NoChar ALLPlotStyleLst ".stb"))
  21.   )
  22.   (princ)
  23. )



发表于 2023-11-21 08:31:38 | 显示全部楼层
有点看不明白。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 05:48 , Processed in 0.146169 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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