Illustrator Scripting :: Fill A Shape With Instances Of A Symbol?
Sep 6, 2012
I'd like to fill a shape with instances of a symbol. The sybmols should vary in size but never touch each other or the outer edges of my shape. Is there a script that can do this?
Im struggling with the correct use of symbol / symbol items in applescript. I can successfully list the symbols used on the page, but I cannot select them. How I can select all the items on the page that are Symbol Items of symbols named "Apples" but not oranges? After that I hope to replace the instances matching the height or width of the items whichever is greater with a 3rd item name. Javascript is always an option as well but I had the same difficulty.
If I right click on a symbol instance, I get a menu item, "Break link to symbol." How can I do that same thing in Javascript?
1) That is, how do I use Javascript to break the link between a SymbolItem and the Symbol it represents? (i.e. without deleting the Symbol?)
2) Once the link is broken, how do I locate the Layer that was created when the link was broken? That is, once the link is broken, it is no longer a SymbolItem; it becomes a Layer instead. How do I locate that Layer?
So I am trying to replace gps points with a symbol I have created. I have found blogs referencing a script that can replace selected items with symbols saved in the symbols panel, but I can't seem to find the actual script! Where I can find JET_ReplaceWithSymbol.jsx or any other script that can do the same function.
I'm having difficulty writing a script that deletes all of the symbols in the document (as opposed to just breaking links or expanding which I apparently cannot do). app.sourceDocument.symbols.removeAll();When it reaches a symbol that's used in the document somewhere it spits out this error: Error 1200: an Illustrator error occurred: 1346458189 ('MRAP')
I'm trying to swap symbols in situ by changing the 'name' property of the symbol instance.
My rudimentary script can find the existing symbol name (for me, that's a small triumph!). The Illustrator document has two symbols in the Symbols panel, 'blue_square' and 'red_circle'. I run the script with an instance of 'blue_square' (and nothing else) on the page, and try to change the name to 'red_circle':
var docRef = activeDocument; var symbolitem = docRef.symbolItems[0] var symbolname = symbolitem.symbol.name; var newname = "red_circle"; symbolitem.selected = true; // this next line causes the problem: symbolitem.symbol.name = newname;
I have multiple documents using text as symbols. I need to change a ® 2013 to a ® 2014 within the symbols. Without having to go into each document and double click on the symbol or break the link, is there a way to do a batch find and replace that will search within symbols to change text?
I'm trying to map a custom symbol to a 3D object in Illustrator. I've created the symbol and added it to the symbol library. Pre-installed symbols are mapping just fine when I follow the proper procedure, but for some reason my custom symbol doesn't map. I've followed the exact same process that works for the pre-made symbols, but the custom symbol doesn't map regardless of the type of 3D effect I'm using (Bevel & Extrude, Rotate, or Revolve).
I'm running Illustrator CS5 on Mac OSX Mountain Lion 10.8.2
How to create two instances of the same symbol and change the texts and images inside the instances to have different texts (so I mean different from the other instance)?
Somehow, instead of using dynamic creation by using code, I can't manage this. Everytime I change a text inside A (instance of symbol1), the text of B (instance of the same symbol1) is also changed. The same with images. I can't figure out what I'm doing wrong here. I can't imagine symbols are always reference types, 'cause what's the meaning of having symbols then?
I've been trying to pull together the right info to use JavaScript to create a form to bring in particular symbols from the symbol library based on the variables taken from the form. I've taken bits and pieces from various sample scripts and tried to make this work, but my problem appears when I try to use conditionals.This is a limited version of what I want to do, but it is enough to get the point across.
1. I want to select a script that has various dropdown boxes. I would like the first dropdown to give me 3 options: 10, 13, 18 2. I would also like another drop down box that gives me three more options: single needle, double needle, and knife edge. 3. I would then like it to have an "ok" button and "Cancel" button. 4. From here when I click the ok button, a symbol is brought in from the library depending on what parameters were given to the form.
ex. If I selected 10 in the first drop down and double needle in the second, I would like "SYMBOL A" to be pulled from the library and centered on the artboard.ex. If I selected 13 in the first drop down and double needle in the second, I would like "SYMBOL B" to be pulled from the library and centered on the artboard.
I've gotten the UI to pop up and it works as planned as well as bringing in a symbol, my problem comes when I try to incorporate conditionals and functions.Here is my script.
Now the "if then" statment works fine however my problem is the code that I am able to put into one of the two options seems limited. I'm not sure if I have it set up wrong or what, but I need to be able to delete and create instances of symbols/elements depending on the variable "test".
So for example if "test" equals 0 I want to delete symbol "update" so my code is...
sym.setVariable("test","0"); if (test = 0) {sym.getSymbol("update").deleteSymbol();} else {}
However this code doesn't work??? If I just use
sym.getSymbol("update").deleteSymbol();
then the code works fine. But when I put it in the if than statment it fails to excute? I can put other code in the if than statment, such as alert(test); and I get the proper alerts ect.... So I don't believe it is the statment itself. But I could be wrong.
I think the execution would be relatively easy. how to tell detect if a symbol is within a rectangle vector area. so almost like a parent child relationship in HTML goes? was thinking about getting top bottom left and right of a layer called parent then checking all layers below it (maybe they have "child" naming scene, so i can match by layer name) if the top bottom left and right are >=/<= the one above it. so it is basically detecting if a box is inside another box.
URL...need to detect is symbol1 is within div1 or 2 and same with symbol2
I am working with scripting in Ai, fill gradient color in TextFrame. I search in this forum but the other topics fill color to path or line. For now, I can make a gradient color, but I don't know how to apply it to textframe.
So here's what I wrote to try and find and delete all pathItems within a document that lack a fill and lack a stroke.
var doc = app.activeDocument; for (i=0; doc.pathItems.length>i;i++) { alert(doc.pathItems[i].name + " " + doc.pathItems[i].fillColor.name)
[Code]....
But alas, neither seems to do the trick, the first one makes sense why it wouldnt work since it says that the color is "undefined" but it isnt a string called "undefined." So I'm not sure how to go about this at all now.
I have a script that will select text Frames, but I have come into a situation where I need to exclude any text frames that do not have a fill color. I do not see a filled Boolean property for character attributes or text Frames.
This is what I used to select all text on all visible and unlocked layers. I dont see a way to exclude textframes that have no fillcolor.
if (app.documents.length > 0 ) { var doc = app.activeDocument; var numTextFrames = 0; for ( i = 0; i < doc.textFrames.length; i++ ) { try { textArtRange = doc.textFrames[i]; textArtRange.selected = true; } catch (e) {} } }
I need to automatically create all the possible pattern combinations with 6 shapes and 6 colors.
I have an Excell file with assigned color combinations (values from 1 to 6) in the rows, and the shape name (A to F) in the columns. Column 7 is a string containin the color combination names (i.d. 123456, 123345 etc...) so that I can output each combination with the color/numbers in the name.
I'd like Illustrator to pick every row and assign the contained colors to each shape of the column and to export a .png with the name from column 7 content.
Just simple as that! But to me it sounds pretty hard!
Is there a script that makes it already posted somewhere? - i couldn't find any - or something simliar to start coding from?
Suppose I have an object filled with a linear gradient. This object is the only selected. I just would like to change the angle of the gradient to 25 degrees. So I think I could do:
var doc = app.activeDocument alert(doc.selection[0].fillColor.angle) // the result is the exact angle of the gradient fill of the selected object. Suppose 12 degrees.
//now the try to change: doc.selection[0].fillColor.angle = 25.0
No errors are found by the Extended Script Toolkit..BUT...it does not change anything. As Illustrator reference manual does not say this property is read only, I think I could write.
The logo I'm working on requires part of some "complex" shape.
When I use the Knife tool (with the shape selected), it doesn't split: the line down the middle is just a guideline* and when I use the Erase tool, the lines become curvy.