⚠️ Update | Sketchucation Tools 5.0.8 released with licensing improvements and bugfixes Download

Alkategóriák

  • No decscription available

    20 Témakörök
    462 Hozzászólások
    HornOxxH
    @pilou said: More appetizing in chocolate! Eggs are good as well - but only very fragile when falling down in SketchyPhysics
  • Angles to vector

    4
    0 Szavazatok
    4 Hozzászólások
    459 Megtekintések
    TIGT
    There is no inbuilt method... but this will do it [flattened to Z-plane] def flat_angle(vector) vec=Geom;;Vector3d.new(vector.x, vector.y, 0) if vec.y < 0 return (2*Math;;PI)-(vec.angle_between(X_AXIS)) elsif vec.y > 0 return vec.angle_between(X_AXIS) elsif vec.y == 0 if vec.samedirection?(X_AXIS) return 0 else return Math;;PI end end end it's easy to make methods for X & Y planes - just adjust vec= to suit those other planes and adjust the tests from vec.y & _AXIS etc...
  • What's the :: symbol on Geom::....

    3
    0 Szavazatok
    3 Hozzászólások
    496 Megtekintések
    Dan RathbunD
    @abakobo said: what's behind the :: symbol in Geom ? It is called the scope operator. :: with nothing to the left of it means the top level scope (aka TOPLEVEL_BINDING,) which is "a particular instance of Object called 'main'". But it's use that way is optional. Ruby always checks the current scope first, then the top level scope if it needs to. But this is also why you should always be executing YOUR code inside a toplevel module, with some unique name that you invent. like module Abakobo So Geom::Point3d is referring to the Point3d class, within the Geom module scope. @abakobo said: and when do we use :: and/or . to call a method It's style, but many people only use the . for ALL methods. Some people use :: for calling module functions and class methods (which the new constructor is,) and then use . to call only instance methods. (Some of the older examples, from the days when SketchUp was owned by Google or @Last Software, use this latter convention. I guess they wanted to emphasize the calling of class methods or module functions.)
  • Mac Scrambler for 2013

    11
    0 Szavazatok
    11 Hozzászólások
    1k Megtekintések
    tt_suT
    Can you send me the RB and RBS file you are working with? I'd like to hook this up to our own debugger.
  • Remove_observer bug?

    3
    0 Szavazatok
    3 Hozzászólások
    487 Megtekintések
    fuzzybroF
    It's a pseudo-code. The actual code implies that observer object is a class instance variable: class Scene attr_accessor(;observer) def initialize @observer = MyEntitiesObserver.new end def observe Sketchup;;active_model.definitions.each do |definition| definition.entities.add_observer @observer end end def unobservre Sketchup;;active_model.definitions.each do |definition| definition.entities.remove_observer @observer end end end
  • Is it possible to reset a transformation in loop?

    5
    0 Szavazatok
    5 Hozzászólások
    528 Megtekintések
    2
    Oups! you're right. that's the problem! I am trying to make a dragon curve.
  • Rotation unexepected result

    3
    0 Szavazatok
    3 Hozzászólások
    381 Megtekintések
    jolranJ
    Transform! executes/calls the method wheras transformation = is assigning it. tested your code and transformation = , did give me a same result as transform! The principle still is call method with object.method. Oh, and to answer the question. In this case were dealing with Geom::Transformation object. So were not calling a method directly(I think..).So its more like Group.Geom::Transformation = myspecial.Geom::Transformation I hope I explained it correctly.. If you test t0.class you will see it's a Geom::Transformation.object
  • How to store web-dialog parameters/settings?

    5
    0 Szavazatok
    5 Hozzászólások
    938 Megtekintések
    renderizaR
    It works! Did simple test that saved some of the web-dialog settings. def activate @@check = "start" end def deactivate(view) @@check = "end" end def push_frame(dialog,data) params = query_to_hash(data) ################ ## START ## ################ if @@check == "start" @@check = "no" saved = Sketchup.read_default("canvas_panel", "store_dlg") UI.messagebox saved #Will prompt last selected value before closing from web-dialog end ################ ## END ## ################ if @@check == "end" @@check = "no" inp = params['sel_ip'].to_s #This is value from web-dialog Sketchup.write_default("canvas_panel", "store_dlg", inp) end end Need to do what TIG suggested which was to make array into string to store multiple web-dialog settings. After that will have to use that data to make web-dialog use the settings last used when it was last closed.
  • [code] ruby-dxf-reader

    15
    0 Szavazatok
    15 Hozzászólások
    5k Megtekintések
    DavidBoulderD
    @jim said: Hi David, I put it up on GitHub. Thanks!! I'll check it out this weekend. David
  • SketchUp Dev Camp 2013 - A Developer Conference

    3
    0 Szavazatok
    3 Hozzászólások
    689 Megtekintések
    G
    See you at Lisbon
  • Rotate and Intersect a plane

    7
    0 Szavazatok
    7 Hozzászólások
    731 Megtekintések
    TIGT
    Please stop calling them 'lines' - I know that's the CAD name but in SketchUp Ruby code they are best called 'edges' - I know some SketchUp tools refer to drawing 'lines' and there's even an API method add_line() that adds an edge BUT when we are talking code - especially if we are taking about edge.line - it's a recipe for confusion to muddle up the two terms... I tried to explain the difference between an edge and a line [edge.line]... The two perpendicular edges you drew will only return a point with the intersect_line_line() IF they intersect - i.e. they are 'coplanar'... looking down 'in plan' does not mean they do intersect if their 'z' values not equal... Assuming they do return a point, then my previous post explains how you can then tell if that point falls 'in space', or either of the edges' vertices, or on an edge in between its start/end... It'd be quite possible to slide your example edges around so that they then return a point 'in space' that is on neither edge...
  • Passing arguments on command line using Sketchup Bridge

    3
    0 Szavazatok
    3 Hozzászólások
    1k Megtekintések
    P
    Hi Dan, Thanks a lot for the reply! Having the Java program write to a file and then having the Sketchup script read it in is a good idea. I'm going to try that. Can I use the 'File' object to accomplish this in a Sketchup script? Having said that, for me latency is an issue, and I don't know if the time for writing and reading from the disk will slow me down - but I guess I'll only know after I try. Actually what I am trying to accomplish is have a controller control the camera in the Sketchup model. The controller has APIs in a bunch of languages (Java, C++, Javascript), but none in Ruby. There is one interface created by a third party that uses SWIG to wrap the C++ functions and make it accessible in Ruby, but those are 'listeners', and I don't know if they would work within Sketchup Ruby. Do you know if it is possible to have the a .rb script, run via the Sketchup Bridge from within an IDE, that acts as a listener? (Sorry if this is a bit vague - I'm don't have much experience integrating a scripting language like Ruby with something like Java or C++. Let me know if I can clarify this further).
  • How to hide the maximize & minimize web-dialog button?

    12
    0 Szavazatok
    12 Hozzászólások
    1k Megtekintések
    tt_suT
    Didn't try. Then you'd have to hook into the windows messages. yuck
  • Group only edges from a face yet selectcted ?

    10
    0 Szavazatok
    10 Hozzászólások
    934 Megtekintések
    pingpinkP
    Hi , The process : Store Data - Components , Patterns , Panels of original data from Architect's Model Tag Part Number - Select Panels ,and distinguish different panels type Auto Open Patterns - To recheck the original design Re-Tag Part Number - The users have to change after checking Patterns , Different patterns have different tag numbers even though they are the same sizes. My expectation needs to " Store Data and Recheck Patterns later for a RE-TAG Number correctly " as a facade designer wants.
  • How to know if user has stopped orbiting camera?

    8
    0 Szavazatok
    8 Hozzászólások
    763 Megtekintések
    Dan RathbunD
    @chris fullmer said: ... suspend will tell you if the user has started using orbit or pan, ... Really? That is news to me. (The API docs do not say this.) AFAIK, a tool's suspend callback is called JUST BEFORE the tool becomes inactive, (so you can save stuff like your tool's state etc.,) and BEFORE the interruptor tool becomes active. Also.. because the Sketchup::Tools collection does not have Enumerable mixed in (and an each method defined,) there is no way to non-destructively read the last tool on the stack, nor even iterate the stack.
  • Find (3d point) intersection of 2 lines?

    2
    0 Szavazatok
    2 Hozzászólások
    647 Megtekintések
    TIGT
    Try point = Geom.intersect_line_line(edge1.line, edge2.line) You either get a point or nil if the two 'lines' don't intersect. Unlike an 'edge', a 'line' is infinite, so two 'edges' might not physically intersect even though their 'lines' do. If you get a point you can then test if it actually falls on an end point of an edge point == edge1.start.position point == edge2.end.position point == edge1.start.position point == edge2.end.position where true shows it is at a vertex AND if the point falls between the start/end of each edge, the test is... point.vector_to(edge1.start.position) == point.vector_to(edge1.end.position) point.vector_to(edge2.start.position) == point.vector_to(edge2.end.position) Note that getting true means that the point is not physically on the edge because the vectors are both in the same direction, and false means that the point is on the edge and between the start/end...
  • Display Schematic Models

    3
    0 Szavazatok
    3 Hozzászólások
    417 Megtekintések
    pingpinkP
    Thanks Dan ! , I never realized about this method. My supervisor wants me to switch schemes for " DESIGN COMPARE " at the same position to open and hide layers , then show all schemes by coding. The layers now are overlapped.If I can't do at the end I will do only Switch One by One. http://www.youtube.com/watch?v=ZffmxlB5dbk&feature=youtu.be
  • Load Component and Rotation

    7
    0 Szavazatok
    7 Hozzászólások
    805 Megtekintések
    pingpinkP
    I respect you !!! I'm a big fan of you.
  • Onload issue with web-dialog window on Mac.

    7
    0 Szavazatok
    7 Hozzászólások
    750 Megtekintések
    renderizaR
    @tt_su said: That will prevent the initial white dialog under OSX. Yes I did that and received feedback from a Mac user that the dialog was loading ok. @tt_su said: On a sidenote, I always recommend jQuery or similar frameworks. They take care of most cross compatibility issues - even in this case because jQuery.ready() event uses the DOM ready event which doesn't cause any white out. I will need to study how to implement this for future...thanks!
  • Layers to Groups

    3
    0 Szavazatok
    3 Hozzászólások
    312 Megtekintések
    Dan RathbunD
    Too many recursion levels can be a problem (with memory I think.) We have discussed this in other threads. Do a forum search on "recursion".
  • Offset top face only...need help!

    4
    0 Szavazatok
    4 Hozzászólások
    469 Megtekintések
    renderizaR
    @tig said: Read my SmartOffset code to see how I offset the edges of a given face... That is by no means an easy task but I will try to understand what you wrote. Isn't there a 1st grader version? @tt_su said: Side note - Ruby is very slow. You'll find using the SketchUp API's .distance method much faster than doing your own length calculation. At least if you do this for a somewhat large set of entities. That is good to know thanks!

Advertisement