Loading...
 

UVmesh-to-Splinecage(recipe)

Dirty recipe for converting from low-poly legacy UV'd quad meshes into infinity scalable spline-cages with spline-UVs using only Blender and gMax...
-------------

...
-------------


UVs as triangles first, then quadrify?
Sort Elements:Cursor (-999,999,999)
Remove Doubles UVs
scale 256 ()
edit mode (edges) (select all)
clear seam
seams from islands (uv)
python-split-mesh-by-uv-islands (select all)
displace 0.001 (local)
displace 0.005 (diagonal gradient)(UVs)
(?)vertices - separate - by loose parts???
export OBJ (~DXF?) (each individually)
...
-------------


X2 import 1.1a OBJ (preserve quads\/) (each individually)
weld UVs & mesh (0.0)?
save UVWs from triangles
Surface Properties: Unify?/ID/ClearAll/1/AutoSmooth(180)
make sure only 1 MaterialID (UVs in&out)
resize (~5000 units) (x200)(scale 20000.0)
select all elements
push modifier (0.01)0.001

(use polys to select quads, 'Select Poly' modifier)
(quad version to tri version, make mid-edges invisible)

-(copy)+
"Turn To Patch" (copy)
add "Unwrap UVW"?
convert to editable patch
select all edges

-(copy)+
"Turn To Poly" (copy)
add "Unwrap UVW"?
convert to editable poly
UVWs to splines (MAXscript)
select UV mid-edges and "detach" (temp-monkeywork)
save UVWs and rejoice

(load quad and spline UVW file onto new smoothed splinecage)!!!

.
.
.

-------------
...OBJ exporting:-
./ Apply Modifiers
./ Include Edges
./ Smooth Groups
./ Write Normals
./ Include UVs
./ Polygroups

-------------
...DXF exporting:-
Projection: No projection
Export Mesh As: 3DFACEs
Entity Layer: Object data name
Entity Color: Vertex Group
Entity Linetype: CONTINUOUS
Layer Name: Default Name


.
.
.

-------------
https://blender.stackexchange.com/questions/92127/python-split-mesh-by-uv-islandslink-external

import bpy
import bmesh
context = bpy.context
obj = context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)
old_seams = e for e in bm.edges if e.seam
for e in old_seams:
e.seam = False
bpy.ops.uv.seams_from_islands()
seams = e for e in bm.edges if e.seam
bmesh.ops.split_edges(bm, edges=seams)
for e in old_seams:
e.seam = True
bmesh.update_edit_mesh(me)

-------------

.
.
.