Utilizar esse script para ocultar todas as bordas indesejadas de modelos importados, normalmente modelos Revit carregados no 3ds Max usando o FBX.
As bordas visíveis são linhas ocultas que normalmente são invisíveis no 3ds Max. O problema geralmente ocorre com modelos do Revit porque tudo exportado do Revit é triangulado. Isso faz com que as bordas que o 3ds Max normalmente ocultaria se tornem visíveis.
Você pode reconhecer uma borda visível, por exemplo, se tiver uma parede no Revit que somente deve ser representada no 3ds Max com quatro bordas que são os quatro lados da parede. Em vez disso, o 3ds Max exibe o triângulo do meio que conecta os dois vértices de canto. Essa triângulo do meio normalmente é oculto.
O seguinte script lê todas as bordas e determina quais podem ser ocultas avaliando se elas estão perto de alguma borda vizinha. Ocultar essas bordas não desejadas torna muito mais fácil ver o modelo.
Para usar esse script:
Você também pode salvar esse script no 3ds Max e arrastar e soltar o arquivo .ms no viewport enquanto os objetos são selecionados.
( -- do this in a local scope so I don't pollute the global scope. function setVisibilityEdges obj = ( local edgeSelSet = #() -- Go through all faces local numFaces = obj.numfaces for faceIndex = 1 to numFaces do ( -- And for every one of the 3 edges for edgeIndex = 1 to 3 do ( --collect the edge append edgeSelSet ( ((faceIndex-1)*3) + edgeIndex ) ) ) -- Select all visible edges meshop.autoedge obj edgeSelSet 5 type:#setclear ) --============================================== -- Start of the runtime script --============================================== local timestart = timestamp() -- turn off undo during this operation. with undo off ( local editMeshArray = #() for obj in Selection do ( if (classof obj == Editable_Mesh) do ( -- collect all the edit meshes first, because the -- user could have selected some helper objects too, which we -- don't want to process. append editMeshArray obj ) ) -- we don't need to hold the selection anymore, clear it out. clearselection() -- Array of object handles that have already had their edges hidden local allReadyProcessed = #() -- iterate through all selected edit meshes... for editMeshobj in editMeshArray do ( local found = (FindItem allReadyProcessed editMeshobj.handle) > 0 if (not found) then ( setVisibilityEdges editMeshobj append allReadyProcessed editMeshobj.handle -- Mark all the instances as processed too! InstanceMgr.GetInstances editMeshobj &repeatArray if (repeatArray.count > 0) then ( -- mark them as processed by adding their handle to the array for repeat in repeatArray do ( append allReadyProcessed repeat.handle ) ) ) ) ) redrawviews() local timeend = timestamp() format "Total time: % (seconds)\n" ((timeend - timestart)/1000.0))