2017-12-11 1 views
0

ExtendScript Toolkit 자바 스크립트 코드로 원하는 모든 것을 Illustrator에서 선택할 수있었습니다. 여러 레이어에 많은 것들 (텍스트, 경로, 기호 등)이 있습니다. 이제는 같은 방식으로 크기를 조정 한 다음 이동하려고합니다.스크립트로 Illustrator에서 선택 영역으로 변형을 적용하는 방법

코드를 사용하여 하나의 객체에 변형을 적용하는 방법을 알고 있지만 각 요소의 루핑을 피하고 싶습니다. 매우 길기 때문에 변형이 각 요소의 앵커 포인트에서 적용되므로 내 도면은 실행되지 않습니다. 응집력이 없어.

이렇게 Illustrator UI에서와 같이 할 방법을 찾고 있습니다. 마우스 오른쪽 버튼을 클릭하고 변형> 비율을 클릭하십시오. 내가 자바 스크립트에서 액세스 할 수있는 UI 명령이 있나요?

답변

0

그래서 나는 어떤 형식이나 다른 방식으로 반복하지 않고 빠져 나갈 수 있는지 알지 못합니다. 그룹에 선택을 두는 것이 마음에 들지 않는다면 루핑보다 빠르며 각 요소를 선택하고 크기를 조정하고 이동하는 것보다 그룹에 추가하는 것이 더 빠를 수도 있습니다. 그룹 객체를 사용하면 그룹 객체 .scale() 및 .translate()를 수행 할 수 있습니다. 내 스크립트에서 가져온 스 니펫입니다.

#target "illustrator" 
var aiApp = app.activeDocument; 
var aSelection = aiApp.selection; 
var aGroup = app.activeDocument.groupItems.add(); 

for (i=0; i < aSelection.length; i++){ 
aSelection[i].move(aGroup, ElementPlacement.INSIDE); 
aSelection[i].move(aGroup, ElementPlacement.PLACEATEND); 
} 
//moves up 700 points and scales by 200 
aGroup.translate(0,700) 
aGroup.resize(200, 200, true , true, true, true, 200) 
+0

아주 좋은 생각하면서 구현하는 가장 쉬운 대화 상자를 변환 실행합니다. 모든 것이 그룹화되면 변환이 더 쉽습니다. 그러나 레이어 이름이 중요하기 때문에 레이어로 유지해야합니다. – superrache

1

이 작업을 수행하려면 적어도 세 가지 방법이 있습니다 :

    스크립트에서 변환을 요구하고 ( DoScript에 의해)이 작업을 재생할 실시합니다
  1. 기록 AI 작업
  2. 그룹 선택한 객체 @Dane이 제안한대로 필요한 변환을 그룹에 적용합니다. 당신은 아래의 VBA 예제와 같이 객체가, 원래의 층으로 복원 할 수 있도록 백업에 Layer 개체 속성이 필요합니다

    For i = Index_Lo To Index_Hi 
        Call Layers_Backup.Add(Item:=SelectedItems(i).Layer, Key:=Format(i)) 
        Call SelectedItems(i).Move(Temp_Group, AiElementPlacement.aiPlaceAtEnd) 
    Next i 
    
    Call Temp_Group.Resize(scaleX:=120, scaleY:=120, changeLineWidths:=120) 
    
    For i = Index_Lo To Index_Hi 
        Call SelectedItems(i).Move(Layers_Backup(Format(i)), AiElementPlacement.aiPlaceAtEnd) 
    Next i 
    
  3. 전화 Windows API 함수 (같은 PostMessage (..., WM_COMMAND, ..., ...)SendDlgItemMessage는, FindWindowEx 등) 표시하려면 채우기 그리고 필요한 AI가

이럴는, 항목 # 1의 2 번 항목은 내 선택 그룹에 가장 신뢰할 수있는

관련 문제