Adobe Illustrator脚本编制

问题描述

我正在尝试创建一个Scrip,以将另存为色板的不同模式添加到作为图层一部分的一组分组项目中。不幸的是,在查看Illustrator脚本指南时,我找不到正确的方法。分组的项目具有color属性,该属性允许我修改基本颜色,但是找不到任何允许更改图案的属性

有人可以帮忙吗?

谢谢, 拉兹万(Razvan Sodoleanu)

解决方法

问题是,没有办法使用脚本命令从图稿中添加图案-除了可以使用javascript来执行appExecuteMenuCommand来定义图案之外,其他方法都没有。好了,我们可以从VBS运行这个小巧的javascript,没有任何问题,但是出现了Pattern对话框,我们不想要那样。因此,只需发送一个Escape键退出对话框,您的新模式就应该是swatches集合中的最新样本!

Set AiApp = CreateObject("Illustrator.Application")
AppName = AiApp.Name
' MsgBox(AppName)
Set Doc = AiApp.ActiveDocument

Set MyGroup = Doc.GroupItems(1)
Doc.Selection = MyGroup

AiApp.DoJavaScript("app.executeMenuCommand('Adobe Make Pattern')")
Set WScriptShell =  CreateObject("WScript.Shell")
WScriptShell.SendKeys("{Escape}")

编辑: 我再次阅读了您的问题,实际上我回答了上述问题。您的真实答案是以下代码段。您不能将模式应用于组,但是只能将其应用于PathItems。如果您的PathItems在一个组中,则可以进入GroupItem以获取其PathItems属性。此示例显示在文档级别上引用路径,该路径考虑了文档中是否嵌套的每个单个路径。在我的文档中,我只有一个矩形来演示VBS代码。

Set AiApp = CreateObject("Illustrator.Application")
Set Doc = AiApp.ActiveDocument

Set MyPatternSwatch = Doc.Swatches.GetByName("Alyssa")
Set MyRect = Doc.PathItems(1)

MyRect.FillColor = MyPatternSwatch.Color

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...