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

dollop
Flanker_13:

Ещё раз большущее спасибо! у меня всё получилось!!! Именно то - что я хотел!

С почином. 😃

qwerty1000:

открывать дфх, убивать все сечения кроме одного, сохранять, аналогично с остальными. а если таких сечений 200, 500 и больше? пропадает день работы много рутинной работы.

Ага. конечно можно. Я думаю, что вы знаете, что для автоматизации рутинной работы компьютеры и создавались. У МАХа есть встроенный язык - maxscript. осталось только освоить maxscript и всего делов-то 😃.
Если Вы имеете ввиду, чтоб при экспорте из МАХа в каждом файле было только одно сечение, то это тоже можно сделать рутинно. До команды экспорта из МАХа выделяйте только одно сечение и выполняйте команду file-export selected.

Как-нить нарисую скриптик (если будет еще актуально), но к сожалению, катастрофически не хватет времени 😦.

З.Ы. Если знаете макросы на Visual Basic, то можно это и в corel сделать, после импорта. Там каждое сечение в виде отдельного сплайна. Хотя красивее все же в МАКсе, шоб ввели количество шпангоутов, плоскость нарезки, нажали на ОК - вуаля 300 файлов dxf.

Flanker_13

Если кому-то, как и мне нужен чертёж Су-27, можете забрать мой здесь rcopen.com/forum/f7/topic137953

Формат картинки, но разрешение я оставил довольно хорошее, так-что его можно использовать для постройки.😃

qwerty1000

вот нарыл скрипт для маха, чтобы порезать на проекции 😃 может кому пригодится

meshSelected = teapot() – object to create contours of
minZ = meshSelected.min.z – get min and max Z positions
maxZ = meshSelected.max.z
numLevels = 10 – the number of contours
delta = (maxZ - minZ) / (numLevels + 1) – the number of steps
for currentZ = minZ to maxZ by delta do – start loop…
(
s = section pos:[0, 0, currentZ] – create Section
max views redraw – this line is needed to get around the problem
convertToSplineShape s – convert Section to SplineShape
s.renderable = true – set to renderable
)

dollop

Раз пошла такая пьянка 😁, то вот то же самое, только с экспортом в отдельный dxf каждого из сечений:


theClasses = exporterPlugin.classes
meshSelected = teapot() -- object to create contours of
minZ = meshSelected.min.z -- get min and max Z positions
maxZ = meshSelected.max.z
numLevels = 10 -- the number of contours
delta = (maxZ - minZ) / (numLevels + 1) -- the number of steps
for currentZ = minZ to maxZ by delta do -- start loop...
(
s = section pos:[0, 0, currentZ] -- 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"+(currentZ as string)+".dxf") #noPrompt  selectedOnly:true using:theClasses[4]  --export to dxf
s.renderable = true -- set to renderable
)
qwerty1000

ухты! вот это дело!, буду пробовать. спасибо 😃

Flanker_13

Да, интересная темка нарисовалась!😁

Народ, а никто не поможет боковой проекцией ( или схемой) Су-30 ( или модификаций типа Су-30 МК, МКИ). Пробую так сказать “конвертировать” полученный Су-27 в Су-30, хочу горб дорисовать. Естественно полученный результат обещаю выложить в виде GIF файла ( набора шпангоутов) всем на обозрение.

Вот пока что получается. Нашёл более мение понравившееся картинки в сети, обрисовал их. Сравнил, наложил на обрисованный свой Су-27. Лишнее убрал.

Можно и так оставить. Но боюсь геометрия не совсем правельная. На заводские чертежи не притендую, но хотелось бы добиться похожести поболее.

1 и 2 картинка найденные понравившиеся проекции.
3 картинка- наложил друг на друга полученные результаты после обрисовки ( чёрный - с первой картинки, зелёный - со второй, синий - с проекции 3Д модели.(потом сделаю срез, так будет точнее))
4 -картинка - получившийся винигред. Оставил фонарь со 2-й. Подогнал спину к появившемуся горбу… и от чего-то мне этот вариант не нравится 😃)))
Помогите плиз.

qwerty1000
dollop:

Раз пошла такая пьянка 😁, то вот то же самое, только с экспортом в отдельный dxf каждого из сечений:

theClasses = exporterPlugin.classes
meshSelected = teapot() -- object to create contours of
minZ = meshSelected.min.z -- get min and max Z positions
maxZ = meshSelected.max.z
numLevels = 10 -- the number of contours
delta = (maxZ - minZ) / (numLevels + 1) -- the number of steps
for currentZ = minZ to maxZ by delta do -- start loop...
(
s = section pos:[0, 0, currentZ] -- 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"+(currentZ as string)+".dxf") #noPrompt  selectedOnly:true using:theClasses[4]  --export to dxf
s.renderable = true -- set to renderable
)

не силен в этих кодах, но у меня вместо модели чайник появляется 😦

mega_john
qwerty1000:

meshSelected = teapot() – object to create contours of

teapot это и есть чайник, его нужно заменить на свою модель

qwerty1000

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

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]

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

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

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