#include <File.au3>
AutoItSetOption("MustDeclareVars", 1)
Local $i
Local $sSourceFile, $sDestFile, $sDestPath, $sExePath
Local $sDrive, $sFolder, $sFileName, $sExt, $sParams, $sRunWait
Local $sPattern = "\.(?i:ascii)"
If $CmdLine[0] <> 0 Then
If FileExists("C:\Program Files (x86)\noesis\4231\Noesis.exe") Then
ProgressOn("Converting", "", "0%")
For $i = 1 To $CmdLine[0]
$sSourceFile = $CmdLine[$i]
ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")
If FileExists($sSourceFile) Then
_PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)
;~ If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
$sExePath = '"C:\Program Files (x86)\noesis\4231\Noesis.exe" ?cmode'
;~ $sParams = '-rotate 90 0 0 -fbxnewexport -fbxreducekeys -fbxexportver FBX200900'
$sParams = '-fbxexportver FBX201100'
;~ $sDestFile = _PathMake($sDrive, $sFolder, $sFileName, ".fbx")
$sDestFile = '"' & $sDrive & StringTrimRight($sFolder, 1) & '\' & $sFileName & ".fbx" & '"'
$sSourceFile = '"' & $sSourceFile & '"'
$sRunWait = $sExePath & " " & $sSourceFile & " " & $sDestFile & " " & $sParams
ConsoleWriteError($sRunWait) ; отладка
RunWait($sRunWait)
;~ Else
;~ ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
;~ EndIf
Else
MsgBox(0, '', "File [" & $sSourceFile & "] not found")
EndIf
Next
ProgressSet(100, "Converting complete", "100%")
Sleep(1000)
ProgressOff()
EndIf
Else
MsgBox(0, "Usage", "Drop file(s) on " & @ScriptName)
ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf
Exit (0)
C:\Users\Brut\Desktop\noesisv4267>Noesis.exe ?cmode "C:\Users\Brut\Desktop\body_guard_1_body_barge.mesh.ascii" "C:\Users\Brut\Desktop\123.fbx" -fbxexportver FBX201100
Noesis console mode activated.
Noesis initialized.
Source file: C:\Users\Brut\Desktop\body_guard_1_body_barge.mesh.ascii
Dest file: C:\Users\Brut\Desktop\123.fbx
Options: -fbxexportver "FBX201100"
===
-fbxexportver parameter accepted.
Output extension has set output file type to:
.fbx - Autodesk FBX
Detected file type: Unknown
Nothing was exported!
---------------------------
Noesis Error
---------------------------
?cmode specified, but could not attach to parent console!
---------------------------
ОК
---------------------------
RunWait(@ComSpec & ' /c ' & $sRunWait, '', @SW_HIDE)
#pragma compile(Console, True)
RunWait($sRunWait)
так работает, только как сделать чтобы не появлялась консоль?joiner сказал(а):<...>
или сам скрипт компилировать как консольное приложение, указав в начале кода
Код:#pragma compile(Console, True)
тогда можно использовать
Код:RunWait($sRunWait)
в том то и дело, что он не работаетjoiner сказал(а):Параметр SW_HIDE
а это у меня вообще не работает. может быть ещё что-то нужно изменить чтобы эта строка заработала?joiner сказал(а):тогда обычная компиляция и
Код:RunWait(@ComSpec & ' /c ' & $sRunWait, '', @SW_HIDE)
#include <File.au3>
AutoItSetOption("MustDeclareVars", 1)
Local $cmdGUI = GUICreate('')
GUISetState(@SW_HIDE, $cmdGUI)
Local $i
Local $sSourceFile, $sDestFile, $sDestPath, $sExePath
Local $sDrive, $sFolder, $sFileName, $sExt, $sParams, $sRunWait
Local $sPattern = "\.(?i:ascii)"
If $CmdLine[0] <> 0 Then
If FileExists("C:\Users\Brut\Desktop\noesisv4267\Noesis.exe") Then
ProgressOn("Converting", "", "0%")
For $i = 1 To $CmdLine[0]
$sSourceFile = $CmdLine[$i]
ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")
If FileExists($sSourceFile) Then
_PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)
$sExePath = 'C:\Users\Brut\Desktop\noesisv4267\Noesis.exe ?cmode'
$sParams = '-fbxexportver "FBX201100"'
$sDestFile = '"' & $sDrive & StringTrimRight($sFolder, 1) & '\' & $sFileName & ".fbx" & '"'
$sSourceFile = '"' & $sSourceFile & '"'
$sRunWait = $sExePath & " " & $sSourceFile & " " & $sDestFile & " " & $sParams
RunWait(@ComSpec & ' /c ' & $sRunWait, '', @SW_HIDE)
Else
MsgBox(0, '', "File [" & $sSourceFile & "] not found")
EndIf
Next
ProgressSet(100, "Converting complete", "100%")
Sleep(1000)
ProgressOff()
EndIf
Else
MsgBox(0, "Usage", "Drop file(s) on " & @ScriptName)
ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf
Exit (0)
joiner сказал(а):Тот файл, который ты дал не конвертируется. Выше я дал описание ошибки. Я конвертировал обычный .jpg. Все сработало
Добавлено:Сообщение автоматически объединено:
вот мой примерный код <...>
в консоли получается следующее:joiner сказал(а):не конвертирует? какую ошибку в консоль пишет?
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\autoit\convert_ascii_to_fbx.au3" "D:\00BCB111D67783/1FA83D69D89B24.ascii"
C:\Windows\system32\cmd.exe /c "C:\Program Files (x86)\noesis\4231\Noesis.exe" ?cmode "D:\00BCB111D67783/1FA83D69D89B24.ascii" "D:\00BCB111D67783\1FA83D69D89B24.fbx" -fbxexportver FBX201100>Exit code: 0 Time: 1.208
так ничего, окно не появляетсяjoiner сказал(а):Не то. Что пишет конвертор в консоль? Noesis
"C:\Program" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
код у меня такой:joiner сказал(а):значит проблема в строке команды а не в коде. что то поправил не так
#include <File.au3>
;~ #pragma compile(Console, True)
AutoItSetOption("MustDeclareVars", 1)
Local $cmdGUI = GUICreate('')
GUISetState(@SW_HIDE, $cmdGUI)
Local $i
Local $sSourceFile, $sDestFile, $sDestPath, $sExePath
Local $sDrive, $sFolder, $sFileName, $sExt, $sParams, $sRunWait
Local $sPattern = "\.(?i:ascii)"
If $CmdLine[0] <> 0 Then
If FileExists("C:\Program Files (x86)\noesis\4231\Noesis.exe") Then
ProgressOn("Converting", "", "0%")
For $i = 1 To $CmdLine[0]
$sSourceFile = $CmdLine[$i]
ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")
If FileExists($sSourceFile) Then
_PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)
;~ If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
$sExePath = '"C:\Program Files (x86)\noesis\4231\Noesis.exe" ?cmode'
;~ $sParams = '-rotate 90 0 0 -fbxnewexport -fbxreducekeys -fbxexportver FBX200900'
$sParams = '-fbxexportver FBX201100'
;~ $sDestFile = _PathMake($sDrive, $sFolder, $sFileName, ".fbx")
$sDestFile = '"' & $sDrive & StringTrimRight($sFolder, 1) & '\' & $sFileName & ".fbx" & '"'
$sSourceFile = '"' & $sSourceFile & '"'
$sRunWait = $sExePath & " " & $sSourceFile & " " & $sDestFile & " " & $sParams
ConsoleWriteError(@ComSpec & ' /K ' & $sRunWait) ; отладка
RunWait(@ComSpec & ' /K ' & $sRunWait)
;~ RunWait($sRunWait, '', @SW_HIDE)
;~ Else
;~ ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
;~ EndIf
Else
MsgBox(0, '', "File [" & $sSourceFile & "] not found")
EndIf
Next
ProgressSet(100, "Converting complete", "100%")
Sleep(1000)
ProgressOff()
EndIf
Else
MsgBox(0, "Usage", "Drop file(s) on " & @ScriptName)
ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf
Exit (0)
#include <File.au3>
AutoItSetOption("MustDeclareVars", 1)
Local $i
Local $sSourceFile, $sDestFile, $sDestPath, $sExePath
Local $sDrive, $sFolder, $sFileName, $sExt, $sParams, $sRunWait
If $CmdLine[0] <> 0 Then
If FileExists("C:\Program Files (x86)\noesis\4231\Noesis.exe") Then
ProgressOn("Converting", "", "0%")
For $i = 1 To $CmdLine[0]
$sSourceFile = $CmdLine[$i]
ProgressSet(($i / $CmdLine[0]) * 100, $sFileName & $sExt, String(Round($i / $CmdLine[0] * 100, 1)) & "%")
If FileExists($sSourceFile) Then
_PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)
$sExePath = FileGetShortName('C:\Program Files (x86)\noesis\4231\Noesis.exe') & ' ?cmode'
$sParams = '-fbxexportver FBX201100'
$sDestFile = '"' & $sDrive & StringTrimRight($sFolder, 1) & '\' & $sFileName & ".fbx" & '"'
$sSourceFile = '"' & $sSourceFile & '"'
$sRunWait = $sExePath & " " & $sSourceFile & " " & $sDestFile & " " & $sParams
RunWait(@ComSpec & ' /c ' & $sRunWait, '', @SW_HIDE)
Else
MsgBox(0, '', "File [" & $sSourceFile & "] not found")
EndIf
Next
ProgressSet(100, "Converting complete", "100%")
Sleep(1000)
ProgressOff()
EndIf
Else
MsgBox(0, "Usage", "Drop file(s) on " & @ScriptName)
ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf
Exit (0)