Помогите нарезать модель на шпангоуты

mega_john
qwerty1000:

а нельзя ли разместить код скрипта с пояснениями, куда и что вставлять? буду признателен 😃

все что после – и есть коментарии, просто нада уметь на ангельском читать;)
по идее, Вам нужно всего 2 параметра из этого скрипта, meshSelected - имя объекта, numLevels - число контуров

qwerty1000

что-то получается, но только с чайником. как мне свою модель порезать? как точно имя прописать?
meshSelected = teapot() – object to create contours of

Flanker_13

Да, тоже понял всю прелесть скрипта, но этот чайник… рядом стоящую модель тоже режет, но это извращение, как убрать чайник и поставить вместо него мою модель?

mega_john

ну елы палы, вместо teapot написать имя своего объекта, и все!

qwerty1000

может я туплю, но это имя файла? перебрал кучу вариантов, скрипт дает ошибку:
#(3D_StudioExporterPlugin, Adobe_Illustrator, DWG_ExportExporterPlugin, DWG_Export, Wavefront_MaterialExporterPlugin, Lightscape_Layers, STL_Export, Lightscape_Material, Lightscape_Preparation, IGES_Export, Lightscape_Parameter, Lightscape_Blocks, SW3D_Exp, Wavefront_ObjectExporterPlugin, Lightscape_View, ExportHTR, JSR184Exporter, AsciiExp, VRBL_Export, DWF_Exporter)
– Error occurred in anonymous codeblock; filename: C:\CNC\3dsmax 2008\!for 3dsmax\script-porezka_new_X.ms; position: 103
– Unknown property: “max” in undefined
– Error occurred in anonymous codeblock; filename: C:\CNC\3dsmax 2008\!for 3dsmax\script-porezka_new_X.ms; position: 161
– Unknown property: “min” in undefined
– Error occurred in anonymous codeblock; filename: C:\CNC\3dsmax 2008\!for 3dsmax\script-porezka_new_X.ms; position: 188
– Unknown property: “max” in undefined
150
– Error occurred in anonymous codeblock; filename: C:\CNC\3dsmax 2008\!for 3dsmax\script-porezka_new_X.ms; position: 253
– Frame:
– No “”-“” function for undefined
– Error occurred in anonymous codeblock; filename: C:\CNC\3dsmax 2008\!for 3dsmax\script-porezka_new_X.ms; position: 0
– Unable to convert: undefined to type: Float

сам скрипт выглядит так:
theClasses = exporterPlugin.classes
meshSelected = susections.max ( ) – object to create contours of
minX = meshSelected.min.x – get min and max X positions
maxX = meshSelected.max.X
numLevels = 150 – the number of contours
delta = (maxX - minX) / (numLevels + 1) – the number of steps
for currentX = minX to maxX by delta do – start loop…
(
s = section pos:[0, 0, currentX] – create Section
max views redraw – this line is needed to get around the problem
convertToSplineShape s – convert Section to SplineShape
select s
exportFile (GetDir #scene +“/exportTest”+(currentX as string)+“.dxf”) #noPrompt selectedOnly:true using:theClasses[4] --export to dxf
s.renderable = true – set to renderable
)

qwerty1000

сори за беспокойство, но здесь мы сидим чтобы хоть что-то понять, чему-то научиться.
у меня там пустое поле, клики не помогают, как задать имя объекту?

сейчас кликнул по проекции, имя Section71, их там у меня 150, как в скрипте указать, что импортить нужно все 150?
вот что получается, у меня модель уже разбита на проекции, см. картинку, запускаю скрипт экспорта и начинаются ошибки
(вживую увидеть можно здесь www.golodranci.ru/1.gif)

mega_john

так если модель уже попилена, все еще проще:

theClasses = exporterPlugin.classes
for i = 1 to objects.count do
(
    select objects[i]
    exportFile (GetDir #scene +"/exportTest"+(i as string)+".dxf") #noPrompt  selectedOnly:true using:theClasses[4]  --export to dxf
)

сохраняет каждый объект в “.dxf”

Flanker_13

да, у меня тоже не выходит. Писал название модели ( копировал вернее) даёт ошибку.

mega_john

действительно, так будет работать только для максовых примитивов, можно попробовать так:

meshSelected = selected[1]

и при запуске скрипта, не забыть выделить свой объект для попила;)

Flanker_13
mega_john:

так если модель уже попилена, все еще проще:

theClasses = exporterPlugin.classes
for i = 1 to objects.count do
(
   select objects[i]
   exportFile (GetDir #scene +"/exportTest"+(i as string)+".dxf") #noPrompt  selectedOnly:true using:theClasses[4]  --export to dxf
)

сохраняет каждый объект в “.dxf”

Ну чтож, так тоже работает 😃

mega_john:

действительно, так будет работать только для максовых примитивов, можно попробовать так:

meshSelected = selected[1]

и при запуске скрипта, не забыть выделить свой объект для попила;)

Ага, попробуем

нет, так не работает. Ругается.

qwerty1000

у меня заработал вот этот скрипт.
theClasses = exporterPlugin.classes
for i = 1 to objects.count do
(
select objects[i]
exportFile (GetDir #scene +“/exportTest”+(i as string)+“.dxf”) #noPrompt selectedOnly:true using:theClasses[4] --export to dxf
)

перед этим мадель была уже попилена. мегаДжону-мегареспект 😃

mega_john

понятно, слив работает, надо значит автоматический попил починить…

qwerty1000
mega_john:

понятно, слив работает, надо значит автоматический попил починить…

в скрипте автопопила, указывается направление ZX и т.д. каждый раз когда нужно сменить напрвление попила, правишь в ручную, можно ли это в скрипте как-то обойти? т.е. выделил один вид (правый, левый, не суть) и запустил скрипт?

mega_john

пардон, в скрипте автопопила нужно писать selection[1], а не selected[1] 😵

по поводу смены направления, полюбому можно, можно даже гуй красивый к скрипту нарисовать, со всякими кнопачками и параметрами😒
да только я максскрипта не знаю нифига, приходица F1 читать…но тут я думаю Вы и сами его можете почитать😝

Flanker_13

Да, работает. А как выбрать другую ось?😒

mega_john

ну совсем читать не хотите😈
в этой строке

s = section pos:[0, 0, currentZ]

то, что в квадратных скобках, есть координаты Х,У и Z по каким нада, туда и подставляете currentZ

Flanker_13

попробовал. Переставлял этот параметр. Что-то режет, создаёт файлы… Но во-первых не видно что он режет, а во-вторых файлы пустые. И только в вашей редакции ( когда корентZ в оси Z стоит), программа режет модель исправно. Просто не в той плоскости. Мне например надо порезать в оси X. Ставлю так
и не получается ничего. ( на счёт читать… могу перевести со словарём, но в скриптах я всё равно не силён, уж потерпите 😃)) )
s = section pos:[currentZ, 0, 0]

mega_john

надо тут еще подставлять нужную координату:

minZ = meshSelected.min.z
maxZ = meshSelected.max.z