sketchucation logo sketchucation
    • Login
    1. Home
    2. Chris Fullmer
    3. Topics
    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!
    Urasik Extensions | Lots of new extensions to check out Learn More
    Offline
    • Profile
    • Following 0
    • Followers 1
    • Topics 178
    • Posts 6,257
    • Groups 2

    Topics

    • Chris FullmerC

      [Plugin] Exploded Arc Centerpoint Finder UPDATE May 23, 2013

      Watching Ignoring Scheduled Pinned Locked Moved Plugins
      59
      0 Votes
      59 Posts
      68k Views
      TIGT
      What makes you think it's not v8 compatible ? The previous post explained how to install it in v8 - but you do need the latest v8 version with the Preferences > Extensions > Install... button. If you don't have that, then get the latest v8 installer from here: http://help.sketchup.com/en/article/60107 Note how version 8 will no longer be supported after 20 May 2015, so keep a copy of the downloaded installer !
    • Chris FullmerC

      Me and my Guitar

      Watching Ignoring Scheduled Pinned Locked Moved Corner Bar
      20
      0 Votes
      20 Posts
      2k Views
      pilouP
      Very cool Michael Franti jam concert! (&Jeff )
    • Chris FullmerC

      Making a SketchUp tool - incorporating the mouse & keyboard

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      55
      0 Votes
      55 Posts
      4k Views
      Chris FullmerC
      Here is your code how I tweaked it. I think all I did was move the if @thing == 0 to the bottom and then changed all the sets back to arrays and then made the @vert array uniq!. SO look this over and compare it to yours. See if that helps. require "sketchup.rb" class Pinchmover def activate @model = Sketchup.active_model @ent = @model.entities @view = @model.active_view @slct = @model.selection @slct.clear @vect = [] @verts = [] @dvert = [] @thing = 0 end def onLButtonUp(flags, x, y, view) if @thing == 1 vec=[] ip2 = view.inputpoint x,y pt3 = ip2.position pt4 = Geom;;Point3d.new pt3 @cpoint2 = @ent.add_cpoint pt4 prompts = ["Radius="] defaults = [ 0.0.to_l] list = [""] results = UI.inputbox prompts, defaults, list, "Please input desired radius." @rad= results[0].to_l @ent.each do |e| if e.typename == "Edge" @verts << e.start @verts << e.end end end @verts.uniq! @verts.each do |v| dist = v.position.distance @cpoint.position if dist < @rad @dvert << v end end @dvert.each do |d| # Doesn't seem to work. vec = @cpoint.position.vector_to @cpoint2.position @vect << vec end Sketchup.active_model.entities.transform_by_vectors @dvert, @vect @thing = 2 end if @thing == 0 ip1 = view.inputpoint x,y pt1 = ip1.position pt2 = Geom;;Point3d.new pt1 @cpoint = @ent.add_cpoint pt2 @thing = 1 end end end Sketchup.active_model.select_tool Pinchmover.new Chris
    • Chris FullmerC

      Beginning Ruby Tutorial

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      16
      0 Votes
      16 Posts
      1k Views
      Al HartA
      Chris, Thanks for making a ruby tutorial. Its always inspiring to look at someone else's code. Here is a version which use a hash instead of arrays to count all entities types; def count_entities model = Sketchup.active_model entities = model.entities count = {} # start a new hash entities.each do |e| stype = e.typename # start new count, or add 1 to existing count count[stype] = count[stype] ? count[stype] + 1 ; 1 end#loop sorted_keys = count.keys.sort sorted_keys.each do |key| printf("Total %-12s; %5d\n", key, count[key]) end#loop return nil end#def The weird line: count[stype] = count[stype] ? count[stype] + 1 : 1 would be easier to read as if (count[stype]) count[stype] = count[stype] + 1 else count[stype] = 1 end#if Keep up the good work
    • Chris FullmerC

      Sketchup.active_model.entities.is_a?????

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      7
      0 Votes
      7 Posts
      1k Views
      J
      @al hart said: Entities is a Class internal to SketchUp which acts like an array. You can convert it to an actual array with the .to_a operator. But it is a lot more than that. The Array behavior is secondary to its primary purpose of adding and containing a Model's visual elements.
    • Chris FullmerC

      Do you think SCF is international?

      Watching Ignoring Scheduled Pinned Locked Moved Corner Bar
      18
      0 Votes
      18 Posts
      1k Views
      Chris FullmerC
      Glad you made it out of the AIA Alan. I hope you make it home all right! Yeah, we need another international SCF get together.....maybe next year I guess?
    • Chris FullmerC

      [Plugin] Center on Origin UPDATE May 23, 2013

      Watching Ignoring Scheduled Pinned Locked Moved Plugins
      35
      0 Votes
      35 Posts
      46k Views
      T
      Hi Chris, Tried to enter the patch script at the start of this thread, but the the ruby script is different than what you quoted: And here's another option. If you want it to reset the component rotation and scale, edit the ruby file in a plain text editor (like Notepad for example) and after the line: if comp.typename == "Group" || comp.typename == "ComponentInstance" add the two following lines: t = Geom::Transformation.new comp.transformation = t This is it now: sela.each do |e| if e.is_a?(Sketchup::Group) || e.is_a?(Sketchup::ComponentInstance) to_move << e end ... I need to zero out the components rotation/scale What's your thoughts? Terry
    • Chris FullmerC

      Internet over the TV w/remote keyboard is lame!

      Watching Ignoring Scheduled Pinned Locked Moved Corner Bar
      10
      0 Votes
      10 Posts
      609 Views
      P
      Chris I've had my gallbladder removed also. After several gallstone attacks I was more than ready. Gallstone attacks are nasty painful events. With Lapriscopic surgery you can be back to normal in only a few days. Do your best to avoid taking the drugs they are addictive and morphine will make you constipated. Plus I think mentally you get better faster if you just buck up and bear with the pain of surgery. I was back to work the day after my surgery.
    • Chris FullmerC

      [Plugin] Shape Bender Beta

      Watching Ignoring Scheduled Pinned Locked Moved Plugins
      1k
      0 Votes
      1k Posts
      2m Views
      TIGT
      When you say 'not accepting it on download' it is unclear. Have you installed it using the Extensions > Extension Manager ? If so restart SketchUp and it should appear in the Toolbars list and under the Extensions submenu 'Chris Fullmer Tools'. It is an older extension and is unsigned. This means that SketchUp will not load it unless the Extension Manager's Loading Policy is set to 'Unrestricted'. After resetting that you need to restart SketchUp to sync everything...
    • Chris FullmerC

      Umm, Google?

      Watching Ignoring Scheduled Pinned Locked Moved Corner Bar
      5
      0 Votes
      5 Posts
      445 Views
      Chris FullmerC
      Ooh, nice website. It was definitaely just me (well, the entire building). Google and Yahoo were blocked. Then after a couple of hours, all internet access was dead. Thanks everyone, Chris
    • Chris FullmerC

      Keep a tool running in the background?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      13
      0 Votes
      13 Posts
      893 Views
      fredo6F
      no clue. Never tried actually, but I guess it should help. So you should try it both ways to see what happens. I use myself another technique to cascade tools, because I need more control. Fredo
    • Chris FullmerC

      Quirky draw method activity

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      10
      0 Votes
      10 Posts
      655 Views
      Chris FullmerC
      EDIT: Issue resolved in the 2 posts below this. Skip this post unless you're really interested in boring yourself to death. OK, its morning and I'm back! @line_positions is an array of points on the x axis. Each point acts as the base starting point for each vertical grid line. So first the method checks to see if @line_positions has been populated yet. If it has, then it takes each value from that array and calls it p1 and then adds an amount to the y of 100 and calls that p1, then draws the line from p1 (the base) to p2, the top of the vertical line. The 5.times do portion is drawing the horizontal lines by taking the first and last points on the horizontal boundaries. Then adds 20 to each and draws a line. Does that 5 times, and those are the horizontal grid lines. To explain better, @line_positions is defined once when the user hits enter. Its values do not change at all normally. To test this, I added a puts @line_positions[0] statement in my onKeyUp method. So everytime I press a key, it puts the first @line_positions position. And sure enough, when I disable the draw method, that value stays the same. But once I enable the draw method, that value changes everytime the screen is redrawn. So it appears that somehow something that I have in the draw method is changing the @line_positions, not just getting values from it. More specifically, when I comment out the 5.times portion (which is the part that draws the horizontal grids), then the method works as expected and does not change my @line_positions values. So I think it is something with how I have that written, but I can't see anything in there that should affect the @line_positions values. def draw( view ) if !@line_positions.empty? @line_positions.each do |e| p1 = e p2 = p1.clone p2[1] += 100 view.draw GL_LINES, p1, p2 end np1 = @line_positions[0] np2 = @line_positions.last puts "from draw " + @line_positions[0].y.to_f.to_s #5.times do # np1[1] = np1[1] + 20 # np2[1] = np2[1] + 20 # view.draw GL_LINES, np1, np2 #end end end All I can think is that is it possible that it thinks that since np1 points to @line_positions[0] when I change np1 it thinks I want the original @line_positions[0] value changed too and somehow sends the change back to that array? I'm a bit stumped with this one.... Chris
    • Chris FullmerC

      Shape Bender - preview

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      55
      0 Votes
      55 Posts
      8k Views
      Chris FullmerC
      Hi Hasan.
    • Chris FullmerC

      Transforming multiple vertices simultaneously?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      15
      0 Votes
      15 Posts
      788 Views
      J
      Normally yes, but he wants to apply a different transformation to each vertex.
    • Chris FullmerC

      True/false toggle?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      3
      0 Votes
      3 Posts
      279 Views
      Chris FullmerC
      Aha! That does precisely what I was hoping for! Thanks Fredo, Chris
    • Chris FullmerC

      D = c.uniq - wrong syntax or a bug?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      7
      0 Votes
      7 Posts
      420 Views
      Chris FullmerC
      @jim said: Hehe, I used the variable 'd' for the dialog and then it got redefined in the webdialog. It's fixed: http://sketchuptips.blogspot.com/2007/08/plugin-webconsolerb.html Ahh, I hadn't considered a glitch in the webconsole - it was worked so incredibly well this whole time. Thanks for looking at it and getting a fix out there so fast! @Thom, yeah I thought the execute script was an odd error, so I thought maybe Google had messed up the .uniq method or something on their end. Glad its all up and working now, thanks Jim! Chris
    • Chris FullmerC

      [Plugin] Label Open Faces 1.1 UPDATE May 23, 2013

      Watching Ignoring Scheduled Pinned Locked Moved Plugins
      6
      0 Votes
      6 Posts
      14k Views
      Chris FullmerC
      @su30 said: Many thanks Chris, I think it will be an evolution that we move on from finding stray lines to finding open faces! I think people who are making .stl files need to make their model watertight. So quickly finding all open faces might be useful for them. I had run into a problem with the drape command due to little faces not being created, so I wrote this script to find the little missing faces. So its useful for specialized purposes. And chech out TIG's script, that goes above and beyond my little labeler, helping to automoate the mesh cleaning process. Very handy TIG, thanks for the link! Chris
    • Chris FullmerC

      Vector comparison - positive or negative maybe?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      5
      0 Votes
      5 Posts
      367 Views
      Chris FullmerC
      Hey!, that is what you meant. And it is in fact returning a parallel vector. I'll write it into my code and see if .samedirection? is enough to help me decide whether to rotate with a negative or positive value. Thanks! Chris
    • Chris FullmerC

      FaceMe Components have extra large BoundingBox?

      Watching Ignoring Scheduled Pinned Locked Moved Developers' Forum
      9
      0 Votes
      9 Posts
      629 Views
      AdamBA
      Mea culpa AABB = Axis aligned Bounding box (blue box) OBB = Oriented Bounding box (red box) [image: 5gTb_SketchUpScreenSnapz035.png]
    • Chris FullmerC

      [Plugin] Scale and Rotate Multiple (UPDATED Dec 22, 09)

      Watching Ignoring Scheduled Pinned Locked Moved Plugins
      123
      0 Votes
      123 Posts
      203k Views
      Dave RD
      @keithswd said: but now with SU 2022 it seems to be causing SU to crash on startup. Hmmm.... I just installed it in SketchUp 2022 and gave it a try. Didn't affect startup and it works as expected.
    • 1 / 1