2013-10-14 2 views
0

Sketchup 용 플러그인 작업을 시작했으며 도움이 필요했습니다. 현재이 플러그인을 사용하면 폴더를 선택한 다음 폴더의 모든 DXF 또는 DWG 파일을 하나씩 열어 별도의 .skp 파일로 저장할 수 있습니다. 이것은 .skp 파일을 DXF 또는 DWG 파일을 사용하지 않는 다른 3D 프로그램으로 가져와야하기 때문에 만들어졌습니다. Sketchup API 및 크기 조정 모델

model.import filename, false 
outputname = File.basename(filename) + ".skp" 
model.save outputname 
model.entities.clear! 

지금 나열된 코드는 for 루프에 포함되어 있습니다 : 여기가 스크립트에 더 많은이지만,

수입하고 저장하는 것이 그것의 '주력'부분이다. 이것은 각 모델이 너무 길어지는 것을 제외하고는 완벽하게 작동합니다. 사용자에게 '축척 비율'을 묻는 메시지를 표시하고 모델을 축소하는 데 사용해야합니다.

지금, 나는 코드의 '작업'부분 전에 다음을 수행 한 :

scalePromptResult = UI.messagebox "Woudl you like to adjust the scale for ALL models being converted?", MB_YESNO 

scaleFactor = 0 

if scalePromptResult == 6 
     prompts = ["Please enter the scale factor you want to use"] 
     defaults = [0] 
     inputArray = UI.inputbox prompts, defaults, "Scale Factor" 
     scaleFactor = inputArray[0] 
end 

이 배율 인수를 입력하라는 메시지가 표시됩니다. 그게 내가 아는 전부 야. 나는 이것을 모두 정확하게 부르고있다. 나는 Objective C와 .Net에 더 익숙하다. 주어진 값을 적절한 숫자 값으로 변환하기 위해 필요한 다른 것이 있습니까? 이제

, 내가 올바른, 아마도 사람이 내 코드에서 작동하지 않는 이유를 말해 수있을 수도있는 경우 :

If scaleFactor > 0 then 
     transform = Geom::Transformation.new([scaleFactor, scaleFactor, scaleFactor]) 
     model.entities.transform_entities(transform, model.entities) 
end 

감사합니다!

+0

"작동하지 않음"은 무엇입니까? 오류가 발생 했습니까? – thomthom

+0

아무 반응이 없습니다. 'If ​​scaleFactor> 0 then' 부분에 도달하면 스크립트가 멈 춥니 다. –

답변

0

If scaleFactor > 0 then

이는 유효하지 않은 루비 구문입니다. 당신은 다음과 같은 오류가 나타납니다 것을 실행할 때 루비 콘솔 개방을 유지하는 경우 대신

Error: #<SyntaxError: <main>: syntax error, unexpected keyword_then, expecting end-of-input

if scaleFactor > 0

또한 사용, 당신은 UI.inputboxInteger 먹이 - 의미 스케치 것이다 반환 값을 Integer으로 다시 캐스팅합니다. float 값을 지정하려고합니다. defaults = [0.0]

+0

그게 전부 였어. 고마워, 나는 RSL (Ruby in my Sixth Language)이고 나는 아직도 그것을 배우고있다. 일단이 작업을 수행하고 변환을 다음과 같이 변경했습니다. 'transform = Geom :: Transformation.scaling scaleFactor' 그러면 스크립트의 엔티티를 통과하는 루프가 추가되고 모든 것이 완벽하게 작동합니다. –

관련 문제