Ton bloc notes
Derniers sujets
» [ SKETCHUP LIVE COMPONENT ] Importer une liste de points dans son graphe via un input texte
par tenrev Aujourd'hui à 13:30
» [ SKETCHUP généralité ] Interface réinitialisée totalement suite connexion Trimble
par tenrev Hier à 10:31
» [ ARCHICAD ] Torsion sur poteaux
par Archi43 Hier à 9:46
» [ ARCHICAD-OBJETS GDL ] Sortie de toit TCP (Poujoulat)
par BoTof Lun 25 Mar 2024 - 9:12
» [ SKETCHUP LIVE COMPONENT ] besoin de tuyaux sur les textures random
par tenrev Sam 23 Mar 2024 - 10:35
» [ SKETCHUP composants dynamiques ] Copies de copies
par Manutio Ven 22 Mar 2024 - 12:21
» [ SKETCHUP plugins ] plugin pour les textes
par vick Ven 22 Mar 2024 - 10:34
» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo de mes tests IA
par tenrev Jeu 21 Mar 2024 - 9:25
» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:08
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:07
» [ KEYSHOT ] plugin sketchup
par tenrev Mer 20 Mar 2024 - 8:26
» [ SKETCHUP LIVE COMPONENT ] rendre visible ou invisible un paramètre utilisateur selon des conditions ?
par simjoubert Mar 19 Mar 2024 - 15:38
» [ PRESENTATION ] Manutio
par Manutio Lun 18 Mar 2024 - 9:21
» [ ARTLANTIS ] Ca donne envie !
par fraid Ven 15 Mar 2024 - 7:44
» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par JDD Mer 13 Mar 2024 - 10:39
» [ SKETCHUP plugins ] SketchUp et Menuiserie : Rencontre avec Artwood
par art wood concept Mer 13 Mar 2024 - 9:54
» [ ARCHICAD ] Zone - Menu déroulant
par Archi43 Mar 12 Mar 2024 - 16:29
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par jerryvento Mar 12 Mar 2024 - 8:48
» [ SKETCHUP LIVE COMPONENT ] table avec chaises
par tenrev Mar 12 Mar 2024 - 8:46
» [ SKETCHUP généralité ] Problème d'ouverture de SKP
par lionel Claude Lun 11 Mar 2024 - 18:14
» [ TWINMOTION ] Rotation des tuiles sur TM 2023 avec fichier issu de Allplan 2015
par Gaspard Hauser Lun 11 Mar 2024 - 13:48
» [ TWINMOTION ] CONSEIL FORMATION
par Marucia Lun 11 Mar 2024 - 13:29
» [ SKETCHUP plugins ] selection
par Gaspard Hauser Dim 10 Mar 2024 - 19:17
» [ TWINMOTION ] réduire le champs de travail ?
par Gaspard Hauser Dim 10 Mar 2024 - 19:13
» [ TWINMOTION ] eGPU / ralentissement Twinmotion important
par Gaspard Hauser Dim 10 Mar 2024 - 19:09
» [ SKETCHUP plugins ] sj_AddDCFunctions
par Miroslav Sam 9 Mar 2024 - 18:30
» [ SKETCHUP généralité ] Quel logiciel d'animation
par polo Sam 9 Mar 2024 - 17:35
» [ SKETCHUP tutos ] texture pour sketchup
par tenrev Ven 8 Mar 2024 - 9:25
» [ SKETCHUP LIVE COMPONENT ] les boucles Loop dans trimble creator
par tenrev Jeu 7 Mar 2024 - 10:21
» [ PRESENTATION ]
par Coulou Mer 6 Mar 2024 - 8:51
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 2/4 - INVERSER LA SÉLECTION avec 2017
par jerryvento Lun 4 Mar 2024 - 10:28
» [ SKETCHUP généralité ] crash
par TF3 Sam 2 Mar 2024 - 17:51
» [ SKETCHUP composants dynamiques ] Hidden avec formule IF et OR imbriqué
par Samuel MATHIEU Ven 1 Mar 2024 - 20:28
» [ SKETCHUP LIVE COMPONENT ] doc en anglais
par tenrev Ven 1 Mar 2024 - 13:42
» [ SKETCHUP composants dynamiques ] Un bug que je ne comprend pas
par boulii Jeu 29 Fév 2024 - 21:37
par tenrev Aujourd'hui à 13:30
» [ SKETCHUP généralité ] Interface réinitialisée totalement suite connexion Trimble
par tenrev Hier à 10:31
» [ ARCHICAD ] Torsion sur poteaux
par Archi43 Hier à 9:46
» [ ARCHICAD-OBJETS GDL ] Sortie de toit TCP (Poujoulat)
par BoTof Lun 25 Mar 2024 - 9:12
» [ SKETCHUP LIVE COMPONENT ] besoin de tuyaux sur les textures random
par tenrev Sam 23 Mar 2024 - 10:35
» [ SKETCHUP composants dynamiques ] Copies de copies
par Manutio Ven 22 Mar 2024 - 12:21
» [ SKETCHUP plugins ] plugin pour les textes
par vick Ven 22 Mar 2024 - 10:34
» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo de mes tests IA
par tenrev Jeu 21 Mar 2024 - 9:25
» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:08
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:07
» [ KEYSHOT ] plugin sketchup
par tenrev Mer 20 Mar 2024 - 8:26
» [ SKETCHUP LIVE COMPONENT ] rendre visible ou invisible un paramètre utilisateur selon des conditions ?
par simjoubert Mar 19 Mar 2024 - 15:38
» [ PRESENTATION ] Manutio
par Manutio Lun 18 Mar 2024 - 9:21
» [ ARTLANTIS ] Ca donne envie !
par fraid Ven 15 Mar 2024 - 7:44
» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par JDD Mer 13 Mar 2024 - 10:39
» [ SKETCHUP plugins ] SketchUp et Menuiserie : Rencontre avec Artwood
par art wood concept Mer 13 Mar 2024 - 9:54
» [ ARCHICAD ] Zone - Menu déroulant
par Archi43 Mar 12 Mar 2024 - 16:29
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par jerryvento Mar 12 Mar 2024 - 8:48
» [ SKETCHUP LIVE COMPONENT ] table avec chaises
par tenrev Mar 12 Mar 2024 - 8:46
» [ SKETCHUP généralité ] Problème d'ouverture de SKP
par lionel Claude Lun 11 Mar 2024 - 18:14
» [ TWINMOTION ] Rotation des tuiles sur TM 2023 avec fichier issu de Allplan 2015
par Gaspard Hauser Lun 11 Mar 2024 - 13:48
» [ TWINMOTION ] CONSEIL FORMATION
par Marucia Lun 11 Mar 2024 - 13:29
» [ SKETCHUP plugins ] selection
par Gaspard Hauser Dim 10 Mar 2024 - 19:17
» [ TWINMOTION ] réduire le champs de travail ?
par Gaspard Hauser Dim 10 Mar 2024 - 19:13
» [ TWINMOTION ] eGPU / ralentissement Twinmotion important
par Gaspard Hauser Dim 10 Mar 2024 - 19:09
» [ SKETCHUP plugins ] sj_AddDCFunctions
par Miroslav Sam 9 Mar 2024 - 18:30
» [ SKETCHUP généralité ] Quel logiciel d'animation
par polo Sam 9 Mar 2024 - 17:35
» [ SKETCHUP tutos ] texture pour sketchup
par tenrev Ven 8 Mar 2024 - 9:25
» [ SKETCHUP LIVE COMPONENT ] les boucles Loop dans trimble creator
par tenrev Jeu 7 Mar 2024 - 10:21
» [ PRESENTATION ]
par Coulou Mer 6 Mar 2024 - 8:51
» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 2/4 - INVERSER LA SÉLECTION avec 2017
par jerryvento Lun 4 Mar 2024 - 10:28
» [ SKETCHUP généralité ] crash
par TF3 Sam 2 Mar 2024 - 17:51
» [ SKETCHUP composants dynamiques ] Hidden avec formule IF et OR imbriqué
par Samuel MATHIEU Ven 1 Mar 2024 - 20:28
» [ SKETCHUP LIVE COMPONENT ] doc en anglais
par tenrev Ven 1 Mar 2024 - 13:42
» [ SKETCHUP composants dynamiques ] Un bug que je ne comprend pas
par boulii Jeu 29 Fév 2024 - 21:37
formulaire/diaporama
chaine sketchup.tv
[ SKETCHUP ruby ] Récupération des vignettes de rendu de scènes
Page 1 sur 1 • Partagez
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour,
Est-il possible de récupérer dans un fichier unique (image ou pdf), dans l'ordre chronologique des onglets de scènes du modèle, avec leur titre, toutes les vignettes de rendu des scènes dans sketchUp ?
JDD
Est-il possible de récupérer dans un fichier unique (image ou pdf), dans l'ordre chronologique des onglets de scènes du modèle, avec leur titre, toutes les vignettes de rendu des scènes dans sketchUp ?
JDD
JDD a écrit:Bonjour,
Est-il possible de récupérer dans un fichier unique (image ou pdf), dans l'ordre chronologique des onglets de scènes du modèle, avec leur titre, toutes les vignettes de rendu des scènes dans sketchUp ?
JDD
Salut JDD
je ne comprend pas trop ta question ? et ce que tu veux récupérer ? et surtout sous la forme d'une image ? et dans la section ruby ? moi y en a rien comprendre
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage
1 PC fixe avec proc Rizen 9 3950X 32 threads - cg nvidia geforce RTX3080 - 64 go de ram DDssd 1To
1 PC portable Lenovo écran 16''|win11 64 bits| i7 Quad core|ram 32go| CG GFORCE RTX3070 avec 8go
1 casque VR Occulus Rift - 1 vieux PC portable Dell sous Linux Ubuntu 18 1 vieux pc portable HP sous chromebook
Modélisation : Sketchup - Rhino - Pconplanner Rendu: Enscape - Keyshot - Unreal Engine - Artlantis - Twinmotion Autres: Photoshop - Illustrator - Indesign - Vidéostudio - After Effect - Première
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour,
Lorsque des scènes sont créées dans sketchUp, dans la palette gérant les scènes, des vignettes (images réduites) sont générées par SketchUp
Je souhaite connaitre s'il existe soit dans les API de SketchUp, soit par le biais de quelques lignes de code Ruby, un moyen de récupérer ces vignettes dans un fichier. (d'où la section Ruby, mais peut-être pas la bonne ?)
Ce fichier pourrait être un fichier au format PDF, soit un fichier au format de type PNG, JPG, etc.. (que j'ai appelé peut-être à tort, image)
Je voudrais quelque chose qui ressemble à une planche de contact que l'on peut par exemple élaborer dans Photoshop.
J'ai trouvé cet AM, un plugin nommé Export_scenes codé par Tho Extension, qui génère automatiquement une image de chaque scène, mais si 20 scènes il génère 20 images PNG, alors que moi je souhaite que toutes ces images soient groupées dans un unique fichier (tel les planches de contact)
Ce plugin, qui fonctionne très bien, ne permet pas de choisir la taille des images produites. Il est par ailleurs crypté et donc non modifiable.
En espérant avoir clarifié ma demande.
JDD
Lorsque des scènes sont créées dans sketchUp, dans la palette gérant les scènes, des vignettes (images réduites) sont générées par SketchUp
Je souhaite connaitre s'il existe soit dans les API de SketchUp, soit par le biais de quelques lignes de code Ruby, un moyen de récupérer ces vignettes dans un fichier. (d'où la section Ruby, mais peut-être pas la bonne ?)
Ce fichier pourrait être un fichier au format PDF, soit un fichier au format de type PNG, JPG, etc.. (que j'ai appelé peut-être à tort, image)
Je voudrais quelque chose qui ressemble à une planche de contact que l'on peut par exemple élaborer dans Photoshop.
J'ai trouvé cet AM, un plugin nommé Export_scenes codé par Tho Extension, qui génère automatiquement une image de chaque scène, mais si 20 scènes il génère 20 images PNG, alors que moi je souhaite que toutes ces images soient groupées dans un unique fichier (tel les planches de contact)
Ce plugin, qui fonctionne très bien, ne permet pas de choisir la taille des images produites. Il est par ailleurs crypté et donc non modifiable.
En espérant avoir clarifié ma demande.
JDD
hello
ok tu veux une planche contact , je comprend mieux , j'aurais plutôt mis cela dans la section "plugin" , plutôt que "Ruby" , si cela ne te dérange pas je déplace ?
juste pour ma curiosité , quel est le but ? faire un planche contact de tout tes composants ?
je l'ai déjà fait , en mettant les composants dans le projet et avec le plugin qui permet d'avoir un composant par scène et ensuite avec un plugin qui permet d'exporter chaque scène et ensuite la planche contact dans Photoshop
ok tu veux une planche contact , je comprend mieux , j'aurais plutôt mis cela dans la section "plugin" , plutôt que "Ruby" , si cela ne te dérange pas je déplace ?
juste pour ma curiosité , quel est le but ? faire un planche contact de tout tes composants ?
je l'ai déjà fait , en mettant les composants dans le projet et avec le plugin qui permet d'avoir un composant par scène et ensuite avec un plugin qui permet d'exporter chaque scène et ensuite la planche contact dans Photoshop
-------------------------------------------------------------------------------------------------------------------------
je ne sais pas grand chose , mais le peu que je sache , je le partage
1 PC fixe avec proc Rizen 9 3950X 32 threads - cg nvidia geforce RTX3080 - 64 go de ram DDssd 1To
1 PC portable Lenovo écran 16''|win11 64 bits| i7 Quad core|ram 32go| CG GFORCE RTX3070 avec 8go
1 casque VR Occulus Rift - 1 vieux PC portable Dell sous Linux Ubuntu 18 1 vieux pc portable HP sous chromebook
Modélisation : Sketchup - Rhino - Pconplanner Rendu: Enscape - Keyshot - Unreal Engine - Artlantis - Twinmotion Autres: Photoshop - Illustrator - Indesign - Vidéostudio - After Effect - Première
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Ok pour déplacement vers la section "plugin", pas de soucis
Ce que tu décris, je l'ai également déjà réalisé.
Je sélectionne tous mes composants, et avec simplement ces quelques lignes de code que je colle dans la console Ruby de ShetchUp, je produis automatiquement les vignettes de chaque composant.
Ensuite, avec Photoshop, je génère la planche de contacts à partir de ces vignettes.
Avec le plugin Export_scenes cité ci-avant, de la même manière, je pourrais aussi réaliser la planche de contact de toutes les vignettes de mes scènes, mais ce plugin ne permet pas de modifier la taille des images produites.
Quel est le but recherché ?
Je dispose d'un modèle avec un très grand nombre de scènes qui ont été créées à la volée, ou ajoutées à divers moments, et qui finalement ne sont pas disposés dans l'ordre que je souhaite les avoir.
Pour reclasser mes nombreux onglets de scènes, j'aimerais créer cette planche de contact, qui me servirait de support visuel, pour faciliter le classement.
JDD
Ce que tu décris, je l'ai également déjà réalisé.
Je sélectionne tous mes composants, et avec simplement ces quelques lignes de code que je colle dans la console Ruby de ShetchUp, je produis automatiquement les vignettes de chaque composant.
- Code:
mod = Sketchup.active_model
sel = mod.selection
path = mod.path
mypath = File.dirname(path)
sel.each do |sel| # Il faut sélectionner un, plusieur ou tous les composants du modèle
compname = sel.definition.name
thumbnailname = File.join(mypath, compname + '.png') # vignette au format png à l'emplacement du fichier SKP du modèle
sel.definition.save_thumbnail thumbnailname
end
Ensuite, avec Photoshop, je génère la planche de contacts à partir de ces vignettes.
Avec le plugin Export_scenes cité ci-avant, de la même manière, je pourrais aussi réaliser la planche de contact de toutes les vignettes de mes scènes, mais ce plugin ne permet pas de modifier la taille des images produites.
Quel est le but recherché ?
Je dispose d'un modèle avec un très grand nombre de scènes qui ont été créées à la volée, ou ajoutées à divers moments, et qui finalement ne sont pas disposés dans l'ordre que je souhaite les avoir.
Pour reclasser mes nombreux onglets de scènes, j'aimerais créer cette planche de contact, qui me servirait de support visuel, pour faciliter le classement.
JDD
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonsoir,
J'ai peut-être trouvé une autre solution pour réaliser les vignettes qui seront ensuite disposées dans une planche de contact générée dans Photoshop.
Dans Info sur le modèle, dans l'onglet Animation :
Je décoche "Activer les transitions entre scène" et passe à Zéro le délai entre scènes
Puis dans menu Fichier > Exporter > Animation
Je fixe l'emplacement de sauvegarde, je fixe le format de sortie en PNG et dans les Options, je passe la résolution au mini admis qui est de 320 pixels en largeur d'image.
On clique sur le bouton Exporter et toutes les vignettes des scènes sont alors générées dans le dossier retenu.
Inconvénient : Le nom original donné aux onglets de scènes n'est pas conservé.
Reste à lancer le script dans Photoshop pour générer la planche de contact souhaité.
JDD
J'ai peut-être trouvé une autre solution pour réaliser les vignettes qui seront ensuite disposées dans une planche de contact générée dans Photoshop.
Dans Info sur le modèle, dans l'onglet Animation :
Je décoche "Activer les transitions entre scène" et passe à Zéro le délai entre scènes
Puis dans menu Fichier > Exporter > Animation
Je fixe l'emplacement de sauvegarde, je fixe le format de sortie en PNG et dans les Options, je passe la résolution au mini admis qui est de 320 pixels en largeur d'image.
On clique sur le bouton Exporter et toutes les vignettes des scènes sont alors générées dans le dossier retenu.
Inconvénient : Le nom original donné aux onglets de scènes n'est pas conservé.
Reste à lancer le script dans Photoshop pour générer la planche de contact souhaité.
JDD
Hello JDD
Voici un code pour faire un batch export des scènes de façon paramétrable.
On peut améliorer les paramètres !
Bonne soirée
Voici un code pour faire un batch export des scènes de façon paramétrable.
- Code:
# Batch export scènes to images
# Enregistrement dans un dossier portant le même nom que le model dans le dossier du modèle
# Auteur Simon Joubert
# Version 1
# 2022/04/16
#A coller dans la console ruby
model = Sketchup.active_model
pages = model.pages
unless pages.length == 0
prompts = [
"Largeur",
"Hauteur",
"Anti Aliazing",
"Compression",
"Transparent",
"Extension"
]
defaults = [
640,
480,
false,
0.9,
true,
"png"
]
listes = [
"",
"",
"true|false",
"",
"true|false",
"png|jpg"
]
titre = "Paramètres export"
input = UI.inputbox(prompts, defaults, listes, titre)
unless input == false
# Paramètre chemin enregistrement fichier
mpath = model.path.gsub(".skp","\\")
options = {
:width => input[0],
:height => input[1],
:antialias => (input[2]=="false" ? false : true),
:compression => input[3],
:transparent => (input[4]=="false" ? false : true)
}
extension = input[5]
pages.each do |page|
name = "#{page.name}.#{extension}"
page_active = pages.selected_page=page
view = model.active_view
url = File.join(mpath, name)
options[:filename] = url
view.write_image(options)
end
end
end
On peut améliorer les paramètres !
Bonne soirée
tenrev et JDD aiment ce message
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour @simjoubert ,
J'ai lancé un test ce matin avec ton code.
Le sous_dossier n'est pas créé, et si des images sont créées je ne sais où elles ont été placées.
Il semble que l'instruction view.write_image(options) ne soit pas correctement renseignée (dans les options).
Une demande particulière :
Dans la boite de dialogue des options, peut-on ajouter "Taille de la vue" et avoir la possibilité de conserver le rapport H/L de cette vue pour les dimensions personnalisées.
JDD
J'ai lancé un test ce matin avec ton code.
Le sous_dossier n'est pas créé, et si des images sont créées je ne sais où elles ont été placées.
Il semble que l'instruction view.write_image(options) ne soit pas correctement renseignée (dans les options).
Une demande particulière :
Dans la boite de dialogue des options, peut-on ajouter "Taille de la vue" et avoir la possibilité de conserver le rapport H/L de cette vue pour les dimensions personnalisées.
JDD
Hello il faut d’abord enregistrer ton modèle
Car le code utilisé son emplacement pour créer le sous dossier.
Pour le ratio je regarde
Car le code utilisé son emplacement pour créer le sous dossier.
Pour le ratio je regarde
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
J'avais bien enregistré mon modèle avant de lancer le script.
Bonsoir les amis
Après l'orgie traditionnelle familiale de Pâques, j'ai digéré sur ce code.
j'ai testé sur un modèle de 70 scènes
Il inclut la vérification de l'existence des sous dossier. Et les créer le cas échéant ! (cause de l'erreur du code précédent)
La modification et la restauration des paramètres de transition des scènes du modèle et ceux des pages s'il en avait des spéciaux.
Une vérification en amont si le modèle a été enregistré, s'il existe des scènes !
Un message de succès à la fin !
Ajout d'une option pour conserver les proportions, la taille par défaut dans la boite de dialogue correspond aux dimensions de la 1re scène.
La hauteur de l'image exportée est recalculée selon un produit en croix (la hauteur de scène * largeur définit boite de dialogue / largeur de la scène.)
Si c'est bon, on lui ajoutera une icône et une entrée de menu sous forme de plugin.
Pour le nom je pense à "SJ Batch Export Scenes"
Après l'orgie traditionnelle familiale de Pâques, j'ai digéré sur ce code.
j'ai testé sur un modèle de 70 scènes
Il inclut la vérification de l'existence des sous dossier. Et les créer le cas échéant ! (cause de l'erreur du code précédent)
La modification et la restauration des paramètres de transition des scènes du modèle et ceux des pages s'il en avait des spéciaux.
Une vérification en amont si le modèle a été enregistré, s'il existe des scènes !
Un message de succès à la fin !
Ajout d'une option pour conserver les proportions, la taille par défaut dans la boite de dialogue correspond aux dimensions de la 1re scène.
La hauteur de l'image exportée est recalculée selon un produit en croix (la hauteur de scène * largeur définit boite de dialogue / largeur de la scène.)
- Code:
# Batch export scènes to images
# Enregistrement dans un dossier portant le même nom que le model dans le dossier du modèle puis un sous dossier "Export_Scenes"
# Auteur Simon Joubert
# Version 2
# 2022/04/16
#A coller dans la console ruby
require 'fileutils'
model = Sketchup.active_model
mpath = model.path # chemin du modele SU sauvegardé
mpath_directory = File.dirname(mpath) # Uniquement le chemin de dossier
sub_directory = File.basename(mpath,".skp") # On récupère le nom du fichier sans l'extension
new_sub_directory = File.absolute_path(File.join(mpath_directory,sub_directory)) #On ajoute le dossier portant le nom du fichier
sub_sub_directory = "ExportScenes" # Nom d'un sous dossier qui contiendra les images exportées
new_directory = File.absolute_path(File.join(new_sub_directory, sub_sub_directory)) #Chemin complet avec les sous dossier
pages = model.pages # on récupère le tableau des scènes du modèle
if mpath == "" # Le modèle n'est pas enregistré
message_texte = "Votre modèle n'a pas été encore sauvegardé au moins une fois !\nEnregistrez le et recommencez.\nOpération annulée"
message = UI.messagebox(message_texte, MB_OK)
elsif pages.length == 0 # Le modèle ne contient pas de scènes
message_texte = "Votre modèle ne contient aucune scène !\nOpération annulée"
message = UI.messagebox(message_texte, MB_OK)
else
# on désactive les transitions entre les scènes et une duree de scène à 0
showtransition = model.options.to_a[1]["ShowTransition"]
model.options.to_a[1]["ShowTransition"] = false
slidetime = model.options.to_a[2]["SlideTime"]
model.options.to_a[2]["SlideTime"] = 0.0
# On test l'existance du dossier portant le même nom que le fichier du modele
if File.directory?(new_sub_directory) == false
#on creer le répertoire avec le nom du modèle s'il n'éxiste pas
FileUtils.mkdir new_sub_directory
end
# On test l'existance du sous dossier qui recevra les images exportées
if File.directory?(new_directory) == false
#on creer le répertoire s'il n'éxiste pas
FileUtils.mkdir new_directory
end
# On récupère les dimensions de la premiere scène pour renseigner la boite de dialogue
page_0 = pages.selected_page = pages[0]
view_0 = model.active_view
largeur_0 = view_0.vpwidth
hauteur_0 = view_0.vpheight
# Initialisation de la boite de dialogue
prompts = [
"Conserver les proportions de la vue",
"Largeur de la vue",
"Hauteur de la vue",
"Anti Aliazing",
"Compression JPG",
"Transparent",
"Extension"
]
defaults = [
true,
largeur_0,
hauteur_0,
false,
0.9,
true,
"png"
]
listes = [
"true|false",
"",
"",
"true|false",
"",
"true|false",
"png|jpg"
]
titre = "Paramètres export"
input = UI.inputbox(prompts, defaults, listes, titre)
unless input == false # sauf si clic sur annuler
# On récupère les valeurs saisies dans la boite de dialogue
proportion_verou = (input[0]=="false" ? false : true)
width = input[1].to_i
height = input[2].to_i
options = {
:width => width,
:antialias => (input[3]=="false" ? false : true),
:compression => input[4],
:transparent => (input[5]=="false" ? false : true)
}
extension = input[6]
# Boucle sur chaque scène
pages.each do |page|
# On récupère les paramètres de durée et de transition de la page et on les reinitialises à 0
page_transition = page.transition_time
page.transition_time = -1.0
time = page.delay_time
page.delay_time = 0.0
# On active la scène
page_active = pages.selected_page=page
view = model.active_view
# Hauteur de l'image selon le paramètre de proportion
if proportion_verou == true
view_i = model.active_view
largeur_i = view_0.vpwidth.to_i
hauteur_i = view_0.vpheight.to_i
options[:height] = hauteur_i * width / largeur_i
else
options[:height] = height.to_i
end
# Construction de l'url d'enregistrement
name = "#{page.name}.#{extension}"
url = File.absolute_path(File.join(new_directory, name))
options[:filename] = url
# On enregistre l'image de la scène
image = view.write_image(options)
#On restaure le paramètre de durée et de transition de la page
page.transition_time = page_transition
page.delay_time = time
end # Fin de la boucle
message_texte = "Les scènes ont été exportées au format #{extension} dans le dossier\n#{new_directory}"
message = UI.messagebox(message_texte, MB_OK)
# On restaure les paramètres de durees et de transition de l'annimation du modèle
model.options.to_a[1]["ShowTransition"] = showtransition
model.options.to_a[2]["SlideTime"] = slidetime
end # Fin unless input == false
end # Fin if
Si c'est bon, on lui ajoutera une icône et une entrée de menu sous forme de plugin.
Pour le nom je pense à "SJ Batch Export Scenes"
tenrev aime ce message
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 969
Points : 2255
Age : 75
Localisation : Nord (59)
Emploi : Director of Myself
Bonjour @simjoubert ,
Le code fonctionne NICKEL. Un grand merci pour avoir pris en compte mon dernier souhait.
Et encore Bravo pour cette réalisation.
Je ne voudrais pas trop abuser, mais un petit point de détail pourrait être amélioré. Je m'explique :
Dans la boite de dialogue, si l'utilisateur souhaite maintenir les proportions de l'écran pour la résolution de sortie, et qu'il modifie une des dimensions (largeur ou hauteur) dans la boite de dialogue avant de valider l'opération, il faudrait que l'autre valeur soit automatiquement affecté par la mise à l'échelle de la première valeur modifiée.
Actuellement si on change une valeur (L ou H) l'autre n'est pas modifiée, mais si on valide après la modification d'une seule de ces valeurs, la mise à l'échelle est bien respectée en sortie.
Pour le titre du plugin, on te laisse le choix.
Perso, je trouve que ce titre "SJ Batch Export Scenes" ne fait pas mention aux vignettes qu'il produit.
Peut-être un titre comme "SJ_BatchExport2Thumbnail" pourrait être une suggestion ??
Note : je n'ai pas vérifié si le script acceptait les noms et accentuations "exotiques" pour les noms des scènes et les noms des fichiers SKP, pour la création des dossiers et sous-dossiers.
Je suppose que c'est OK.
Edit: Dans la version française, Dans la boite de dialogue, pour Conservation proportion et Antialising, "true et false" pourraient être remplacé par "Oui et Non"
JDD
Le code fonctionne NICKEL. Un grand merci pour avoir pris en compte mon dernier souhait.
Et encore Bravo pour cette réalisation.
Je ne voudrais pas trop abuser, mais un petit point de détail pourrait être amélioré. Je m'explique :
Dans la boite de dialogue, si l'utilisateur souhaite maintenir les proportions de l'écran pour la résolution de sortie, et qu'il modifie une des dimensions (largeur ou hauteur) dans la boite de dialogue avant de valider l'opération, il faudrait que l'autre valeur soit automatiquement affecté par la mise à l'échelle de la première valeur modifiée.
Actuellement si on change une valeur (L ou H) l'autre n'est pas modifiée, mais si on valide après la modification d'une seule de ces valeurs, la mise à l'échelle est bien respectée en sortie.
Pour le titre du plugin, on te laisse le choix.
Perso, je trouve que ce titre "SJ Batch Export Scenes" ne fait pas mention aux vignettes qu'il produit.
Peut-être un titre comme "SJ_BatchExport2Thumbnail" pourrait être une suggestion ??
Note : je n'ai pas vérifié si le script acceptait les noms et accentuations "exotiques" pour les noms des scènes et les noms des fichiers SKP, pour la création des dossiers et sous-dossiers.
Je suppose que c'est OK.
Edit: Dans la version française, Dans la boite de dialogue, pour Conservation proportion et Antialising, "true et false" pourraient être remplacé par "Oui et Non"
JDD
tenrev et simjoubert aiment ce message
Hello les amis,
Hello @JDD
J'ai mis en ligne le plugin qui se nommera
voici le lien vers la présentation sur un post dédié :
https://www.biblio3d.com/t14295-sketchup-plugins-sj-batch-export-scenes-to-thumbnails#170691
Hello @JDD
J'ai mis en ligne le plugin qui se nommera
SJ Batch Export Scenes To Thumbnails
https://www.biblio3d.com/t14295-sketchup-plugins-sj-batch-export-scenes-to-thumbnails#170691
JDD aime ce message
Sujets similaires
» [ SKETCHUP ruby ] Traduction du livre Automatic Sketchup: Creating 3-D Models in Ruby
» Vignettes Sketchup
» [ SKETCHUP plugins ] Ruby Console+
» [ SKETCHUP ruby ] Peux-ton réaliser des enregistrement de macro dans SketchUp ?
» [ SKETCHUP ruby ] Modification de l'Interface Graphique Utilisateur de SketchUp (GUI)
» Vignettes Sketchup
» [ SKETCHUP plugins ] Ruby Console+
» [ SKETCHUP ruby ] Peux-ton réaliser des enregistrement de macro dans SketchUp ?
» [ SKETCHUP ruby ] Modification de l'Interface Graphique Utilisateur de SketchUp (GUI)
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum