Forum: Platinen Altium, Skript, PCB nach Modifikation neu zeichnen lassen


von M.A. S. (mse2)


Lesenswert?

Ich versuche gerade, in AD20 den Stand zu erreichen, den ich zuvor in
AD17 hatte: dort hatte ich mir vor langer Zeit Skripte gebaut, die mir
entweder alle Designators ein- und alle Comments ausschalten oder
umgekehrt.

Die alten Skripte tun auf AD20 nicht, was sie sollen. Nach einigem
Herumspielen habe ich gemerkt, dass die entsprechenden Eingenschaften
der Texte wohl durchaus geändert werden, nur leider werden diese
Änderungen am Bildschirm nicht sichtbar. Sie werden erst dann sichtbar,
wenn man z.B. einen dieser Texte versucht, zu verschieben. Dann wird er
sichtbar (und der andere wird unsichtbar).

Es funktioniert auch, wenn man das ganze Board selektiert. Dann sehen
die Texte so aus, wie erwartet.

Weiß zufällig jemand hier in der Runde, wie man ein PCB-Redraw unter
AD20 hinbekommt?

Ich war so frech, zu hoffen, irgend wer von Altium könne mir diese Frage
schnell per Chat beantworten.
Fehlanzeige: "kein Support für Skripte, ich solle doch die Community
fragen"..

: Bearbeitet durch User
von M.A. S. (mse2)


Lesenswert?

// Refresh PCB screen
Client.SendMessage('PCB:Zoom', 'Action=Redraw' , 255, 
Client.CurrentView);

In meinem alten Skript steht es so:

// Board neu Zeichnen, damit man die Veränderung auch sieht
ResetParameters;
AddStringParameter('Action','Redraw');
RunProcess('PCB:Zoom');

Nichts davon funktioniert heute, in AD20.

von M.A. S. (mse2)


Lesenswert?

Ich hatte gestern noch einen Case beim Altium Support geöffnet, habe 
inzwischen folgende Antwort erhalten:

Das Problem konnte reproduziert werden, es handelt sich um einen Buck, 
Behebung wurde angekündigt.
Es wurde ein Workaround vorgeschlagen, welcher leider bei mir nicht 
funktioniert.

Es bleibt spannend.

von M.A. S. (mse2)


Lesenswert?

M.A. S. schrieb:
> Es wurde ein Workaround vorgeschlagen, welcher leider bei mir nicht
> funktioniert.

Man hatte mir vorgeschlagen:
1
// Altium Support Antwort vom 13.10.2020 zum Neuzeichnen des PCB
2
Client.SendMessage ('PCB: Select', 'Scope = All', 255, Client.CurrentView);
3
Client.SendMessage ('PCB: DeSelect', 'Scope = All', 255, Client.CurrentView);

Ich hatte dieses einfach per Copy-and-Paste bei mir eingefügt: geht 
nicht.
Bei nochmaligem Hinsehen fiel mir auf, dass zwischen 'PCB:' und 'Select' 
bzw. 'DeSelect' ein Leerzeichen ist.
Nach Entfernen des/der-selben funktioniert die Sache: Alles wird 
selektiert und wieder deselektiert, danach sind genau die Strings 
sichtbar, die sichtbar sein sollen.

Das funktionierende Workaround lautet also:
1
// Altium Support Antwort mit Korrektur:
2
Client.SendMessage ('PCB:Select', 'Scope = All', 255, Client.CurrentView);
3
Client.SendMessage ('PCB:DeSelect', 'Scope = All', 255, Client.CurrentView);

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Danke. Auch wenn ich aktuell leider nichts damit anfangen kann weil kein 
Altium.

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.