sketchucation logo sketchucation
    • Login
    1. Home
    2. crustybaps
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info
    C
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 8
    • Groups 1

    crustybaps

    @crustybaps

    20
    Reputation
    1
    Profile views
    8
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    crustybaps Unfollow Follow
    registered-users

    Latest posts made by crustybaps

    • RE: Transformation.rotation multiple copy

      Yes I think it is a simpler way to draw the profile and pushpull, but once I started along the path of rotation I was getting some unusual things happening and I wanted to know what was going on.
      I'm on a learning curve with transformations so I will be looking into all the points highlighted here.
      I want to be able to define the number of teeth on each wheel and the diameter of the wheel. There will be eight wheels in all- I am modelling the back sprocket of a bicycle wheel and would like the script to ask how many wheels on the sprocket? What are their diameters? and what is the separation between each wheel.
      If I were to go along the route suggested by Dan I would have eight separate pushpulls of the axial profiles but this still would probably less error prone and much simpler.

      posted in Developers' Forum
      C
      crustybaps
    • RE: Transformation.rotation multiple copy

      Thanks I'll take a look.
      What I have so far is below which seems to have done the job. Theres still a lot of dots to fill in yet as far as connecting the teeth and forming the correct profile for the teeth, but this is a good start. Thanks for all the help

      for i in 1..n_teeth

      #create the transformation object
      t=Geom::Transformation.rotation [0,0,0],[0,1,0], theta
      points = face.outer_loop.vertices.map! { |v| v.position.transform( t ) }
      new_face = ents.add_face( points )
      new_face.material='green'
      new_face.pushpull 2
      ents.add_face pts
      theta=theta+angle.degrees

      end

      posted in Developers' Forum
      C
      crustybaps
    • RE: Transformation.rotation multiple copy

      Does this mean that I put the 3d points into an array and then perform the transformation on the array?

      There are no holes in the face yet I will try that excercise next but for now I will try to get the angle correct. My angle in radians is 36 degrees and I am trying to create a gear wheel with ten teeth. The code below works to a certain degree but I am getting 5 copies only instead of the nine I was expecting. Its an improvement on my previous attempts.

      for i in 1..10
      #create the transformation object
      t=Geom::Transformation.rotation [0,0,0],[0,1,0], theta
      #transform the face
      ents.transform_entities t, face
      #add the face back to its original position for another transformation
      face=ents.add_face pts
      #increase the angle of rotation by another 36 degrees
      theta=theta+theta
      end

      posted in Developers' Forum
      C
      crustybaps
    • Transformation.rotation multiple copy

      I am wanting to know how may I use the code in a loop to create multiple copies of face.

      t=Geom::Transformation.rotation [0,0,0],[0,1,0], theta
      ents.transform_entities t, face

      posted in Developers' Forum
      C
      crustybaps
    • RE: Assign a material in the ruby console

      Thanks that worked really well.

      posted in Newbie Forum
      C
      crustybaps
    • Assign a material in the ruby console

      I have tried to add a material to some of the faces in my model and I get the error material [Brick_Antique]" not found. Could someone show me the correct way to assign a material to a face
      for i in 1..10 faces[i].material= "[Brick_Antique]"

      posted in Newbie Forum sketchup
      C
      crustybaps
    • RE: Help needed with intersecting geometry

      Thanks for the tips. Are there any tools you could recomend off hand or what terms I should search for add/subtract. I don't have pro version yet.

      posted in Developers' Forum
      C
      crustybaps
    • Help needed with intersecting geometry

      HI This is my first post. Im writing a script which i hope will be able to create mortice and tennon geometry for woodworking enthusiasts. I've been trying to figure out how to get rid of the excess faces which are showing in the model. I was expecting the mortice slot to cut through the wood without leaving any other faces. I'm begining to realise that this is quite a complex task and probably not best suited for a beginner but if any one could pointme in the right direction I would appreciate it. Even if it's only to suggest what stuff I should study first to be able to get to the level I am wanting to be at with this project. I am including the code below

      <span class="syntaxdefault">mod&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model&nbsp;</span><span class="syntaxcomment">#&nbsp;Open&nbsp;model<br /></span><span class="syntaxdefault">ents&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities&nbsp;</span><span class="syntaxcomment">#&nbsp;All&nbsp;entities&nbsp;in&nbsp;model<br /></span><span class="syntaxdefault">sel&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">selection&nbsp;</span><span class="syntaxcomment">#&nbsp;Current&nbsp;selectio<br /><br />#define&nbsp;constants<br /></span><span class="syntaxdefault">ORIGIN</span><span class="syntaxkeyword">=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">THICKNESS</span><span class="syntaxkeyword">=(</span><span class="syntaxdefault">25.4</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">1.75</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_i</span><span class="syntaxcomment">#&nbsp;1&nbsp;3/4"<br /></span><span class="syntaxdefault">BOTTOMGAP</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">51<br />REBATE</span><span class="syntaxkeyword">=(</span><span class="syntaxdefault">THICKNESS&nbsp;</span><span class="syntaxkeyword">/&nbsp;</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_i<br />MORTICETHICKNESS&nbsp;</span><span class="syntaxkeyword">=&nbsp;(</span><span class="syntaxdefault">THICKNESS&nbsp;</span><span class="syntaxkeyword">/&nbsp;</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_i&nbsp;&nbsp;&nbsp;&nbsp;<br />LEN</span><span class="syntaxkeyword">=(</span><span class="syntaxdefault">4.5</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">25.4</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">to_i&nbsp;</span><span class="syntaxcomment">#4&nbsp;1/2"<br /></span><span class="syntaxdefault">HEIGHT</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">188&nbsp;</span><span class="syntaxcomment">#6ft<br /></span><span class="syntaxdefault">SPACER</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">20<br /><br /></span><span class="syntaxcomment">#define&nbsp;the&nbsp;main&nbsp;face&nbsp;corners<br /></span><span class="syntaxdefault">pts</span><span class="syntaxkeyword">=[]<br /></span><span class="syntaxdefault">pts</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">THICKNESS</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">THICKNESS</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxcomment">#draw&nbsp;the&nbsp;face<br /></span><span class="syntaxdefault">bottomFace</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">pts<br />bottom</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;pts<br /></span><span class="syntaxcomment">#extrude&nbsp;to&nbsp;Length<br /></span><span class="syntaxdefault">bottom</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">!().</span><span class="syntaxdefault">pushpull&nbsp;HEIGHT<br /><br /></span><span class="syntaxcomment">#create&nbsp;the&nbsp;rebate<br /></span><span class="syntaxdefault">pts1</span><span class="syntaxkeyword">=[]<br /></span><span class="syntaxdefault">pts1</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">ORIGIN<br />pts1</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">SPACER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts1</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">SPACER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">SPACER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts1</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">SPACER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">rebateFace</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;pts1<br />rebateFace</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">!().</span><span class="syntaxdefault">pushpull&nbsp;HEIGHT<br /><br /></span><span class="syntaxcomment">#define&nbsp;the&nbsp;bottom&nbsp;mortice&nbsp;slot&nbsp;corners<br /></span><span class="syntaxdefault">pts2</span><span class="syntaxkeyword">=[]<br /></span><span class="syntaxdefault">pts2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">MORTICETHICKNESS</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">BOTTOMGAP</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">MORTICETHICKNESS</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">BOTTOMGAP</span><span class="syntaxkeyword">]&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span class="syntaxdefault">pts2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">MORTICETHICKNESS</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">BOTTOMGAP&nbsp;</span><span class="syntaxkeyword">+&nbsp;</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">pts2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]=[</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">MORTICETHICKNESS</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">BOTTOMGAP&nbsp;</span><span class="syntaxkeyword">+&nbsp;</span><span class="syntaxdefault">LEN</span><span class="syntaxkeyword">]<br /></span><span class="syntaxcomment">#extrude&nbsp;the&nbsp;bottom&nbsp;mortice&nbsp;slot<br />#i&nbsp;would&nbsp;like&nbsp;this&nbsp;slot&nbsp;to&nbsp;cut&nbsp;through&nbsp;and&nbsp;subtract&nbsp;from&nbsp;the&nbsp;existing&nbsp;geometry<br /></span><span class="syntaxdefault">firstMorticeFace</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">pts2<br />firstMortice</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;pts2<br />firstMortice</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">!().</span><span class="syntaxdefault">pushpull&nbsp;LEN</span>
      
      posted in Developers' Forum
      C
      crustybaps