Code snippet : Différence entre versions

De Wiki-Cadlink
Sauter à la navigation Sauter à la recherche
(Page créée avec « == HOTSPOT == === 2D === ==== Boites englobantes ==== <pre> HOTSPOT2 0, 0 HOTSPOT2 a, 0 HOTSPOT2 0, b HOTSPOT2 a, b </pre> <pre> HOTSPOT2 -a/2, -b/2 HOTSPOT2 a/2, -b/2 HO... »)
 
Ligne 75 : Ligne 75 :
 
</pre>
 
</pre>
 
=== Orientation 2D ===
 
=== Orientation 2D ===
 +
<pre>
 +
MUL2 1 - 2 * SYMB_MIRRORED, 1
 +
</pre>
 +
<pre>
 +
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
 +
</pre>
 
==== Toujours horizontal ====
 
==== Toujours horizontal ====
 
<pre>
 
<pre>
rrr = request("View_Rotangle", "", viewRotation)
+
rot2 _totalRotate * (SYMB_MIRRORED - not(SYMB_MIRRORED))
MUL2 1 - 2 * SYMB_MIRRORED, 1
+
_nTrans = _nTrans + 1
ROT2 -SYMB_ROTANGLE * (SYMB_ROTANGLE <> 0) –viewRotation
 
 
</pre>
 
</pre>
 
==== Lisible ====
 
==== Lisible ====
 
<pre>
 
<pre>
MUL2 1 - 2 * SYMB_MIRRORED, 1
+
if (_totalRotate > (90 + EPS) & _totalRotate < (270 + EPS)) then
IF SYMB_ROTANGLE >= 45 AND SYMB_ROTANGLE <= 180 THEN
+
    rot2 180
ROT2 180
+
    _nTrans = _nTrans + 1
ELSE
+
endif
ROT2 0
 
ENDIF
 
 
</pre>
 
</pre>
 
== Script interface ==
 
== Script interface ==
Ligne 102 : Ligne 112 :
 
0, "Texte", 0,
 
0, "Texte", 0,
 
1, "Texte", 1
 
1, "Texte", 1
 +
</pre>
 +
=== Liste de polices ===
 +
<pre>
 +
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
 
</pre>
 
</pre>
 
== Macros ==
 
== Macros ==

Version du 7 octobre 2021 à 16:14

HOTSPOT

2D

Boites englobantes

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
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

Boites englobantes

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 sur étage supérieur

zz = REQUEST ("Story", "", index1, story_name)
zz = REQUEST ("Home_story", "", index2, home_story_name)

IF index1 = index2 OR (index1 > index2 AND aff_eta_sup) THEN

	!Symbole 2D

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 + EPS) & _totalRotate < (270 + 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

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,