🔌 Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download
  • [REQ] DL-Light or similar daylight calculation plugin

    2
    0 評價
    2 貼文
    1k 瀏覽
    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 評價
    10 貼文
    6k 瀏覽
    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 評價
    2 貼文
    1k 瀏覽
    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 評價
    3 貼文
    1k 瀏覽
    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 評價
    9 貼文
    2k 瀏覽
    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 評價
    45 貼文
    68k 瀏覽
    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 評價
    104 貼文
    102k 瀏覽
    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 評價
    58 貼文
    14k 瀏覽
    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 評價
    14 貼文
    25k 瀏覽
    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 評價
    4 貼文
    7k 瀏覽
    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 評價
    11 貼文
    2k 瀏覽
    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 評價
    4 貼文
    1k 瀏覽
    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 評價
    58 貼文
    146k 瀏覽
    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 評價
    4 貼文
    1k 瀏覽
    pilouP
    Maybe Install last version 2017 Make (if you have 64 bits)
  • Any plugin to evenly space objects?

    24
    0 評價
    24 貼文
    12k 瀏覽
    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 評價
    8 貼文
    2k 瀏覽
    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 評價
    4 貼文
    1k 瀏覽
    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
  • [Plugin] Animation - SUalive Free

    17
    0 評價
    17 貼文
    7k 瀏覽
    SUaliveS
    Hello, SUalive Free 2.40 just under review (you can download 2.40 from our website)… Replay slider on top window* Online help available from SUalive help menu* website help tab QuickTour shows tuto and a tenth of videos from SUalive Full* No longer use .rbs files* SketchUp 2018pro SUalive Light and Full release today! from http://www.sualive.com at first Website home page has 4 new animation videos Lift-top Table assembly* Scaffolding assembly* Corkscrew* Scissor Lift @jumpjack We are waiting for Twilight contact and will let you know here as soon as they mail us. you said ‘...creating a temporary new scene per each frame...’ You can now render any frame you like. Simply move replay slider then render! you said ‘...Maybe SUalive could save scenes data...’ SUalive full has 2 commands. First ‘Export Scene like’ and ‘Play Scenes’. The last wait for user to click on next button and can easily be automated. User Ruby script or render extension can integrate the following safe script. Both script and next button may be used at the same time. if defined?(YDco657479255;;api_play_next_scene) YDco657479255;;api_play_next_scene() end Have a good day WhyDi
  • CURIC plugin

    5
    0 評價
    5 貼文
    16k 瀏覽
    E
    Seems they launched tasty teasers on FB and don't rush to launch plugins they advertise...
  • Random move components?

    8
    0 評價
    8 貼文
    3k 瀏覽
    E
    Ok, I resolved that by myself. I should have used Ruby Code Editor instead of Ruby Console.

Advertisement