Altium, Skript, PCB nach Modifikation neu zeichnen lassen

OP #6437703
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"..
OP #6437743
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.
OP #6438607
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.
OP #6438666
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);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren