sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Efficient Code?

    Scheduled Pinned Locked Moved Developers' Forum
    1 Posts 1 Posters 2.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.
    • medeekM Offline
      medeek
      last edited by

      As I'm working on the finishing touches to the Wall Plugin the six panel door geometry is something that keeps coming back to me.

      This type of door geometry is fairly typical so eventually I would like to implement it however it does have a very high polygon count comparatively speaking. I've devised a fairly straightforward piece of code that generates a single panel, see below (cut and paste into the ruby console to view solid geometry):

        group1 = Sketchup.active_model.entities.add_group
          entities = group1.entities
      
      
          new_face1 = entities.add_face [0,0,0], [500,0,0], [500,500,0], [0,500,0]
          new_face1.pushpull 50
      
          pt1 = [100,100,0]
          pt2 = [200,100,0]
          pt3 = [200,200,0]
          pt4 = [100,200,0]
      
          new_face2 = entities.add_face pt1, pt2, pt3, pt4
      
          pt1 = [130,130,0]
          pt2 = [170,130,0]
          pt3 = [170,170,0]
          pt4 = [130,170,0]
      
          new_face2 = entities.add_face pt1, pt2, pt3, pt4
      
          pt1 = [110,110,0]
          pt2 = [190,110,0]
          pt3 = [190,190,0]
          pt4 = [110,190,0]
      
          new_face2 = entities.add_face pt1, pt2, pt3, pt4
      
          line1 = entities.add_line pt1, pt2
          line2 = entities.add_line pt2, pt3
          line3 = entities.add_line pt3, pt4
          line4 = entities.add_line pt4, pt1
      
          entities_to_transform = [line1, line2, line3, line4]
      
          transform = Geom;;Transformation.new([0,0,-5])
          entities.transform_entities(transform, entities_to_transform)
      

      However, my concern is that this block of code will need to be iterated twelve times in order to create the six panels on each side of the door, a lot of computation in order to create this door style. In that light, I would like for this code to be efficient and tight as possible, since the plugin is already quite heavy just in generating simple block geometry (ie. studs, casing, trim etc...).

      Is there a more efficient way to write this block of code?

      Nathaniel P. Wilkerson PE
      Medeek Engineering Inc
      design.medeek.com

      1 Reply Last reply Reply Quote 0
      • 1 / 1
      • First post
        Last post
      Buy SketchPlus
      Buy SUbD
      Buy WrapR
      Buy eBook
      Buy Modelur
      Buy Vertex Tools
      Buy SketchCuisine
      Buy FormFonts

      Advertisement