Ton bloc notes
Derniers sujets
» [ SKETCHUP généralité ] Tête de pilastre
par JDD Aujourd'hui à 16:06
» [ ARCHICAD ] Paramétrage des coupes sur Archicad
par AK40Cess Aujourd'hui à 14:12
» [ CHALLENGE 2024 ] résultats du challenge
par AK40Cess Hier à 13:27
» [ FORUM ] astuce pour insérer facilement un tableau sur le forum
par tenrev Hier à 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
» [ TWINMOTION ] Unreal Engine déménage sur Fab - DataSmith & Archicad
par Coulou Jeu 10 Oct 2024 - 9:03
» [ 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
» [ CHALLENGE ARCHITECTURE EXTERIEURE OU PAYSAGISTE ] Démarrage du challenge 2024 - les régles
par tenrev Jeu 3 Oct 2024 - 14:58
par JDD Aujourd'hui à 16:06
» [ ARCHICAD ] Paramétrage des coupes sur Archicad
par AK40Cess Aujourd'hui à 14:12
» [ CHALLENGE 2024 ] résultats du challenge
par AK40Cess Hier à 13:27
» [ FORUM ] astuce pour insérer facilement un tableau sur le forum
par tenrev Hier à 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
» [ TWINMOTION ] Unreal Engine déménage sur Fab - DataSmith & Archicad
par Coulou Jeu 10 Oct 2024 - 9:03
» [ 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
» [ CHALLENGE ARCHITECTURE EXTERIEURE OU PAYSAGISTE ] Démarrage du challenge 2024 - les régles
par tenrev Jeu 3 Oct 2024 - 14:58
formulaire/diaporama
chaine sketchup.tv
Serveur Discord
METHODE - Chapitre 1 - ESPACEMENTS
Page 1 sur 1 • Partagez
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
Quelques infos simples pour écrire ou lire un script Ruby pour Sketchup:
Garder l'esprit d'une écriture simple:
Un Script se gère comme un Scénario:
--> imaginer la structure d'une histoire cohérente,
--> n'écrire qu'une fois la structure bien maitrisée.
Penser "en Bon sens":
--> mieux vaut sa propre règle cohérente qu'une mauvaise adaptation d'une règle existante.
Mieux lire les scripts d'autres rédacteurs
--> s'adapter à la logique du rédacteur plutôt que de "coller" le code à vos méthodes personnelles.
Restrictions-limitations:
La syntaxe du langage exige "Orthographe" et "Grammaire" strictes.
Les Objets répétitifs sont strictement encadrés (classes-fonctions-énumérateurs-conditionnels)
La plupart des erreurs de script sont dues à des fautes de syntaxe et/ou fonctions mal encadrées.
Ces erreurs obligent à des opérations fastidieuses de recherche du défaut et de rectification du script ( appelé débuggage ).
De plus, du fait de la désynchronisation générée par l'erreur, souvent les alertes n'indiquent que là où commence l'erreur d'exécution (c'est à dire la conséquence) et non pas la cause.
On peut dès lors comprendre qu'une écriture brouillonne empirera la problématique.
C'est pour celà que des outils facilitant l'écriture deviennent rapidement indispensables.
Mais les quelques règles de mise en forme suivantes vous aideront aussi pour une mise au point rapide de votre Plugin.
Garder l'esprit d'une écriture simple:
Un Script se gère comme un Scénario:
--> imaginer la structure d'une histoire cohérente,
--> n'écrire qu'une fois la structure bien maitrisée.
Penser "en Bon sens":
--> mieux vaut sa propre règle cohérente qu'une mauvaise adaptation d'une règle existante.
Mieux lire les scripts d'autres rédacteurs
--> s'adapter à la logique du rédacteur plutôt que de "coller" le code à vos méthodes personnelles.
Restrictions-limitations:
La syntaxe du langage exige "Orthographe" et "Grammaire" strictes.
Les Objets répétitifs sont strictement encadrés (classes-fonctions-énumérateurs-conditionnels)
La plupart des erreurs de script sont dues à des fautes de syntaxe et/ou fonctions mal encadrées.
Ces erreurs obligent à des opérations fastidieuses de recherche du défaut et de rectification du script ( appelé débuggage ).
De plus, du fait de la désynchronisation générée par l'erreur, souvent les alertes n'indiquent que là où commence l'erreur d'exécution (c'est à dire la conséquence) et non pas la cause.
On peut dès lors comprendre qu'une écriture brouillonne empirera la problématique.
C'est pour celà que des outils facilitant l'écriture deviennent rapidement indispensables.
Mais les quelques règles de mise en forme suivantes vous aideront aussi pour une mise au point rapide de votre Plugin.
Dernière édition par jojo2 le Mar 2 Fév 2010 - 18:43, édité 1 fois
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
- Connaissance éditeur de texte basique.
- Rudiments de programmation langage objet.
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
La plupart du temps, les plugins Sketchup sont structurés de cette façon:
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
Outil: Utilisation des Paragraphes, Sauts de Ligne.
Un peu comme une rédaction, on formatte les paragraphes par sujet.
On sépare d'une ligne blanche, les commandes indépendantes entre elles.
Par contre, on regroupe les actions communes entre elles.
Les imbrications créent elles-mêmes un pseudo interlignage, il est donc souvent inutile de créer des lignes supplémentaires.
Exemple:
Je prend une cigarette. ---------------))
Je l'allume. -------------------------------))) actions communes à un objet ou variable
Tant que cigarette non terminée ----))
J'aspire une bouffée. -------------------))
Boucle -------------------------------------))
----------------------------------------------) séparateur ligne blanche
Je remonte l'escalier --------------------) nouvel objet, autre action ou variable sans rapport avec le précédent
Un peu comme une rédaction, on formatte les paragraphes par sujet.
On sépare d'une ligne blanche, les commandes indépendantes entre elles.
Par contre, on regroupe les actions communes entre elles.
Les imbrications créent elles-mêmes un pseudo interlignage, il est donc souvent inutile de créer des lignes supplémentaires.
Exemple:
Je prend une cigarette. ---------------))
Je l'allume. -------------------------------))) actions communes à un objet ou variable
Tant que cigarette non terminée ----))
J'aspire une bouffée. -------------------))
Boucle -------------------------------------))
----------------------------------------------) séparateur ligne blanche
Je remonte l'escalier --------------------) nouvel objet, autre action ou variable sans rapport avec le précédent
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
Outil: Utilisation des Tabulations ou espaces réguliers de x blancs.
Les boucles, itérations, conditions et fonctions s'imbriquent entre elles.
On utilise des tabulations successives pour symboliser l'imbrication: le contenant à gauche et le contenu à droite.
Exemple:
Astuce: la lecture des blocs est facilitée en utilisant une règle ou une feuille de papier disposée verticalement par rapport aux imbrications.
Les boucles, itérations, conditions et fonctions s'imbriquent entre elles.
On utilise des tabulations successives pour symboliser l'imbrication: le contenant à gauche et le contenu à droite.
Exemple:
- Code:
def unTruc
if toto <> tata
if tata > tutu
tutu = toto
else
toto = tutu
end
else
tutu = tata
end
end # unTruc
Astuce: la lecture des blocs est facilitée en utilisant une règle ou une feuille de papier disposée verticalement par rapport aux imbrications.
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
Ici, nous vous proposons une présentation améliorée du zonage.
(Sans rentrer dans les détails, elle prendra toute son importance avec le debuggage).
Il suffira de décaler chaque ligne de la zone Code d'une ou deux tabulations vers la droite.
(Sans rentrer dans les détails, elle prendra toute son importance avec le debuggage).
Il suffira de décaler chaque ligne de la zone Code d'une ou deux tabulations vers la droite.
- jojo2modérateur
- Date d'inscription : 14/11/2009
Nombre de messages : 135
Points : 170
BIEN:
PAS BIEN:
- Code:
if épouse.contente?
# en profiter, ça ne durera pas...
faire.fête "exceptionnelle"
else
if épouse.rale?
afficher "comme d'habitude"
courir.loin(Maximum)
if tropFatigué?
etat = not épouse.contente?
if not savoir.pourquoi (etat) # normal
$présent = "fleurs"
else # grave
$présent = "bijou"
end
aller.zone Marchands
acheter $présent
else
afficher "ca va venir..."
attendre 300s
re-tester "tropfatigué"
end
aller.maison
s_aplatir_devant épouse
# s_excuser et offrir sont des routines système
# à sens unique: toujours époux -> épouse
s_excuser Platement
offrir $présent
while épouse.rale?
écouter_reproches
# oui, oui encore une... paramètres inutiles
end
aller.cuisine # retour à la normale
ouvrir.bière "noNeedGlass"
aller.séjour
allumer.tv
se_vautrer.divan
buller "grave"
end
end
PAS BIEN:
- Code:
if épouse.contente?
aller.rencontrer ["copains", "copines"]
else
if épouse.rale?
# Elle l'aura bien cherché
tirer.épouse Par_les_Cheveux # Astuce ;)
jeter_dehors épouse
aller.cuisine # retour à la normale
ouvrir.bière "noNeedGlass"
aller.séjour
allumer.tv
se_vautrer.divan
while épouse.rale?
buller "grave"
end
end
- 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