Здравствуйте.
Совсем недавно начал изучать MAXScript и возник вопрос связанный с командой obj.EditablePoly.chamferEdges. В ней указывается величина, на которую делается фаска, но как сделать число сегментов самой фаски?
Смотрел через Макро рекодер, но хотелось бы узнать может есть вариант попроще и покороче в написании кода?
PS: Может быть кто-нибудь знает статьи или литературу по создании геометрии (сложной геометрии) при помощи MAXScript?
возник вопрос связанный с командой obj.EditablePoly.chamferEdges. В ней указывается величина, на которую делается фаска, но как сделать число сегментов самой фаски?
Объект EditablePoly имеет свойство edgeChamferSegments, которое обозначает число сегментов самой фаски. Сначала нужно установить число сегментов самой фаски, а потом сделать chamferEdges.
Пример: Число сегментов самой фаски=3
На данную статью натыкался, но при ее использовании получал ошибку от макса:
"Unknown property: "edgeChamferSegments" in <MixinInterface:EditablePoly>"
Прикреплю код, может быть я где-нибудь сильно перемудрил
max select all
max delete
clearlistener()
arrSpline = #()
arrAttach = #()
widthSpline
newObj
newSplineObj
fn createSpline = (
for i = 1 to 10 do (
objSpline = Rectangle name:(uniquename("stepSpline_")) wirecolor: black material: meditMaterials[1]
if i == 1 then objSpline.pos = [0, 0, 0]
else objSpline.pos = [0, objSpline.length * (i - 1), 0]
lenghtSpline = objSpline.length
widthSpline = objSpline.width
append arrSpline objSpline
)
)
fn createFirstBox = (
newSplineObj = copy arrSpline[1]
addModifier newSplineObj (Extrude amount: 5 segments: 2)
convertToPoly newSplineObj
newSplineObj.edges[#centerEdge] = #(3, 7, 10, 12)
move newSplineObj.edges[#centerEdge] [ 0, 0, (5 / 2) - 0.5 ]
polyop.setFaceSelection newSplineObj #{6, 8}
newSplineObj.extrudeFaces 0.5
polyop.setFaceSelection newSplineObj #{7, 12, 18}
newSplineObj.extrudeFaces 0.5
polyop.setEdgeSelection newSplineObj #{40..42}
newSplineObj.EditablePoly.edgeChamferSegments=3
newSplineObj.EditablePoly.chamferEdges 0.40
newSplineObj.wirecolor = color 0 0 0
newSplineObj.material = meditMaterials[1]
)
createSpline()
createFirstBox()
for i = 1 to arrSpline.count do (
newObj = copy newSplineObj
move newObj.edges[8] [0, 0, -3]
move newObj [0,lenghtSpline * i,3 * i]
append arrAttach newObj
)
for i = 1 to arrAttach.count do polyop.attach newSplineObj arrAttach[i]
max views redraw
На данную статью натыкался, но при ее использовании получал ошибку от макса:
"Unknown property: "edgeChamferSegments" in <MixinInterface:EditablePoly>"
У меня нет возможности проверить. Пишем тогда так:
И можно еще вопросик. В данном скрипте создается экструдом бокс с ребрами по центру высоты. Вот и хочется узнать, есть ли в макс скрипте способ их определять и выделять автоматически, без введения в скрипт ручных значений? Пример даже с изменением этих самых количеств ребер приведет уже к неудачным результатам скрипта.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Александр Боровских
Совсем недавно начал изучать MAXScript и возник вопрос связанный с командой obj.EditablePoly.chamferEdges. В ней указывается величина, на которую делается фаска, но как сделать число сегментов самой фаски?
Смотрел через Макро рекодер, но хотелось бы узнать может есть вариант попроще и покороче в написании кода?
PS: Может быть кто-нибудь знает статьи или литературу по создании геометрии (сложной геометрии) при помощи MAXScript?
igorznag
Пример: Число сегментов самой фаски=3
Александр Боровских
"Unknown property: "edgeChamferSegments" in <MixinInterface:EditablePoly>"
Прикреплю код, может быть я где-нибудь сильно перемудрил
max select all max delete clearlistener() arrSpline = #() arrAttach = #() widthSpline newObj newSplineObj fn createSpline = ( for i = 1 to 10 do ( objSpline = Rectangle name:(uniquename("stepSpline_")) wirecolor: black material: meditMaterials[1] if i == 1 then objSpline.pos = [0, 0, 0] else objSpline.pos = [0, objSpline.length * (i - 1), 0] lenghtSpline = objSpline.length widthSpline = objSpline.width append arrSpline objSpline ) ) fn createFirstBox = ( newSplineObj = copy arrSpline[1] addModifier newSplineObj (Extrude amount: 5 segments: 2) convertToPoly newSplineObj newSplineObj.edges[#centerEdge] = #(3, 7, 10, 12) move newSplineObj.edges[#centerEdge] [ 0, 0, (5 / 2) - 0.5 ] polyop.setFaceSelection newSplineObj #{6, 8} newSplineObj.extrudeFaces 0.5 polyop.setFaceSelection newSplineObj #{7, 12, 18} newSplineObj.extrudeFaces 0.5 polyop.setEdgeSelection newSplineObj #{40..42} newSplineObj.EditablePoly.edgeChamferSegments=3 newSplineObj.EditablePoly.chamferEdges 0.40 newSplineObj.wirecolor = color 0 0 0 newSplineObj.material = meditMaterials[1] ) createSpline() createFirstBox() for i = 1 to arrSpline.count do ( newObj = copy newSplineObj move newObj.edges[8] [0, 0, -3] move newObj [0,lenghtSpline * i,3 * i] append arrAttach newObj ) for i = 1 to arrAttach.count do polyop.attach newSplineObj arrAttach[i] max views redrawigorznag
Владислав Бодюл
max select all max delete clearlistener() arrSpline = #() arrAttach = #() widthSpline newObj newSplineObj lenghtSpline fn createSpline = ( for i = 1 to 10 do ( objSpline = Rectangle name:(uniquename("stepSpline_")) wirecolor: black material: meditMaterials[1] if i == 1 then objSpline.pos = [0, 0, 0] else objSpline.pos = [0, objSpline.length * (i - 1), 0] lenghtSpline = objSpline.length widthSpline = objSpline.width append arrSpline objSpline ) ) fn createFirstBox = ( newSplineObj = copy arrSpline[1] addModifier newSplineObj (Extrude amount: 5 segments: 2) convertToPoly newSplineObj newSplineObj.edges[#centerEdge] = #(3, 7, 10, 12) move newSplineObj.edges[#centerEdge] [ 0, 0, (5 / 2) - 0.5 ] polyop.setFaceSelection newSplineObj #{6, 8} newSplineObj.extrudeFaces 0.5 polyop.setFaceSelection newSplineObj #{7, 12, 18} newSplineObj.extrudeFaces 0.5 polyop.setEdgeSelection newSplineObj #{40..42} newSplineObj.baseObject.edgeChamferSegments=3 newSplineObj.EditablePoly.chamferEdges 0.40 newSplineObj.wirecolor = color 0 0 0 newSplineObj.material = meditMaterials[1] ) createSpline() createFirstBox() for i = 1 to arrSpline.count do ( newObj = copy newSplineObj move newObj.edges[8] [0, 0, -3] move newObj [0,lenghtSpline * i,3 * i] append arrAttach newObj ) for i = 1 to arrAttach.count do polyop.attach newSplineObj arrAttach[i] max views redrawВладислав Бодюл
пишем
и переменную lenghtSpline нужно было в самом начале написать.
Александр Боровских
Все заработало.
И можно еще вопросик. В данном скрипте создается экструдом бокс с ребрами по центру высоты. Вот и хочется узнать, есть ли в макс скрипте способ их определять и выделять автоматически, без введения в скрипт ручных значений? Пример даже с изменением этих самых количеств ребер приведет уже к неудачным результатам скрипта.