Code snippet : Différence entre versions
Sauter à la navigation
Sauter à la recherche
(→Boites englobantes) |
(→Script interface) |
||
(10 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 28 : | Ligne 28 : | ||
HOTSPOT2 0, -1, unID, b, 3 : unID=unID+1 | HOTSPOT2 0, -1, unID, b, 3 : unID=unID+1 | ||
HOTSPOT2 0, b, unID, b, 2 : unID=unID+1 | HOTSPOT2 0, b, unID, b, 2 : unID=unID+1 | ||
+ | </pre> | ||
+ | ===== Sur les deux axes en même temps ===== | ||
+ | <pre> | ||
+ | HOTSPOT2 0, b, unID, a, 1+128 : unID=unID+1 | ||
+ | HOTSPOT2 -1, b, unID, a, 3 : unID=unID+1 | ||
+ | HOTSPOT2 a, b, unID, a, 2 : unID=unID+1 | ||
+ | HOTSPOT2 a, 0, unID, b, 1+128 : unID=unID+1 | ||
+ | HOTSPOT2 a, -1, unID, b, 3 : unID=unID+1 | ||
+ | HOTSPOT2 a, b, unID, b, 2 : unID=unID+1 | ||
</pre> | </pre> | ||
===== Rotation ===== | ===== Rotation ===== | ||
<pre> | <pre> | ||
− | HOTSPOT2 0, 0, unID, angle, 6 : unID=unID+1 | + | HOTSPOT2 0, 0, unID, angle, 6 : unID=unID+1 |
− | HOTSPOT2 A, 0, unID, angle, 4+128 | + | HOTSPOT2 A, 0, unID, angle, 4+128 : unID=unID+1 |
− | HOTSPOT2 A*COS(angle), A*SIN(angle), unID, angle, 5 | + | HOTSPOT2 A*COS(angle), A*SIN(angle), unID, angle, 5 : unID=unID+1 |
</pre> | </pre> | ||
+ | |||
===3D=== | ===3D=== | ||
==== Déplacements ==== | ==== Déplacements ==== | ||
Ligne 53 : | Ligne 63 : | ||
HOTSPOT 0, 0, 0, unID, ZZYZX, 1+128 : unID=unID+1 | HOTSPOT 0, 0, 0, unID, ZZYZX, 1+128 : unID=unID+1 | ||
HOTSPOT 0, 0, -1, unID, ZZYZX, 3 : unID=unID+1 | HOTSPOT 0, 0, -1, unID, ZZYZX, 3 : unID=unID+1 | ||
− | HOTSPOT 0, 0, ZZYZX, unID, ZZYZX, 2 | + | HOTSPOT 0, 0, ZZYZX, unID, ZZYZX, 2 : unID=unID+1 |
</pre> | </pre> | ||
+ | |||
== HOTLINE == | == HOTLINE == | ||
− | === | + | === Boite englobante === |
<pre> | <pre> | ||
HOTLINE2 0, 0, a, 0 | HOTLINE2 0, 0, a, 0 | ||
Ligne 63 : | Ligne 74 : | ||
HOTLINE2 0, 0, 0, b | HOTLINE2 0, 0, 0, b | ||
</pre> | </pre> | ||
+ | |||
== Gestion de l'affichage == | == Gestion de l'affichage == | ||
− | === Affichage | + | === Affichage différent en fonction de l'étage d'implantation === |
+ | * L'objet placé doit être paramétré en "Visible sur tous les étages" | ||
<pre> | <pre> | ||
− | zz = REQUEST ("Story", "", index1, story_name) | + | zz = REQUEST ("Story", "", index1, story_name) ! Étage affiché |
− | zz = REQUEST ("Home_story", "", index2, home_story_name) | + | zz = REQUEST ("Home_story", "", index2, home_story_name) ! Étage d'implantation de l'objet |
− | |||
− | |||
− | |||
− | |||
+ | IF index1 > index2 THEN | ||
+ | !Symbole 2D affiché au dessus de l'étage d'implantation | ||
+ | ENDIF | ||
+ | IF index1 = index2 THEN | ||
+ | !Symbole 2D affiché sur l'étage d'implantation | ||
+ | ENDIF | ||
+ | IF index1 < index2 THEN | ||
+ | !Symbole 2D affiché en dessous de l'étage d'implantation | ||
ENDIF | ENDIF | ||
</pre> | </pre> | ||
+ | |||
=== Orientation 2D === | === Orientation 2D === | ||
<pre> | <pre> | ||
Ligne 96 : | Ligne 114 : | ||
==== Lisible ==== | ==== Lisible ==== | ||
<pre> | <pre> | ||
− | + | IF (_totalRotate > (90 + 90*SYMB_MIRRORED + EPS) & _totalRotate < (270 + 90*SYMB_MIRRORED + EPS)) THEN | |
− | + | ROT2 180 | |
_nTrans = _nTrans + 1 | _nTrans = _nTrans + 1 | ||
− | + | ENDIF | |
</pre> | </pre> | ||
+ | |||
== Script interface == | == Script interface == | ||
<pre> | <pre> | ||
Ligne 122 : | Ligne 141 : | ||
0, 0, 1, "", fontnames | 0, 0, 1, "", fontnames | ||
</pre> | </pre> | ||
+ | On peut aussi récupérer la liste directement en utilisant ces noms de paramètres (type texte) : | ||
+ | * fontType | ||
+ | * fontType2 | ||
+ | * fontType3 | ||
+ | === Liste des images chargées en bibliothèques === | ||
+ | En utilisant ces noms de paramètres (type texte) : | ||
+ | * gs_picture_name | ||
+ | * gs_picture_name_2D | ||
+ | === Icones mise en forme de texte === | ||
+ | Pour avoir les icônes Gras, Italique, Souligné et Barré qui gère automatiquement la valeur du code pour mettre en forme un texte dans un style : | ||
+ | <pre>ui_textstyle_infield "styleTexte", 1+2+4+128, x, y, buttonWidth, buttonHeight, buttonOffsetX</pre> | ||
+ | ("styleTexte" est un paramètre de type entier) | ||
+ | <pre>define style name fontType, size, anchor, styleTexte</pre> | ||
+ | |||
== Macros == | == Macros == | ||
=== Suis-je une macro ? === | === Suis-je une macro ? === |
Version actuelle datée du 22 janvier 2024 à 14:27
Sommaire
HOTSPOT
2D
Boite englobante
HOTSPOT2 0, 0 HOTSPOT2 a, 0 HOTSPOT2 0, b HOTSPOT2 a, b
HOTSPOT2 -a/2, -b/2 HOTSPOT2 a/2, -b/2 HOTSPOT2 -a/2, b/2 HOTSPOT2 a/2, b/2
Déplacements
Sur l'axe X
HOTSPOT2 0, 0, unID, a, 1+128 : unID=unID+1 HOTSPOT2 -1, 0, unID, a, 3 : unID=unID+1 HOTSPOT2 a, 0, unID, a, 2 : unID=unID+1
Sur l'axe Y
HOTSPOT2 0, 0, unID, b, 1+128 : unID=unID+1 HOTSPOT2 0, -1, unID, b, 3 : unID=unID+1 HOTSPOT2 0, b, unID, b, 2 : unID=unID+1
Sur les deux axes en même temps
HOTSPOT2 0, b, unID, a, 1+128 : unID=unID+1 HOTSPOT2 -1, b, unID, a, 3 : unID=unID+1 HOTSPOT2 a, b, unID, a, 2 : unID=unID+1 HOTSPOT2 a, 0, unID, b, 1+128 : unID=unID+1 HOTSPOT2 a, -1, unID, b, 3 : unID=unID+1 HOTSPOT2 a, b, unID, b, 2 : unID=unID+1
Rotation
HOTSPOT2 0, 0, unID, angle, 6 : unID=unID+1 HOTSPOT2 A, 0, unID, angle, 4+128 : unID=unID+1 HOTSPOT2 A*COS(angle), A*SIN(angle), unID, angle, 5 : unID=unID+1
3D
Déplacements
Sur l'axe X
HOTSPOT 0, 0, 0, unID, a, 1+128 : unID=unID+1 HOTSPOT -1, 0, 0, unID, a, 3 : unID=unID+1 HOTSPOT a, 0, 0, unID, a, 2 : unID=unID+1
Sur l'axe Y
HOTSPOT 0, 0, 0, unID, b, 1+128 : unID=unID+1 HOTSPOT 0, -1, 0, unID, b, 3 : unID=unID+1 HOTSPOT 0, b, 0, unID, b, 2 : unID=unID+1
Sur l'axe Z
HOTSPOT 0, 0, 0, unID, ZZYZX, 1+128 : unID=unID+1 HOTSPOT 0, 0, -1, unID, ZZYZX, 3 : unID=unID+1 HOTSPOT 0, 0, ZZYZX, unID, ZZYZX, 2 : unID=unID+1
HOTLINE
Boite englobante
HOTLINE2 0, 0, a, 0 HOTLINE2 a, 0, a, b HOTLINE2 0, b, a, b HOTLINE2 0, 0, 0, b
Gestion de l'affichage
Affichage différent en fonction de l'étage d'implantation
- L'objet placé doit être paramétré en "Visible sur tous les étages"
zz = REQUEST ("Story", "", index1, story_name) ! Étage affiché zz = REQUEST ("Home_story", "", index2, home_story_name) ! Étage d'implantation de l'objet IF index1 > index2 THEN !Symbole 2D affiché au dessus de l'étage d'implantation ENDIF IF index1 = index2 THEN !Symbole 2D affiché sur l'étage d'implantation ENDIF IF index1 < index2 THEN !Symbole 2D affiché en dessous de l'étage d'implantation ENDIF
Orientation 2D
MUL2 1 - 2 * SYMB_MIRRORED, 1
r = request ("View_Rotangle", "", _angleViewRot) ! Actual rotation of the 2D symbol: _totalRotate = (SYMB_ROTANGLE + _angleViewRot) MOD 360 ! Count the number of transformations of the ! coordinate system in different cases _nTrans = 0
Toujours horizontal
rot2 _totalRotate * (SYMB_MIRRORED - not(SYMB_MIRRORED)) _nTrans = _nTrans + 1
Lisible
IF (_totalRotate > (90 + 90*SYMB_MIRRORED + EPS) & _totalRotate < (270 + 90*SYMB_MIRRORED + EPS)) THEN ROT2 180 _nTrans = _nTrans + 1 ENDIF
Script interface
ui_dialog `Paramètres personnalisés`,444,266
Checkbox (texte cliquable)
ui_infield{3} "bool-parameter", 240, 30, 110, 15, 7, "", 2, 1, 20, 20, 20, 20, 0, "Texte", 0, 1, "Texte", 1
Liste de polices
dim fontnames[] n = REQUEST ("FONTNAMES_LIST", "", fontnames) ui_outfield `Police`, 10, 14, 100, 15 ui_custom_popup_infield "sampleName", 115, 10, 150, 20, 0, 0, 1, "", fontnames
On peut aussi récupérer la liste directement en utilisant ces noms de paramètres (type texte) :
- fontType
- fontType2
- fontType3
Liste des images chargées en bibliothèques
En utilisant ces noms de paramètres (type texte) :
- gs_picture_name
- gs_picture_name_2D
Icones mise en forme de texte
Pour avoir les icônes Gras, Italique, Souligné et Barré qui gère automatiquement la valeur du code pour mettre en forme un texte dans un style :
ui_textstyle_infield "styleTexte", 1+2+4+128, x, y, buttonWidth, buttonHeight, buttonOffsetX
("styleTexte" est un paramètre de type entier)
define style name fontType, size, anchor, styleTexte
Macros
Suis-je une macro ?
nameM="" sts=REQUEST("name_of_main","",nameM) IF NOT(nameM="") THEN PRINT nameM+" is CALLing me!" ELSE PRINT "I am free!" ENDIF
Mathématiques
Comparaisons
ABS( A - B )>EPS ! A<>B ABS( A - B )<EPS ! A=B A - B < EPS ! A<=B A - B < -EPS ! A<B B - A > EPS ! A<B B - A < EPS ! A>=B B - A < -EPS ! A>B A - B > EPS ! A>B
Trucs & astuces divers
Transformer POLY_B{5} en PRISM_ à l'aide d'une recherche REGEX
Dans un éditeur de texte supportant les recherches REGEX (Regular Expression) :
Chercher : (?-s)^\t*poly2_b\{5\} *([0-9]+),(?s).*? 0, $
Remplacer par : PRISM_ \1, b,