Ton bloc notes
Derniers sujets
» [ SKETCHUP plugins ] Les bon plans Black Friday 2024
par simjoubert Ven 22 Nov 2024 - 16:19
» [ TWINMOTION ] Unreal Engine déménage sur Fab - DataSmith & Archicad
par simjoubert Ven 22 Nov 2024 - 16:04
» [ SKETCHUP généralité ] Tête de pilastre
par jerryvento Ven 22 Nov 2024 - 8:52
» [ CHALLENGE 2024 ] résultats du challenge
par Allansens Ven 22 Nov 2024 - 8:42
» [ ARCHICAD ] Paramétrage des coupes sur Archicad
par AK40Cess Jeu 21 Nov 2024 - 14:12
» [ FORUM ] astuce pour insérer facilement un tableau sur le forum
par tenrev Mer 20 Nov 2024 - 9:12
» [ SKETCHUP plugins ] une barre d’outils perso
par tenrev Lun 18 Nov 2024 - 15:05
» [ SKETCHUP généralité ] Orienter 1 Face, 1 Profil Normal (Perpendiculaire) à 1 Arête, 1 Trajectoire
par jerryvento Lun 18 Nov 2024 - 14:47
» [ SKETCHUP généralité ] Modéliser facilement 1 spirale en moins de 40 secondes
par jerryvento Lun 18 Nov 2024 - 14:47
» [ SKETCHUP généralité ] Modélise 1 Forme Hélicoïdale, en forme de spirale : main courante, rampe d'accès voitures...
par jerryvento Lun 18 Nov 2024 - 14:46
» [ SKETCHUP tutos ] Orienter 1 Face, 1 Profil Normal (Perpendiculaire) à 1 Arête, 1 Trajectoire
par jerryvento Lun 18 Nov 2024 - 14:45
» [ SKETCHUP tutos ] Modéliser facilement 1 spirale en moins de 40 secondes
par jerryvento Lun 18 Nov 2024 - 14:44
» [ SKETCHUP tutos ] Modélise 1 Forme Hélicoïdale, en forme de spirale : main courante, rampe d'accès voitures...
par jerryvento Lun 18 Nov 2024 - 14:43
» ColorMaker par Didier Bur[ SKETCHUP plugins ]
par JDD Dim 17 Nov 2024 - 20:56
» [ ARCHICAD ] Plus de format *atl dans Archicad
par Coulou Jeu 14 Nov 2024 - 8:26
» [ SKETCHUP tutos ] Créer des Bibliothèques et des livres aléatoires Facilement (2 Méthodes!)
par tenrev Mar 12 Nov 2024 - 11:31
» [ CHALLENGE 2024 ] les images finales du challenge
par tenrev Lun 11 Nov 2024 - 15:35
» [ SKETCHUP composants dynamiques ] Formule IF
par Samuel MATHIEU Jeu 7 Nov 2024 - 21:12
» [ Challenge 2024] cHallenge archjtexture exterieur ou paysagiste-vick-sketchup-enscape
par vick Jeu 7 Nov 2024 - 10:23
» [ SKETCHUP vray ]
par tenrev Mar 5 Nov 2024 - 21:19
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste- Gaspard Hauser - Sketchup - D5 render
par tenrev Mar 5 Nov 2024 - 10:22
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - JDD - SketchUp - Enscape
par tenrev Mar 5 Nov 2024 - 10:10
» [ ARCHICAD ] Murs paramétriques
par Coulou Lun 28 Oct 2024 - 10:28
» [ SKETCHUP généralité ] Aide pour SKP 2017
par PEGASE Sam 26 Oct 2024 - 18:36
» [ ARCHICAD ] Ajouter du lambris sur un mur
par Coulou Jeu 24 Oct 2024 - 10:43
» [ SKETCHUP généralité ] 1 Citrouille à imprimer pour Halloween
par jerryvento Jeu 24 Oct 2024 - 8:13
» [ SKETCHUP tutos ] 1 Citrouille à imprimer pour Halloween
par jerryvento Jeu 24 Oct 2024 - 8:11
» [ D5_RENDER] Petit exemple "hors sujet" ... D5
par Gaspard Hauser Mar 22 Oct 2024 - 19:59
» [ MATOS INFORM. ] [WINDOWS] Miniatures de prévisualisation pour les fichiers de modèle 3D au format .OBJ, .FBX, .STL, .3DS et +
par Gaspard Hauser Mar 22 Oct 2024 - 19:49
» [ SKETCHUP Layout ] Symboles Électriques sur Layout
par JDD Jeu 17 Oct 2024 - 9:44
» [ ARCHICAD ] gardes corps et profils complexe ?
par Christophe Fortineau Lun 14 Oct 2024 - 12:10
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - allansens - cinema 4D
par Allansens Sam 12 Oct 2024 - 13:53
» [ ARTLANTIS ] Ca donne envie !
par Gaspard Hauser Jeu 10 Oct 2024 - 10:00
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - AK40Cess - Archicad-Twinmotion
par Coulou Mar 8 Oct 2024 - 11:53
» [ TWINMOTION ] Unreal Engine déménage sur Fab - Assets de Megascan
par JDD Lun 7 Oct 2024 - 21:52
par simjoubert Ven 22 Nov 2024 - 16:19
» [ TWINMOTION ] Unreal Engine déménage sur Fab - DataSmith & Archicad
par simjoubert Ven 22 Nov 2024 - 16:04
» [ SKETCHUP généralité ] Tête de pilastre
par jerryvento Ven 22 Nov 2024 - 8:52
» [ CHALLENGE 2024 ] résultats du challenge
par Allansens Ven 22 Nov 2024 - 8:42
» [ ARCHICAD ] Paramétrage des coupes sur Archicad
par AK40Cess Jeu 21 Nov 2024 - 14:12
» [ FORUM ] astuce pour insérer facilement un tableau sur le forum
par tenrev Mer 20 Nov 2024 - 9:12
» [ SKETCHUP plugins ] une barre d’outils perso
par tenrev Lun 18 Nov 2024 - 15:05
» [ SKETCHUP généralité ] Orienter 1 Face, 1 Profil Normal (Perpendiculaire) à 1 Arête, 1 Trajectoire
par jerryvento Lun 18 Nov 2024 - 14:47
» [ SKETCHUP généralité ] Modéliser facilement 1 spirale en moins de 40 secondes
par jerryvento Lun 18 Nov 2024 - 14:47
» [ SKETCHUP généralité ] Modélise 1 Forme Hélicoïdale, en forme de spirale : main courante, rampe d'accès voitures...
par jerryvento Lun 18 Nov 2024 - 14:46
» [ SKETCHUP tutos ] Orienter 1 Face, 1 Profil Normal (Perpendiculaire) à 1 Arête, 1 Trajectoire
par jerryvento Lun 18 Nov 2024 - 14:45
» [ SKETCHUP tutos ] Modéliser facilement 1 spirale en moins de 40 secondes
par jerryvento Lun 18 Nov 2024 - 14:44
» [ SKETCHUP tutos ] Modélise 1 Forme Hélicoïdale, en forme de spirale : main courante, rampe d'accès voitures...
par jerryvento Lun 18 Nov 2024 - 14:43
» ColorMaker par Didier Bur[ SKETCHUP plugins ]
par JDD Dim 17 Nov 2024 - 20:56
» [ ARCHICAD ] Plus de format *atl dans Archicad
par Coulou Jeu 14 Nov 2024 - 8:26
» [ SKETCHUP tutos ] Créer des Bibliothèques et des livres aléatoires Facilement (2 Méthodes!)
par tenrev Mar 12 Nov 2024 - 11:31
» [ CHALLENGE 2024 ] les images finales du challenge
par tenrev Lun 11 Nov 2024 - 15:35
» [ SKETCHUP composants dynamiques ] Formule IF
par Samuel MATHIEU Jeu 7 Nov 2024 - 21:12
» [ Challenge 2024] cHallenge archjtexture exterieur ou paysagiste-vick-sketchup-enscape
par vick Jeu 7 Nov 2024 - 10:23
» [ SKETCHUP vray ]
par tenrev Mar 5 Nov 2024 - 21:19
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste- Gaspard Hauser - Sketchup - D5 render
par tenrev Mar 5 Nov 2024 - 10:22
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - JDD - SketchUp - Enscape
par tenrev Mar 5 Nov 2024 - 10:10
» [ ARCHICAD ] Murs paramétriques
par Coulou Lun 28 Oct 2024 - 10:28
» [ SKETCHUP généralité ] Aide pour SKP 2017
par PEGASE Sam 26 Oct 2024 - 18:36
» [ ARCHICAD ] Ajouter du lambris sur un mur
par Coulou Jeu 24 Oct 2024 - 10:43
» [ SKETCHUP généralité ] 1 Citrouille à imprimer pour Halloween
par jerryvento Jeu 24 Oct 2024 - 8:13
» [ SKETCHUP tutos ] 1 Citrouille à imprimer pour Halloween
par jerryvento Jeu 24 Oct 2024 - 8:11
» [ D5_RENDER] Petit exemple "hors sujet" ... D5
par Gaspard Hauser Mar 22 Oct 2024 - 19:59
» [ MATOS INFORM. ] [WINDOWS] Miniatures de prévisualisation pour les fichiers de modèle 3D au format .OBJ, .FBX, .STL, .3DS et +
par Gaspard Hauser Mar 22 Oct 2024 - 19:49
» [ SKETCHUP Layout ] Symboles Électriques sur Layout
par JDD Jeu 17 Oct 2024 - 9:44
» [ ARCHICAD ] gardes corps et profils complexe ?
par Christophe Fortineau Lun 14 Oct 2024 - 12:10
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - allansens - cinema 4D
par Allansens Sam 12 Oct 2024 - 13:53
» [ ARTLANTIS ] Ca donne envie !
par Gaspard Hauser Jeu 10 Oct 2024 - 10:00
» [ CHALLENGE 2024 ] Challenge architecture extérieure ou paysagiste - AK40Cess - Archicad-Twinmotion
par Coulou Mar 8 Oct 2024 - 11:53
» [ TWINMOTION ] Unreal Engine déménage sur Fab - Assets de Megascan
par JDD Lun 7 Oct 2024 - 21:52
formulaire/diaporama
chaine sketchup.tv
Serveur Discord
[ 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 : 1143
Points : 2493
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/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1143
Points : 2493
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/Salut Invité merci de consulter mon profil/PC fixe Rizen 9 3950 cg RTX3080-64 go de ram DDssd 1To/1 PC portable Lenovo 16'' w11 i7 32go-CG RTX3070 8go/1casque meta Quest 3/1 casque VR Occulus Rift /1 PC portable Dell sous Linux Ubuntu-1 pc portable HP sous chromebook/Raspberry Pi - Arduino / Modélisation :Sketchup-Rhino-Pconplanner-Rendu:Enscape-Keyshot-Unreal Engine-Twinmotion-Autres:Photoshop-Indesign-After Effect-Première pro-Intelligence artificielle -Chatgpt+-Midjourney-Suno-Elevenlabs-Canva
- JDDV.I.P.
- Humeur : Cool, œil de lynx à pattes de velours
Date d'inscription : 21/05/2021
Nombre de messages : 1143
Points : 2493
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 : 1143
Points : 2493
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 : 1143
Points : 2493
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 : 1143
Points : 2493
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 : 1143
Points : 2493
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 : 1143
Points : 2493
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
- Contenu sponsorisé
Sujets similaires
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