sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🚨 Skimp | 25% Off until March 30 Buy Now

    Modify highest face

    Scheduled Pinned Locked Moved Developers' Forum
    2 Posts 1 Posters 6.7k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • V Offline
      vico44
      last edited by

      I try to put the highest faces of a selection of groups in a specific layer. It works well if the group is on the origin, but can't find the way to make it work if the group is not on the origin.

      	model = Sketchup.active_model
      	sel = model.selection
      	bbox = Geom::BoundingBox.new
      	sel.each {|grp| 
      					bbox.add(grp.bounds)
      					zgrp_max = bbox.max
      					get_entities(grp).find_all{|e| is_kind(e,"Face") }.each{|fc2|
      						pl2 = fc2.plane
      						if fc2.normal.parallel?( vec3d(0,0,1) ) and ( zgrp_max.on_plane?(pl2))
      				 			fc2.layer = "K-Masque"
      				 			edges = fc2.edges
      				 			edges.each {|edg| edg.layer = "K-Masque"}
      						end					
      			} }
      
      1 Reply Last reply Reply Quote 0
      • V Offline
        vico44
        last edited by

        Ok I find the way, it works with local_bounds

        	model = Sketchup.active_model
        	sel = model.selection
        	bbox = Geom::BoundingBox.new
        	sel.each {|grp| 
        					bbox=grp.local_bounds
        					get_entities(grp).find_all{|e| is_kind(e,"Face") }.each{|fc2|
        						pl2 = fc2.plane
        						if fc2.normal.parallel?( vec3d(0,0,1) ) and ( bbox.max.on_plane?(pl2))
        				 			fc2.layer = "K-Masque"
        				 			edges = fc2.edges
        				 			edges.each {|edg| edg.layer = "K-Masque"}
        						end					
        			} }
        
        1 Reply Last reply Reply Quote 0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better πŸ’—

        Register Login
        • 1 / 1
        • First post
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement