获取打印样式名称列表
这是获取打印样式文件名的正确方法吗?还有其他选项吗?(defun c:getplotstyles ( / pstyp psdir pslst)
(setq
pstyp (getvar "PSTYLEMODE")
psdir (vla-get-printerstylesheetpath (vla-get-Files (vla-get-Preferences (vlax-get-Acad-object))))
)
(if (= pstyp 1)
(setq pslst (vl-directory-files psdir "*.ctb" 1))
(setq pslst (vl-directory-files psdir "*.stb" 1))
)
(princ pslst)
)
您可能首先希望调用refreshplotdeviceinfo方法,以确保有准确的数据可用。 谢谢李,
当我阅读refreshplotdeviceinfo时,我想到了这样的事情:
(setq Layout (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
(vlax-safearray->list (vlax-variant-value (vla-GetPlotStyleTableNames Layout))) 顺便说一句,请注意:
(vlax-safearray->list (vlax-variant-value (vla-GetPlotStyleTableNames Layout)))
与以下内容相同:
(vlax-invoke Layout 'GetPlotStyleTableNames) 也许我不太了解
(vlax-safearray->list)
(vlax-variant-value)
(vlax-invoke)
我得学很多! 无论如何,这是我第一篇文章中新的更好的o函数
(defun c:getplotstyles ( / )
(princ
(vl-member-if
'(lambda (x) (wcmatch x (nth (getvar "PSTYLEMODE")'("*.stb" "*.ctb"))))
(vlax-invoke
(vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object)))
'getplotstyletablenames
)
)
)
)
我建议:
7
页:
[1]