2012-12-19 63 views
2

任何想法爲什麼有時候腳本被調用來運行它會啓動ExtendScript Toolkit &只是失速?我想也許有很多文字需要通過。不確定每次都是這種情況。請參閱下面的腳本。爲什麼腳本有時會啓動ExtendScript Toolkit並且只是停止

如果它停下來就停在線上:var new_string = this_text_frame.contents.replace(search_string,replace_string);

// Version 3 

function myReplace(search_string, replace_string) { 
    var active_doc = app.activeDocument; 
    var text_frames = active_doc.textFrames; 
    if (text_frames.length > 0) 
    { 
     for (var i = 0 ; i < text_frames.length; i++) 
     { 
      var this_text_frame = text_frames[i]; 
      var new_string = this_text_frame.contents.replace(search_string, replace_string); 
      if (new_string != this_text_frame.contents) 
      { 
       this_text_frame.contents = new_string; 
       } 
      } 
     } 
    } 
myReplace(/^PRG.*/i, ""); 
myReplace(/.*EBOM.*/i, ""); 
myReplace(/^PH.*0000.*/i, ""); 
myReplace(/^PH.*00\/.*/i, ""); 
// N or W & 6 #'s & -S_ EX. N123456-S_ REPLACE with: N123456-S??? (THIS NEEDS TO BE ABOVE _ REPLACED BY SPACE) 
myReplace(/([NW]\d{6}-S)_/i, "$1??? "); 

myReplace(/_/gi, " "); 
// 6 #'s & - or no - & 7 #'s & 1 to 3 #'s & - EX: 123456-1234567/123- REPLACE with: -123456- 
myReplace(/(\d{6})-?\d{7}\/\d\d?\d?-/i, "-$1-"); 
myReplace(/(\d{6})-?\d{7}-\/\d\d?\d?-/i, "-$1-"); 

myReplace(/([NW]\d{6}-S)-INS-\d\d\/\d\d?-/i, "$1??? "); 

myReplace(/-INS-\d\d\/\d\d?-/i, "* "); 

// - That is only followed by one more - & Not having PIA & - & 2 to 3 #'s & / & 1 to 3 #'s & -  EX: -7NPSJ_RH-001/9- REPLACE with * & Space 
myReplace(/-[^-]*-\d\d\d?\/\d\d?\d?-/i, "* "); 

myReplace(/ ?ASSEMBLY/gi, " ASY"); 
myReplace(/ ASS?Y+$| ASS?Y - | ASS?Y -| ASS?Y | ASS?Y- | ASS?Y-/gi, " ASY - "); 

myReplace(/(MCA-|DS-?C1-?)/i, "-"); 

myReplace(/^DS-|^DI-|^PH-|MCA|^PAF-|^PAF|^FDR-|^FDR/i, ""); 

myReplace(/VIEW ([a-z])/i, "TTEMPP $1"); 

myReplace(/ ?\(?V?I?EW\)| ?\(?VIE[W)]?|^W\)| ?\(VI+$|^ ?\(VI| ?\(V+$|^ ?\(V| ?\(+$|^ ?\)/i, ""); 

myReplace(/TTEMPP ([a-z])/i, "VIEW $1"); 

myReplace(/([NW]\d{6}-S)-/i, "$1??? "); 
myReplace(/([NW]\d{6}-S)\/.-/i, "$1??? "); 

// Needs to be in this order 
myReplace(/ AND /i, "&"); 
myReplace(/WASHER/i, "WSHR"); 
myReplace(/BOLT/i, "BLT"); 
myReplace(/STUD/i, "STU"); 
myReplace(/([SCREW|SC|NUT|BLT|STU])&WSHR/i, "$1 & WSHR"); 
myReplace(/\?\?\? SCREW &/i, "??? SC &"); 
myReplace(/\?\?\? SC [^&]/i, "??? SCREW "); 
myReplace(/(\?\?\? SC & WSHR).*/i, "$1"); 
myReplace(/(\?\?\? SCREW).*/i, "$1"); 
myReplace(/(\?\?\? NUT & WSHR).*/i, "$1"); 
myReplace(/\?\?\? NUT [^&].*/i, "??? NUT"); 
myReplace(/(\?\?\? BLT & WSHR).*/i, "$1"); 
myReplace(/\?\?\? BLT [^&].*/i, "??? BLT"); 
myReplace(/(\?\?\? STU & WSHR).*/i, "$1"); 
myReplace(/\?\?\? STU [^&].*/i, "??? STU"); 

myReplace(/--/gi, "-"); 


if (app.documents.length > 0 && app.activeDocument.textFrames.length > 0) { 
// Set the value of the word to look for 
searchWord1 = "*"; 
//searchWord2 = "The"; 

// Iterate through all words in the document 
// the words that match searchWord 
for (i = 0; i < app.activeDocument.textFrames.length; i++) { 
textArt = activeDocument.textFrames[i]; 
for (j = 0; j < textArt.characters.length; j++) { 
word = textArt.characters[j]; 
if (word.contents == searchWord1) { 

word.verticalScale = 120; 
word.horizontalScale = 140; 
word.baselineShift = -3; 
} 
} 
} 
} 

[IMG] http://i.imgur.com/9IRy9.jpg [/ IMG]

這種JavaScript調用以從AppleScript的運行。

set Apps_Folder to (path to applications folder as text) 
set Scripts_Path to "Adobe Illustrator CS5:Presets.localized:en_US:Scripts:" 
set JS_FileName to "Text Find & Replace.jsx" 
-- 
try 
    set JS_File to Apps_Folder & Scripts_Path & JS_FileName as alias 
    tell application "Adobe Illustrator" 
     do javascript JS_File show debugger on runtime error 
    end tell 
on error 
    display dialog "Script file '" & JS_FileName & "' NOT found?" giving up after 2 
end try 

回答

1

您是否搜索Errorcode?

1346458189 ('MRAP') 

正是在ESTK的底部。看看這裏http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/illustrator/scripting/cs6/Readme.txt

它不是「MRAP」,它的「參數」,但數量適合。

「發生插畫錯誤:1346458189( 'PARM')」 警報(1459349)
影響:JavaScript的
問題:
時不慎編寫的腳本都反覆在Illustrator從
運行這個警告可能會出現ExtendScript工具包。

每個腳本運行是一樣的執着ExtendScript內插畫
引擎內執行。最終結果是,ExtendScript引擎的狀態爲
ExtendScript引擎在以前運行的所有腳本中都是累積的。

以下與腳本代碼問題可能會導致這個問題:

  • 讀取未初始化的變量。
  • 全局名稱空間衝突,因爲來自不同
    腳本的兩個全局名稱具有相同的名稱。

在腳本中有一些未初始化的變量

searchWord1 = "*"; 

textArt = activeDocument.textFrames[i]; 

word = textArt.characters[j]; 
+0

我試過這個http://pastebin.com/sNyNSB1h但它不工作。這是正確的軌道和接近解決方案? – Brianedl

+0

不對,這更糟糕。 ;(看看這個.https://gist.github.com/4351305但是這隻查找字符內容,第一個腳本中的searchTerms是RegExp語法,所以你必須使用String.search或者String.replace與他們http://www.w3schools.com/jsref/jsref_obj_regexp.asp – fabianmoronzirfas

+0

這是非常有益的,謝謝,我會與它合作,並嘗試學習更多的腳本我希望你有一個良好的聖誕節和新年! – Brianedl

1

它不是 「防地雷反伏擊」,它的 「PARM」 但數量相符。

實際上,在Mac OS「防地雷反伏擊」是正確的句子返回。 「PARM」用於窗口。

我對此錯誤的體驗:

我運行了2 000行'javascript。

我要檢查700個文件夾包含各1間 - 型動物。愛文件15。

  • 在MacOS 10.7,我得到這個錯誤2次,​​15個文件夾,從來沒有相同的文件。 (CS6)

  • 在Win8我得到這個錯誤1次5個文件夾,從來沒有相同的文件。 (CC 2014)

  • on win7我得到這個錯誤1次100個文件夾,從來沒有相同的文件。 (CC 2014或CS6)

  • 最後我在剛安裝好的win7上運行它,並且沒有錯誤,腳本運行了10個小時而沒有中斷。 (CC 2014或CS 6)

1

雖然我敢肯定@fabianmoronzirfas有技術上是正確的,最有可能的答案,我最近與錯誤1346458189經驗是似乎是Illustrator的相當於微軟的臭名昭著的「未知錯誤的「。也就是說,它似乎是Adobe無法爲其寫入更多信息的錯誤陷阱的萬能錯誤。

對我來說,這個無益的錯誤是試圖設置畫板太小(低於1分)的結果。顯然,Illustrator沒有做足夠的邊界檢查。對於其他人來說,據我所知,通過搜索網絡可以發現,這是出於一些原因。可能包括Illustrator腳本處理器中的內存和其他錯誤,這可能是解決某些場景中的隨機性的一種方法。然而,最有可能的是,我懷疑它通常可以用更持久的代碼解決。

相關問題