🛣️ Road Profile Builder | Generate roads, curbs and pavements easily Download
  • [Plugin][$] LoopLab

    9
    0 Votes
    9 Posts
    1k Views
    Rich O BrienR
    For ideas of where to take this tool I would look at Blender's Loop Tools. Having this in SketchUp with support for QFT would be a good toolset.
  • Jitter and Merge plugins

    7
    0 Votes
    7 Posts
    2k Views
    E
    Also it would be nice to have possibility of choosing only one specified axis in Jitter.
  • [REQ] Convert ALL components to groups?

    26
    0 Votes
    26 Posts
    6k Views
    sdmitchS
    @paguthrie said: 10 Years later... this script almost does exactly what I need, but as Antiever pointed out it just does one from a selection. Anyone know how to fix this behaviour? Hopefully Matt666 wont mind me editing his plugin. Tested in SU2017 in model with and without selections. C2G.rb
  • [REQ] DL-Light or similar daylight calculation plugin

    2
    0 Votes
    2 Posts
    916 Views
    Rich O BrienR
    Doesn't the default LightUp extension offer daylight analysis tools? Not to the same degree as LightUp Analytics did but I know it has lux contours and other features.
  • Plugin request for 3D Laser "Leica Disto S910 "

    10
    0 Votes
    10 Posts
    6k Views
    R
    Good afternoon, I have been working with a Leica Disto D510 Laser Trena for more than 7 years, carrying out bulk measurements. Do I need to know if there is any way to import Trena measurements straight to SketchUp, where I would already design these Angle and Tilt measurements? I currently use the Leica Transfer App to download measurements to an Excel spreadsheet, but I do not know how to import it into SketchUp. I read about the YUZU Plugin that does this work, but I can not find a download link anymore. If they can help thank you from the moment!
  • Sketchup 2018 Load Errors

    2
    0 Votes
    2 Posts
    1k Views
    TIGT
    This is a known issue, caused by an incorrect installation. Do a clean install of SketchUp. Ensure that its folder in the AppData path is deleted [path given in the error messages]. You may wish to temporarily move out personal collections like Materials, Components etc. I'd delete the whole Plugins folder and later on reinstall my Extensions from scratch. The fresh install of SketchUp that we are about to do will recreate missing folders etc with proper permissions set... Here's the only correct way to install a complex application like SketchUp from its installer exe file, very important in the recent versions of Windows... Do the clean uninstall of SketchUp as outlined above... Logged in as your normal user account. Find the SketchUp installer exe file - probably in your Downloads folder ? Select its icon. Right-click > Context-menu > "Run as administrator" Install it... Test it... If necessary move back your personal collections... There is no other good way to install it from its exe file. Do not do it whilst logged in as the separate administrator account. f you have admin rights on your normal user account it is NOT the same thing to double-click the exe icon to Run the installer - it must be done using the "Run as administrator" option, which is subtly different. An incorrect installation can result in many weird and unpredictable issues, from permission problems preventing some random things loading, to shortcuts failing to be remembered across sessions. A proper installation should avoid these problems...
  • [REQ] component reconciliation

    3
    0 Votes
    3 Posts
    1k Views
    G
    @solo said: I have a model imported from vectorworks, it has a gazillion of the same component but they are all individual components so editing one does not edit all, I need to somehow make them all the same component, is there a plugin already that does this? if all components are to be replaced by one unique component, you can use sketchup native tool: introduce the unique component you want to keep in the model, if it is not already select all the components you want to replace open the palette to show all the components in the model (clic on the house) right clic on the one you want to keep clic on "replace selected components by this one..." [image: 23Ul_2018-03-1710_56_41-Sanstitre-SketchUpPro2017.png] all selected components are replaced by the one you chose [image: NQPH_2018-03-1710_57_05-Sanstitre-SketchUpPro2017.png] it is not automatic, but visual check is sufficient and more accurate in some cases
  • Medeek Structural Plugin

    9
    0 Votes
    9 Posts
    2k Views
    medeekM
    It's not much to look at but this is the beginning of the Medeek Structural Plugin: [image: ozJy_Structural-test1.jpg] The red panels on the wall indicate shear wall panels.
  • [Plugin] Grow

    45
    0 Votes
    45 Posts
    67k Views
    TIGT
    Make sure that your axes are reset to the default model-axes [right-click on an axis and choose reset if available]. It'd be sensible to locate the objects you want to 'grow' around the model's origin, then when prompted just snap to the origin [where the axes meet]. The XYZ [RGB] axes are what's used by the tool. Also ensure that unit-snapping is OFF in Model Info > Units.
  • [Plugin] Texture Resizer (1.5.6) — updated 15.05.2013

    104
    0 Votes
    104 Posts
    98k Views
    C
    Extentions Store still has v.1.5.5, which does not work on SU2018 To work on SU2018, install extension from this post You will need imagemagick. During installation, select "Install legacy tools" to obtain convert.exe, which is used by this extension.
  • [Plugin] Add Layer [1.1.0]

    58
    0 Votes
    58 Posts
    13k Views
    S
    Hi all, I too have been on the search for Jim's Add_Layer plugin to no avail. Does anyone have a link or a copy that will work with Make 2017, please? Thanks in advance
  • [Plugin] Latticeizer

    14
    0 Votes
    14 Posts
    23k Views
    TIGT
    It's available in the PluginStore https://sketchucation.com/pluginstore?pln=Latticeizer Get its RBZ and install it, just like any other... Alternatively use the SketchUcation ExtensionStoreÂł from within SketchUp itself, to Auto-Install it... It works just fine in the newer SketchUps... But note that it's not been signed for full compatibility with newer SketchUp, so your 'Extension Loading Policy' needs to be set to 'Unrestricted' for it to load and appear in the Extensions menu...
  • [Plugin] FredoTools::FaceTriangulator - v1.0a - 24 Feb 18

    4
    0 Votes
    4 Posts
    6k Views
    fredo6F
    @ahmed0007 said: Thanks for Sharing it select all faces by ignoring hidden/smooth edges in su2017 its normal? Yes, this is the default behavior. You can of course pre-select the faces you wish to triangulate before launching Face triangulator. Note that I could enable a button palette to give the choice of selection mode, as I do for JointPushPull. But some users or commentators say that palettes make the GUI cluttered. So the only thing I can do is to make the selection mode "single Face" when Hidden Geometry is on, otherwise by Surface. Fredo
  • Cutting multiple components with a face?

    11
    0 Votes
    11 Posts
    2k Views
    jolranJ
    Ah yes, the repeating pattern problem.. I know what you mean. Been there.. Well it's possible to reposition textures, rotate and resize them to create variations. Also 2dBoolean will pickup multiple textures/materials and you could apply same amount off pushpull to them all. But then again, you might want more flexibility then what premade component-patterns can offer so your current workflow might be more convenient.
  • Installing Wood Grain Long - 2 Extension

    4
    0 Votes
    4 Posts
    1k Views
    V
    Outstanding! I apologize for the delayed response, but I am just now able to return to this project. That did the trick! I am using a Mac, but your educated guess was spot on. Thank you, Tig, for the detailed help.
  • [Plugin] Align tool 3D (bug fix)

    58
    0 Votes
    58 Posts
    144k Views
    R
    There's a huge issue with this tool (I noticed it after dekade of using ) - it distorts objects. Additional operation needed (reset skew, rotation) afterwards. Any chance to to fix it please?
  • Help with installing slicer/slicemodeler

    4
    0 Votes
    4 Posts
    1k Views
    pilouP
    Maybe Install last version 2017 Make (if you have 64 bits)
  • Any plugin to evenly space objects?

    24
    0 Votes
    24 Posts
    11k Views
    Dave RD
    @joshuabrew said: hey! any leads on a plugin for this?? looking for the same... basically the sketchup equivalent of the distribute and align tools common in adobe indesign and illustrator, but for 3D objects in sketchup. thx! j Hey! Did you try the link in the post immediately above yours from 2014?
  • Double Offset

    8
    0 Votes
    8 Posts
    1k Views
    CadFatherC
    hope TIG is ok with it: main 2 routines: @@dist=nil def initialize(dist=nil) @toolname="extrudeEdgesByOffset" if dist==0 puts 'Extrude Edges by Offset' + '; Offset cannot be 0.' return nil end#if model=Sketchup.active_model ss=model.selection edges=[] ss.each{|e|edges << e if e.class==Sketchup;;Edge} if not edges[1] if not dist UI.messagebox('Extrude Edges by Offset') + ('; Must Select >=2 Edges.') else puts 'Extrude Edges by Offset' + '; Must Select >=2 Edges.' end return nil end#if verts=[] edges.each{|e| verts << e.vertices} verts.flatten! verts.uniq! pts=[] verts.each{|v| pts << v.position} cop=true vec=Geom;;Vector3d.new(0,0,0) edges[0..-2].each_with_index{|e,i| vec=e.line[1].cross(edges[i+1].line[1])} vec=Z_AXIS.clone if vec.length==0 ### all in line plane=[pts[0],vec] pts.each{|p| if not p.on_plane?(plane) cop=false break end } if not dist if not cop UI.messagebox('Extrude Edges by Offset') + ('; Edges must be coplanar.') return nil end @@dist=0.to_l if not @@dist Sketchup;;set_status_text(("Extrude Edges by Offset")+"; "+("Distance; "), SB_PROMPT) results=inputbox(["Distance; "],[@@dist],"Extrude Edges by Offset"+"...") return nil if not results if results[0]==0 UI.messagebox('Extrude Edges by Offset'+'; Offset cannot be 0!'+"\n"+"Try again"+"...") results=inputbox(["Distance; "],[@@dist],"Extrude Edges by Offset"+"...") return nil if not results or results[0]==0 end#if @@dist=results[0] else ### dist passed as arg if not cop puts 'Extrude Edge by Offset'+'; Edges must be coplanar.' return nil end @@dist=dist.to_l end#if ### model.start_operation("Extrude Edges by Offset"+' '+@@dist.to_s) dist=@@dist group=model.active_entities.add_group() ents=group.entities ### if edges.length==verts.length ### looped ### tface=ents.add_face(pts) ### fverts=tface.outer_loop.vertices fpts=[] 0.upto(fverts.length-1) do |a| vec1=(fverts[a].position-fverts[a-(fverts.length-1)].position).normalize vec2=(fverts[a].position-fverts[a-1].position).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=180.degrees if vec1.parallel?(vec2) vec3.length=dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) if fpts.length > 0 if not (vec2.parallel?(fpts.last.vector_to(fverts[a].position.transform(t)))) t=Geom;;Transformation.new(vec3.reverse) end end fpts << fverts[a].position.transform(t) end end nface=ents.add_face(fpts) tface.erase! if tface.valid? and dist>0 nface.erase! if nface.valid? and dist<0 face=nil; ents.each{|e|face=e if e.class==Sketchup;;Face} face.reverse! if face.normal.z<0 ol=face.outer_loop verts=ol.vertices if dist<0 il=(face.loops-[ol])[0] verts=il.vertices if dist>0 verts.each_with_index{|vert,a| vec1=(verts[a].position.vector_to(verts[a-(verts.length-1)].position)).normalize vec2=(verts[a].position.vector_to(verts[a-1].position)).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=90.degrees if vec1.parallel?(vec2) vec3.length= -dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) p=verts[a].position pt=p.transform(t) ents.add_line(p,pt) end } ### tr=Geom;;Transformation.new() len=ents.length len.times{ents.intersect_with(true, tr, ents, tr, true, ents.to_a)} ### cedges=[]; ents.each{|e|cedges << e if e.class==Sketchup;;Edge} ### else ### open ended ### edges.each{|e|ents.add_line(e.start.position, e.end.position)} edges=ents.to_a es=[] ee=[] se=[] edges.each{|e| if not e.start.edges[1] es=e.start ee=e.end se=e break elsif not e.end.edges[1] es=e.end ee=e.start se=e break end#if } nedges=[se] verts=[es,ee] (edges.length-1).times{ edges.each{|e| next if nedges.include?(e) if e.start==ee verts << e.vertices ee=e.end nedges << e elsif e.end==ee verts << e.vertices ee=e.start nedges << e end } } verts.flatten! verts.uniq! ### opts=[] verts.each_with_index{|vert,a| if a==0 #special case for start vertex v=verts[a].position.vector_to(verts[a+1].position).normalize f=dist/dist.abs t=Geom;;Transformation.rotation(verts[0].position, vec, 90.degrees*f) vec3=v.transform(t) vec3.length=dist.abs opts << verts[a].position.transform(vec3) elsif a==verts.length-1 #special case for end vertex v=verts[a-1].position.vector_to(verts[a].position).normalize f=dist/dist.abs t=Geom;;Transformation.rotation(verts[a].position, vec, 90.degrees*f) vec3=v.transform(t) vec3.length=dist.abs opts << verts[a].position.transform(vec3) else vec1=(verts[a].position.vector_to(verts[a+1].position)).normalize vec2=(verts[a].position.vector_to(verts[a-1].position)).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=90.degrees if vec1.parallel?(vec2) vec3.length=dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) if not vec2.parallel?(opts[-1].vector_to(verts[a].position.transform(t))) t=Geom;;Transformation.new(vec3.reverse) end opts << verts[a].position.transform(t) end end#if } begin nedges=ents.add_edges(opts) rescue nedges=[] end pts=[] verts.each{|v|pts << v.position} ents.erase_entities(edges) begin edges=ents.add_edges(pts) rescue edges=[] end pts.each_with_index{|p,i|ents.add_line(pts[i],opts[i])} ### tr=Geom;;Transformation.new() len=ents.length len.times{ents.intersect_with(true, tr, ents, tr, true, ents.to_a)} ### cedges=[]; ents.each{|e|cedges << e if e.class==Sketchup;;Edge} cedges.length.times{ ents.to_a.each{|e| next if e.class!=Sketchup;;Edge or not e.valid? e.find_faces } } ents.to_a.each{|e|e.reverse! if e.class==Sketchup;;Face and e.normal.z<0} ### end#if ### model.commit_operation # CREATE REVERSE GROUP model.start_operation("Extrude Edges by Offset - Reverse Side"+' '+@@dist.to_s) dist=@@dist*-1 group=model.active_entities.add_group() ents=group.entities ### if edges.length==verts.length ### looped ### tface=ents.add_face(pts) ### fverts=tface.outer_loop.vertices fpts=[] 0.upto(fverts.length-1) do |a| vec1=(fverts[a].position-fverts[a-(fverts.length-1)].position).normalize vec2=(fverts[a].position-fverts[a-1].position).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=180.degrees if vec1.parallel?(vec2) vec3.length=dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) if fpts.length > 0 if not (vec2.parallel?(fpts.last.vector_to(fverts[a].position.transform(t)))) t=Geom;;Transformation.new(vec3.reverse) end end fpts << fverts[a].position.transform(t) end end nface=ents.add_face(fpts) tface.erase! if tface.valid? and dist>0 nface.erase! if nface.valid? and dist<0 face=nil; ents.each{|e|face=e if e.class==Sketchup;;Face} face.reverse! if face.normal.z<0 ol=face.outer_loop verts=ol.vertices if dist<0 il=(face.loops-[ol])[0] verts=il.vertices if dist>0 verts.each_with_index{|vert,a| vec1=(verts[a].position.vector_to(verts[a-(verts.length-1)].position)).normalize vec2=(verts[a].position.vector_to(verts[a-1].position)).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=90.degrees if vec1.parallel?(vec2) vec3.length= -dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) p=verts[a].position pt=p.transform(t) ents.add_line(p,pt) end } ### tr=Geom;;Transformation.new() len=ents.length len.times{ents.intersect_with(true, tr, ents, tr, true, ents.to_a)} ### cedges=[]; ents.each{|e|cedges << e if e.class==Sketchup;;Edge} ### else ### open ended ### edges.each{|e|ents.add_line(e.start.position, e.end.position)} edges=ents.to_a es=[] ee=[] se=[] edges.each{|e| if not e.start.edges[1] es=e.start ee=e.end se=e break elsif not e.end.edges[1] es=e.end ee=e.start se=e break end#if } nedges=[se] verts=[es,ee] (edges.length-1).times{ edges.each{|e| next if nedges.include?(e) if e.start==ee verts << e.vertices ee=e.end nedges << e elsif e.end==ee verts << e.vertices ee=e.start nedges << e end } } verts.flatten! verts.uniq! ### opts=[] verts.each_with_index{|vert,a| if a==0 #special case for start vertex v=verts[a].position.vector_to(verts[a+1].position).normalize f=dist/dist.abs t=Geom;;Transformation.rotation(verts[0].position, vec, 90.degrees*f) vec3=v.transform(t) vec3.length=dist.abs opts << verts[a].position.transform(vec3) elsif a==verts.length-1 #special case for end vertex v=verts[a-1].position.vector_to(verts[a].position).normalize f=dist/dist.abs t=Geom;;Transformation.rotation(verts[a].position, vec, 90.degrees*f) vec3=v.transform(t) vec3.length=dist.abs opts << verts[a].position.transform(vec3) else vec1=(verts[a].position.vector_to(verts[a+1].position)).normalize vec2=(verts[a].position.vector_to(verts[a-1].position)).normalize vec3=(vec1+vec2).normalize if vec3.valid? ang=vec1.angle_between(vec2)/2 ang=90.degrees if vec1.parallel?(vec2) vec3.length=dist/Math;;sin(ang) t=Geom;;Transformation.new(vec3) if not vec2.parallel?(opts[-1].vector_to(verts[a].position.transform(t))) t=Geom;;Transformation.new(vec3.reverse) end opts << verts[a].position.transform(t) end end#if } begin nedges=ents.add_edges(opts) rescue nedges=[] end pts=[] verts.each{|v|pts << v.position} ents.erase_entities(edges) begin edges=ents.add_edges(pts) rescue edges=[] end pts.each_with_index{|p,i|ents.add_line(pts[i],opts[i])} ### tr=Geom;;Transformation.new() len=ents.length len.times{ents.intersect_with(true, tr, ents, tr, true, ents.to_a)} ### cedges=[]; ents.each{|e|cedges << e if e.class==Sketchup;;Edge} cedges.length.times{ ents.to_a.each{|e| next if e.class!=Sketchup;;Edge or not e.valid? e.find_faces } } ents.to_a.each{|e|e.reverse! if e.class==Sketchup;;Face and e.normal.z<0} ### end#if ### model.commit_operation Sketchup.send_action("selectSelectionTool;") end#def
  • JHS Standard Toolbar Problems / SU 2018

    4
    0 Votes
    4 Posts
    1k Views
    atelierpaarA
    Hi Max, I tried the updated Standard Toolbar "hide rest of the Model" as well as "Isolated/Restore Selected"tool work well excellent work. Thanks a lot for looking into it - I appreciate Uli

Advertisement