Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- macroscript MakeRoadOnSurface category: "Generator"
- (
- fn s_filter o = superclassof o == Shape
- fn g_filter o = superclassof o == Geometryclass
- fn find_intersection z_node node_to_z =
- (
- local testRay = ray node_to_z.pos [0,0,-1]
- local nodeMaxZ = z_node.max.z
- testRay.pos.z = nodeMaxZ + 0.0001 * abs nodeMaxZ
- intersectRay z_node testRay
- )
- on isEnabled return selection.count > 0
- on Execute do
- (
- target_shape = pickObject message:"Pick Target Shape:" filter: s_filter
- target_mesh = pickObject message:"Pick Target Surface:" filter:g_filter
- if isValidNode target_mesh then
- (
- undo "MakeRoadOnSurface" on
- (
- sweepMod = sweep()
- modPanel.addModToSelection sweepMod
- sweepMod.shapes[1] = target_shape
- sweepMod.CustomShape = 1
- macros.run "Modifier Stack" "Convert_to_Poly"
- for i in $.verts do
- (
- int_point = find_intersection target_mesh i
- if int_point != undefined then
- (
- if int_point.pos.z > 0 then
- i.pos = int_point.pos + [0,0,10]
- else
- (
- i.pos.z = 0
- )
- )
- )
- )
- )
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement