<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://wiki.archi-cadlink.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PierreFernandez</id>
	<title>Wiki-Cadlink - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.archi-cadlink.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PierreFernandez"/>
	<link rel="alternate" type="text/html" href="http://wiki.archi-cadlink.fr/index.php?title=Sp%C3%A9cial:Contributions/PierreFernandez"/>
	<updated>2026-05-07T22:00:18Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://wiki.archi-cadlink.fr/index.php?title=Code_snippet&amp;diff=14</id>
		<title>Code snippet</title>
		<link rel="alternate" type="text/html" href="http://wiki.archi-cadlink.fr/index.php?title=Code_snippet&amp;diff=14"/>
		<updated>2021-10-11T16:52:49Z</updated>

		<summary type="html">&lt;p&gt;PierreFernandez : /* Déplacements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HOTSPOT ==&lt;br /&gt;
=== 2D ===&lt;br /&gt;
==== Boite englobante ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2 0, 0&lt;br /&gt;
HOTSPOT2 a, 0&lt;br /&gt;
HOTSPOT2 0, b&lt;br /&gt;
HOTSPOT2 a, b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2 -a/2, -b/2&lt;br /&gt;
HOTSPOT2 a/2, -b/2&lt;br /&gt;
HOTSPOT2 -a/2, b/2&lt;br /&gt;
HOTSPOT2 a/2, b/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Déplacements ====&lt;br /&gt;
===== Sur l'axe X =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2  0, 0, unID, a, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT2 -1, 0, unID, a, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT2  a, 0, unID, a, 2		: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Sur l'axe Y =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2 0,  0, unID, b, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT2 0,	-1, unID, b, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT2 0,  b, unID, b, 2		: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Sur les deux axes en même temps =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2  0,  b, unID, a, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT2 -1,  b, unID, a, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT2  a,  b, unID, a, 2		: unID=unID+1&lt;br /&gt;
HOTSPOT2  a,  0, unID, b, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT2  a, -1, unID, b, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT2  a,  b, unID, b, 2		: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Rotation =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT2  0, 0, unID, angle, 6							: unID=unID+1&lt;br /&gt;
HOTSPOT2  A, 0, unID, angle, 4+128						: unID=unID+1&lt;br /&gt;
HOTSPOT2  A*COS(angle), A*SIN(angle), unID, angle, 5	: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===3D===&lt;br /&gt;
==== Déplacements ====&lt;br /&gt;
===== Sur l'axe X =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT  0, 0, 0, unID, a, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT -1, 0, 0, unID, a, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT  a, 0, 0, unID, a, 2		: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Sur l'axe Y =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT 0,  0,	0, unID, b, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT 0,	-1,	0, unID, b, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT 0,  b,	0, unID, b, 2		: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Sur l'axe Z =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTSPOT 0, 0,  0, unID, ZZYZX, 1+128	: unID=unID+1&lt;br /&gt;
HOTSPOT 0, 0,	-1, unID, ZZYZX, 3		: unID=unID+1&lt;br /&gt;
HOTSPOT 0, 0,  ZZYZX, unID, ZZYZX, 2	: unID=unID+1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HOTLINE ==&lt;br /&gt;
=== Boite englobante ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HOTLINE2 0, 0, a, 0&lt;br /&gt;
HOTLINE2 a, 0, a, b&lt;br /&gt;
HOTLINE2 0, b, a, b&lt;br /&gt;
HOTLINE2 0, 0, 0, b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gestion de l'affichage ==&lt;br /&gt;
=== Affichage sur étage supérieur ===&lt;br /&gt;
* L'objet placé doit être paramétré en &amp;quot;Visible sur tous les étages&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zz = REQUEST (&amp;quot;Story&amp;quot;, &amp;quot;&amp;quot;, index1, story_name)&lt;br /&gt;
zz = REQUEST (&amp;quot;Home_story&amp;quot;, &amp;quot;&amp;quot;, index2, home_story_name)&lt;br /&gt;
&lt;br /&gt;
IF index1 &amp;gt;= index2 THEN&lt;br /&gt;
&lt;br /&gt;
	!Symbole 2D&lt;br /&gt;
&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Orientation 2D ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MUL2 1 - 2 * SYMB_MIRRORED, 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r = request (&amp;quot;View_Rotangle&amp;quot;, &amp;quot;&amp;quot;, _angleViewRot)&lt;br /&gt;
&lt;br /&gt;
! Actual rotation of the 2D symbol:	&lt;br /&gt;
_totalRotate	= (SYMB_ROTANGLE + _angleViewRot) MOD 360&lt;br /&gt;
&lt;br /&gt;
! Count the number of transformations of the &lt;br /&gt;
! coordinate system in different cases&lt;br /&gt;
_nTrans = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Toujours horizontal ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rot2 _totalRotate * (SYMB_MIRRORED - not(SYMB_MIRRORED))&lt;br /&gt;
_nTrans = _nTrans + 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Lisible ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (_totalRotate &amp;gt; (90 + EPS) &amp;amp; _totalRotate &amp;lt; (270 + EPS)) then&lt;br /&gt;
    rot2 180&lt;br /&gt;
    _nTrans = _nTrans + 1&lt;br /&gt;
endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Script interface ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ui_dialog `Paramètres personnalisés`,444,266&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Checkbox (texte cliquable) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ui_infield{3} &amp;quot;bool-parameter&amp;quot;, 240, 30, 110, 15,&lt;br /&gt;
7, &amp;quot;&amp;quot;,&lt;br /&gt;
2,&lt;br /&gt;
1, 20, 20, 20, 20,&lt;br /&gt;
0, &amp;quot;Texte&amp;quot;, 0,&lt;br /&gt;
1, &amp;quot;Texte&amp;quot;, 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Liste de polices ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dim fontnames[]&lt;br /&gt;
n = REQUEST (&amp;quot;FONTNAMES_LIST&amp;quot;, &amp;quot;&amp;quot;, fontnames)&lt;br /&gt;
ui_outfield `Police`,		10, 14, 100, 15 &lt;br /&gt;
ui_custom_popup_infield &amp;quot;sampleName&amp;quot;, 	115, 10, 150, 20,&lt;br /&gt;
	0, 0, 1, &amp;quot;&amp;quot;, fontnames&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Macros ==&lt;br /&gt;
=== Suis-je une macro ? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameM=&amp;quot;&amp;quot;&lt;br /&gt;
sts=REQUEST(&amp;quot;name_of_main&amp;quot;,&amp;quot;&amp;quot;,nameM)&lt;br /&gt;
IF NOT(nameM=&amp;quot;&amp;quot;) THEN&lt;br /&gt;
  PRINT nameM+&amp;quot; is CALLing me!&amp;quot;&lt;br /&gt;
ELSE&lt;br /&gt;
  PRINT &amp;quot;I am free!&amp;quot;&lt;br /&gt;
ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Mathématiques ==&lt;br /&gt;
=== Comparaisons ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ABS( A - B )&amp;gt;EPS   ! A&amp;lt;&amp;gt;B&lt;br /&gt;
ABS( A - B )&amp;lt;EPS   ! A=B&lt;br /&gt;
A - B &amp;lt; EPS        ! A&amp;lt;=B&lt;br /&gt;
A - B &amp;lt; -EPS       ! A&amp;lt;B&lt;br /&gt;
B - A &amp;gt; EPS        ! A&amp;lt;B&lt;br /&gt;
B - A &amp;lt; EPS        ! A&amp;gt;=B&lt;br /&gt;
B - A &amp;lt; -EPS       ! A&amp;gt;B&lt;br /&gt;
A - B &amp;gt; EPS        ! A&amp;gt;B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Trucs &amp;amp; astuces divers ==&lt;br /&gt;
=== Transformer POLY_B{5} en PRISM_ à l'aide d'une recherche REGEX ===&lt;br /&gt;
Dans un éditeur de texte supportant les recherches REGEX (Regular Expression) :&lt;br /&gt;
&lt;br /&gt;
Chercher : &amp;lt;code&amp;gt;(?-s)^\t*poly2_b\{5\} *([0-9]+),(?s).*? 0, $&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remplacer par : &amp;lt;code&amp;gt;PRISM_ \1, b,&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>PierreFernandez</name></author>
		
	</entry>
</feed>