Проблема Nr 1 - Здесь ниже вы можете увидеть кусок кода, который я написал, что поможет вам назначить материалы к выбранным объектам. (даже на основе внешнего файла библиотеки .mat) он полностью работает.
rollout matTests "MatTester_v01" (
global renderwidth = renderWidth
global renderHeight = renderHeight
local outputFolderURL = ""
local bestandsNaam = ""
local materiaalNaam = #()
local saveFolder = "testen"
label usage0 "Step 1 - Give your images a filename"
edittext filenaam "" fieldWidth:220 labelOnTop:false
label usage1 "Step 2 - Choose a save folder"
button save_folder "Save folder" width:250
label usage "Step 3"
pickbutton kiesGeo "Select your geometry" width:250
label usage2 "Step 4"
button btn_loadmat "Open a .mat library" width:250
on save_folder pressed do
(
outputFolderURL = getSavepath()
saveFolder = outputFolderURL
)
global obj
--camlist = #()
on kiesGeo picked obj do
(
select obj
)
on filenaam entered txt do
(
bestandsNaam = txt
)
on kies_camera selected i do
format "You selected '%'!\n" scale_dd.items[i]
on btn_loadmat pressed do
(
local sel = getCurrentSelection()
if (sel.count == 0) then (messagebox "no objects are selected" title:"Error 001 - no objects selected")
else
(
local libFile = getOpenFileName caption:"select a material library file" types:"Material Libraries (*.mat)|*.mat"
if (libFile != undefined) then
(
local tempLib = loadTempMaterialLibrary libFile
if (tempLib == undefined) then (messagebox "loading a library file failed" title:"Error 002 - loading a library file failed")
else
(
-- save materials in a array
for m in tempLib do (
global materiaalNaam = #(m)
print materiaalNaam
)
local aantalmaterials = templib.count
for iterations = 1 to aantalmaterials do -- begin iterations loop
(
global welkeImage = iterations
function snapMats label size:[renderWidth,renderHeight] folder:"testMats" =
(
for c in cameras do
(
local fname = folder + label + "-" + c.name
materiaalNaamString = materiaalNaam as string
versie = welkeImage as string
render camera:c outputFile:(outputFolderURL + "\\" + bestandsNaam + "-" + versie + ".jpg") outputSize:[renderWidth,renderHeight]
)
)
snapMats "label"
local mat = tempLib[welkeImage]
sel.material = mat -- assign geindexerd material to my selected geometry
meditmaterials[activeMeditSlot] = mat
) -- end for iterations loop
)
)
)
)
)
createDialog matTests width:250
В общем - Для того, чтобы сохранить что-нибудь (например, данные материала) в текстовый файл, вы можете, например, предлагают возможность для пользователя, чтобы выбрать папку, в первую очередь.
Вы делаете это, вставляя в свой пользовательский интерфейс простую кнопку. А затем сделайте следующее:
on yourbuttonname_btn pressed do
(
inputFolderURL = getSavepath()
-- this will store the folder URL into the inputFolderURL variable.
)
проблема NR 2 - на самом деле сохранить некоторые данные в файл .txt Сан - сделать что-то вроде: в следующем примере, вы можете увидеть, как хранить Vertes. данные в файл .txt (но это также может быть легко и материальными данными или что-то еще)
tmesh = snapshotAsMesh selection[1]
out_name = ((GetDir #export)+"/testmesh.txt")
out_file = createfile out_name
num_verts = tmesh.numverts
num_faces = tmesh.numfaces
format "%,%\n" num_verts num_faces to:out_file
for v = 1 to num_verts do
(
vert = getVert tmesh v
format "%," vert to:out_file
)
format "\n" to:out_file
for f = 1 to num_faces do
(
face = getFace tmesh f
format "%," face to:out_file
)
close out_file
delete tmesh
edit out_name
Что именно застряло? Можете быть более конкретными? – lenz
Я получаю ошибку ввода-вывода при запуске скрипта, его ударе или пропуске при сохранении файла. Я могу запустить его один раз, и это экономит, но я запускаю его во второй раз, и он терпит неудачу. – Kriscabrera
интересный ....... я пытаюсь это на чистой максимальной сцене и ее работе отлично, (пробуя это на работе, возможно, это труба), так что теперь мой вопрос заключается в том, что это правильная строка для записи в файл? для о в селекции делать ( out_name = ((GetDir #export) = "/ testmesh.txt) out_file = CreateFile out_name формат "%,% \ п" o.name o.material к: out_file ) ! спасибо за помощь – Kriscabrera