Advertisement
ToastyStoemp

Untitled

Nov 7th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. macroscript MakeRoadOnSurface category: "Generator"
  2. (
  3. fn s_filter o = superclassof o == Shape
  4. fn g_filter o = superclassof o == Geometryclass
  5. fn find_intersection z_node node_to_z =
  6. (
  7. local testRay = ray node_to_z.pos [0,0,-1]
  8. local nodeMaxZ = z_node.max.z
  9. testRay.pos.z = nodeMaxZ + 0.0001 * abs nodeMaxZ
  10. intersectRay z_node testRay
  11. )
  12. on isEnabled return selection.count > 0
  13. on Execute do
  14. (
  15. target_shape = pickObject message:"Pick Target Shape:" filter: s_filter
  16. target_mesh = pickObject message:"Pick Target Surface:" filter:g_filter
  17. if isValidNode target_mesh then
  18. (
  19. undo "MakeRoadOnSurface" on
  20. (
  21. sweepMod = sweep()
  22. modPanel.addModToSelection sweepMod
  23. sweepMod.shapes[1] = target_shape
  24. sweepMod.CustomShape = 1
  25. macros.run "Modifier Stack" "Convert_to_Poly"
  26. for i in $.verts do
  27. (
  28. int_point = find_intersection target_mesh i
  29. if int_point != undefined then
  30. (
  31. if int_point.pos.z > 0 then
  32. i.pos = int_point.pos + [0,0,10]
  33. else
  34. (
  35. i.pos.z = 0
  36. )
  37. )
  38. )
  39. )
  40. )
  41. )
  42. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement