Forum: Platinen [EAGLE] ULP Textfeld ändern


von Andi P. (blues)


Lesenswert?

Hi
Entweder such ich falsch, oder es gibt nicht viel dazu.
Ich möchte ein BOARD mit einem ULP duchgehen und ein bestimmtes Textfeld 
den Inhalt ändern.

Hintergrund: Ich habe Textfelder mit ">DRAWING_NAME" und möchte dies 
erhalten, wenn ich Einzelboards in einen Nutzen zusammen kopiere (vorher 
mit panalize.ulp bearbeitet). D.h. ">DRAWING_NAME" muss durch den 
Filenamen als Text ersetzt werden.

Ich finde in einem ULP diese Textfelder mit dem Filenamen als Inhalt.
(Jedoch im Hintergrund steht eigentlich, wie gesagt, ">DRAWING_NAME" 
drinn.)
1
  .....
2
3
string FileAndExt = filesetext(filename(B.name),"");
4
string cmd=" change font vector;\n";
5
cmd +=" change ratio 15;\n";
6
    
7
    
8
B.texts(T) {
9
   if (T.value == FileAndExt ) {
10
.......
11
   exit(cmd)

Ich kann auch neue Textfelder anlegen, aber wie kann ich ein bestehendes 
Textfeld ansprechen und ändern?

Danke

von Andi P. (blues)


Lesenswert?

Gefunden.

Ich wusste nicht, das ich für z.B. CHANGE ein bestehendes Textfeld "nur" 
über die Koordinaten ansprechen kann. Im Nachhinein eh klar.
1
string FileAndExt = filesetext(filename(B.name),"");
2
        B.texts(T) {
3
                if (T.value == FileAndExt ) {
4
                    text_change_counter++;
5
                    string tmpString = "";
6
                    sprintf(tmpString,"CHANGE TEXT %s (%f %f);\n",
7
                        FileAndExt, u2mil(T.x), u2mil(T.y));
8
                    cmd += tmpString;

von Benjamin K. (bentschie)


Lesenswert?

Hallo Andi,

ja das geht prinzipiell so. Bitte beachte, das letzlich deine Befehle 
(im String cmd) wie Nutzereingaben abgearbeitet werden. Der Fehler der 
dir passiern kann, ist das du den falschen Text editierts, wenn zwei 
Texte die gleichen Koordinaten haben.

Benjamin

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.