Sketchucation Tools 5.0.7 | Licensing improvements and bug fixes Learn More

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
  • [Info] Allowable Classes for "set_attribute"

    57
    0 Szavazatok
    57 Hozzászólások
    8k Megtekintések
    Dan RathbunD
    Storage: dict["keyname"]= ary.inspect Retrieval: ary = eval(dict["keyname"]) It has no problem with an empty array. There is something in the code of the set_attribute method, that will ignore even a string representation such as "[]" ?
  • Copy from Autocad to Sketchup

    14
    0 Szavazatok
    14 Hozzászólások
    5k Megtekintések
    Dan RathbunD
    See Jim's list here. http://sketchucation.com/forums/viewtopic.php?t=34840#p374097 There are a few more perhaps added since then.
  • Style validation

    8
    0 Szavazatok
    8 Hozzászólások
    591 Megtekintések
    CadFatherC
    ok TIG, thanks for that, i shall have a go with this. i thought i wasn't too far with my first example! Thanks!
  • WebDialog parameters passed to callback cause .to_l error

    29
    0 Szavazatok
    29 Hozzászólások
    2k Megtekintések
    TIGT
    But that Ruby float as a string is ALWAYS going to return "1.0", so it always sets as "." even when the user's day-to-day decimal-separator is "," The issue is how the user input of "1,0" is correctly read as a float or a length. In the UI 'input' the default input type pretty much sorts that out. Since 1.0.m displays as 1.000m or 1,000m depending on the user's locale [and of course the model's unit settings] In a webdialog it's more awkward, because all input is a string that needs 'interpreting'. So the earlier posts' trickery using lengths etc to get the real separator would help... Certainly when initially populating the webdialog with decimal values... Like sep = (begin;'1.0'.to_l;'.';rescue;',';end) So if sep==',' we present decimal numbers differently using something like tr('.',',')? But surely some leeway could be used... What if a user first inputs x = 1.0 then x = 2,3 ? Should BOTH be acceptable ? So assuming they are expected as floats... if sep=='.' x.tr!(',','.') else #',' x.tr!('.',',') end For the display-side this makes either typed in separator suit the the 'locale', but on the Ruby-side, it's always x_float = x.tr(',','.').to_f For inputted 'lengths' it is different, because the Ruby-side expects it to be in the locale separator format... The first sep==...tr... still applies to ensure it's locale friendly... BUT then the x_length = x.to_l must be used Ruby-side...
  • Merging two or more faces

    8
    0 Szavazatok
    8 Hozzászólások
    3k Megtekintések
    S
    @tt_su said: Grouping and exploding will be very slow. And add_group with existing entities has been prone to erros and crashes. But Mr.tt-su, when I use entities.intersect_with it doesn't work, can you explain why? After all I'm using grouping just once because my plugin I'm creating right now is dealing with just two faces, not like the sample I gave. [EDIT] I'v tried your plugin and it seems it works only for a ready intersected in the model faces, if I have two faces say from my sample face1 and face2, then your plugin can't work on them unless they are intersected in the model first, if you draw two simple intersected rectangles in sketchup and say selected them, then you plugin can work, hope you get my point. My problem till now is that I have two intersected faces but they are not intersected with the model and I want to merge them. one option gave by TIG to use entities.intersect_with method but failed with me, I don't know exactly the arguments of this function.
  • C SDK - how to export a model to a dwg file

    7
    0 Szavazatok
    7 Hozzászólások
    711 Megtekintések
    tt_suT
    @gábor said: The downloadable SDK pack itself contains an XML exporter example. It is a good start to examine that. This is what I'd recommend as well. The C SDK is for reading and writing SKP files. If you need to convert to another file format you need the C SDK then convert to the target file format manually.
  • Is the C SDK upgraded to handle v2015 files?

    7
    0 Szavazatok
    7 Hozzászólások
    703 Megtekintések
    G
    And it works flawless with v2015 files. Thanks again.
  • Draw face from webdialog

    2
    0 Szavazatok
    2 Hozzászólások
    354 Megtekintések
    sdmitchS
    add an action to the form <form action="skp:ruby_messagebox@"> change button type to "submit" In the callback tokens=params[1..-1].split("&"); tokens.each{|t| var,val = t.split("="); case var when "pt1" then pt1=Geom::Point3d.new(val) . . end
  • OnElementAdded inside Group or Component

    4
    0 Szavazatok
    4 Hozzászólások
    618 Megtekintések
    M
    Hi, I've been experimenting on adding/removing EntitiesObservers when groups/components are opened/closed, and I've found difference in behavior in old and new Sketchup versions. When I have few nested groups and I open/close them multiple times (without leaving top parent group): Sketchup 8 and Sketchup 2013 - observers are added/removed as expected and each new entity is detected only once Sketchup 2014 and Sketchup 2015 - it seems like observers aren't removed each time 'onActivePathChanged' is called (although in console is printed that they are removed). When I add new face inside some nested group it is detected multiple times. Number of times EntitiesObserver is called is increased each time I open/close some subgroup. Below it the code which is independent from my plugin and can be simply loaded in Sketchup for testing purposes: module DL;;Daylighting #Attach observers to model, entities and materials class DLAppObserver < Sketchup;;AppObserver def initializeObservers(model) model_observer = DL;;Daylighting;;DLModelObserver.new() model_observer.initializeObservers(model) model.add_observer(model_observer) end def onNewModel(model) initializeObservers(model) end def onOpenModel(model) initializeObservers(model) end end class DLModelObserver < Sketchup;;ModelObserver @@observers = {} @@entitiesObserver = nil def initializeObservers(model) @@entitiesObserver = DL;;Daylighting;;DLEntitiesObserver.new() model.entities.add_observer(@@entitiesObserver) end #When new group is opened remove old observers and add new observer for active_entities def onActivePathChanged(model) puts "active path changed" #remove all previous observers @@observers.each_pair{|entities,observer| begin puts "***entities #{entities} remove observer #{observer}; #{entities.remove_observer(observer)}" rescue Exception => e puts "Can't remove observer",e.message end } @@observers={} #if all groups are closed -> don't add observers if !Sketchup.active_model.active_path return end entitiesObserver = DL;;Daylighting;;DLEntitiesObserver.new() entities = Sketchup.active_model.active_entities puts "***entities #{entities} add observer #{entitiesObserver}" if entities.add_observer(entitiesObserver) @@observers[entities] = entitiesObserver end end end class DLEntitiesObserver < Sketchup;;EntitiesObserver def onElementAdded( ents, new_ent ) #detect only Sketchup;;Face entities if new_ent.class == Sketchup;;Face puts "onElementAdded #{ents}; #{new_ent}" end end end end #DL;;Daylighting To attach these observers to the application just in call in Ruby console app_observer = DL;;Daylighting;;DLAppObserver.new() app_observer.initializeObservers(Sketchup.active_model) Sketchup.add_observer(app_observer) I don't understand what I'm doing wrong, because printed messages in ruby console show that old observer is always removed from entities when Active path is changed, but still new faces are detected multiple times. Once I leave all groups and go back to model (active_path=nil), all observers are like reset and I have only one EntitiesObserver. When I go inside groups and subgroups again, the number of observers increases again. And to repeat, in Sketchup 8 and Sketchup 2013 - this problem doesn't exist. Any suggestion is welcome, because I'm moving in circles with this observers. Thanks in advance, Marija
  • Selected Dim to Component Instance

    4
    0 Szavazatok
    4 Hozzászólások
    478 Megtekintések
    K
    Thanks for the help. I'll try your suggestions. Keith
  • Cut and Paste-in-place from within Component Instances

    20
    0 Szavazatok
    20 Hozzászólások
    2k Megtekintések
    JClementsJ
    Try this script which Sdmitch created. Edit a "top level" instance, make a selection (can be a group, a component, loose geometry or any combination of them), then run the script from the Edit menu > item "Cut selection within Comp Instance and Paste in Place from all Instances" (it is a long description, change if it if you want one less lengthy). You will be given an option to place the objects to be pasted onto a specific layer. I tested it in SU2014 and SU2014. Cut and Paste in Place.rb
  • Error in Triangles with a small side

    13
    0 Szavazatok
    13 Hozzászólások
    1k Megtekintések
    S
    @driven said: are you updating su2pov3.rb or starting again? john No, it's an old version, I'm working on a new one, but unfortunately I'm trying to understand how to use SketchUp Alpha declared a value on one side, and a different value in the same back_face simultaneously. All this is complicated by the same concept in the statements of the parent block. A problem that for now I can not find answer ..... This is a version a bit less old, but I hope to improve soon http://imitidicthulhu2.blogspot.it/2010/12/skup2ray-v006.html
  • Save workbook with input box entry

    5
    0 Szavazatok
    5 Hozzászólások
    639 Megtekintések
    D
    Right on, thanks!
  • Ruby scripting issues

    3
    0 Szavazatok
    3 Hozzászólások
    428 Megtekintések
    Dan RathbunD
    # First we pull in the standard API hooks. require 'sketchup.rb' require 'extensions.rb' Sketchup::require 'su_sandbox/GeometryHelpers' (1) They do not really "pull in the API hooks". (2) You only require scripts and libraries, if this script (which has the require statements,) are going to use what is defined in them. And your script uses nothing in those two files. (The files are located in the "Tools" sub-directory, of SketchUp program directory. They are not scrambled and can be read. Also everything defined in the "extensions.rb" file, is explained in the API dictionary under the SketchupExtensions class.) (3) require statements are always best located at the top of a file, since they should be dependencies. If they cannot be loaded, the rest of the script should not be run, because a LoadError exception will be raised.
  • Changes in 2015

    45
    0 Szavazatok
    45 Hozzászólások
    4k Megtekintések
    D
    I saved it as a componant and ... DefinitionList.load Timing Tests > SketchUp Version; 15.0.9349 > 0.033619; 0.033619 > 0.003637; 0.003637 > 0.003768; 0.003768 > 0.004126; 0.004126 > 0.003228; 0.003228 > 0.003331; 0.003331 > 0.003248; 0.003248 > 0.003292; 0.003292 > 0.003231; 0.003231 > 0.003322; 0.003322 > Average; 0.006480200000000001 prior to that I got DefinitionList.load Timing Tests > SketchUp Version; 15.0.9349 > 1.569674; 1.569674 > 1.604715; 1.604715 > 1.554494; 1.554494 > 1.546019; 1.546019 > 1.591651; 1.591651 > 1.560916; 1.560916 > 1.561827; 1.561827 > 1.580865; 1.580865 > 1.577112; 1.577112 > 1.575873; 1.575873 > Average; 1.5723146 john
  • Need a way to round up

    3
    0 Szavazatok
    3 Hozzászólások
    382 Megtekintések
    D
    Right on, thanks, forgot about that.
  • Draw parallel line, distance=11

    21
    0 Szavazatok
    21 Hozzászólások
    4k Megtekintések
    D
    Thanks
  • Script won't find face

    4
    0 Szavazatok
    4 Hozzászólások
    431 Megtekintések
    D
    Thank you, That worked.
  • Move points to a '3D grid'

    26
    0 Szavazatok
    26 Hozzászólások
    3k Megtekintések
    thomthomT
    This wasn't something I ever planned to publish. It was just a code snipped posted for anyone to grab.
  • Yosemite filter code...

    6
    0 Szavazatok
    6 Hozzászólások
    533 Megtekintések
    Dan RathbunD
    @driven said: can I PM you it, to have a look? Sure, John.

Advertisement