Por que as bordas estão visíveis em Meus modelos?

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.

Nota: Esse problema de borda visível ocorre se você exportar do Revit 2010 e de versões anteriores. Esse problema foi solucionado no Revit 2011, portanto, a partir dessa versão, os objetos são exportados com informações de borda oculta.

O que são bordas 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.

Utilizar esse script para ocultar todas as bordas indesejadas dos modelos importados, normalmente de modelos do Revit 2010 e de versões anteriores carregados no 3ds Max usando o FBX. O script lerá todas as bordas e determinará quais podem ser ocultas avaliando se elas estão ao lado de alguma borda vizinha. Ocultar essas bordas não desejadas torna muito mais fácil ver o modelo.

Para usar esse script:

  1. Selecione todos os objetos na cena.
  2. Selecione o MAXScript Novo Script no menu principal do 3ds Max.
  3. Copie e cole o script abaixo na caixa de diálogo.
  4. Pressione CTRL-E para avaliar todas e executar o 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.

Nota: Esse script funciona somente para editar malhas e ignora polígonos editáveis, correções ou outras entidades.
(
	-- 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))