• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Import file, group everything and save as previous version

Scheduled Pinned Locked Moved Developers' Forum
1 Posts 1 Posters 5.5k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    eugenio_miolo
    last edited by 13 Feb 2020, 17:02

    Hello,

    I'm totally knew to sketchup and Ruby, but what I need to do something should be very simple. Given an input file (dae, obj, etc) I need to import, group everything and (preferentially) save as some previous version.

    Most of my code comes from this topic:
    https://sketchucation.com/forums/viewtopic.php?f=180&t=69535#

    Here's what I have:
    ` # get the active_model as a variable and clears the scene
    model = Sketchup.active_model
    model.entities.clear!

    imports the file and change tool to stop manual placement

    dae = "file_import_path.dae"
    model.import(dae, {:merge_coplanar_faces => false})
    Sketchup.send_action('selectSelectionTool:')

    creates a definition (whatever it is) and save it to a new file

    defn=model.definitions[-1]
    defn.name=File.basename(dae, ".*")
    defn.description="Imported from DAE"
    skp=dae.gsub(/[.]dae$/, '.skp')
    defn.save_as(skp)
    defn.entities.clear!

    #opens the saved file, group everything and save as a previous version
    Sketchup.open_file(skp)
    model.entities.add_group(model.entities.to_a)
    model.save(skp, Sketchup::Model::VERSION_2017)
    model.commit_operation`

    This code get's me pretty close to what I need. The main problem is that I can't get rid of the popup dialog that prompts to save the current file when "Sketchup.open_file" command is called. I can't even call "Sketchup.quit()" or similar commands for the same problem. So is there a way to make Sketchup run commands and supress any possible dialog to pop up? In 3dsmax many commands have a "quiet" mode, or we can suppress everything by setting "silentMode true" at the beggining of the code. I need something similar here.

    Still, there are multiple problems going on here which I would really like to have a better understanding:

    1. After running the "model.import" and "Sketchup.send_action('selectSelectionTool:')" commands, the model doesn't show in viewport for the current Sketchup session. Why is that?
    2. Oddly, creating a definition (no idea what's exactly a definition) and saving it, the model is there in the file.
    3. Because of problem number one, I can't group objects after import neither save the file as a previous version through the "save_copy" method, which is only present for the "Model" class.
    4. Therefore I'm forced to open the file from step number 2, which I can't automate because doing so pops up the save scene dialog since the scene has changed.

    And one final question, Sketchup will be called by command line "Sketchup.exe -RubyStartup my_ruby_code.rb". How do I get rid of the welcome screen by code? I'm using Sketchup 2020 Pro Trial for now.

    Sorry for the long post.

    Thanks in advance,
    Eugenio

    1 Reply Last reply Reply Quote 0
    • 1 / 1
    1 / 1
    • First post
      1/1
      Last post
    Buy SketchPlus
    Buy SUbD
    Buy WrapR
    Buy eBook
    Buy Modelur
    Buy Vertex Tools
    Buy SketchCuisine
    Buy FormFonts

    Advertisement