Ich arbeite mit Altium Designer Summer 9 und suche nach einer Möglichkeit, immer wiederkehrende Dinge zu automatisieren, sprich: mit einem Mausklick oder einer einfachen Tastenkombination anzustoßen, statt eine längere Folge von Befehlen auszuführen. Beispiel: Umschalten der Sichtbarkeiten von Designators und Comments von Bauteilen. Bisher mache ich das wie folgt: Comments sichtbar, Designators unsichtbar machen: - PCBList, "all objects", "only Text": - Sortieren nach "String Type", - bei allen Designators "Hide" setzen (mit Hilfe von Markieren, Copy und Paste) - bei allen Comments entsprechend "Hide" zurücksetzen. Kann man das und ähnliche Dinge irgendwie mittels Skript, Makro etc. programmieren und dann mit nur einer Tastenkombination oder von mir aus Menübefehl zur Ausführung bringen?
Michael S. schrieb: > > Kann man das und ähnliche Dinge irgendwie mittels Skript, Makro etc. > programmieren und dann mit nur einer Tastenkombination oder von mir aus > Menübefehl zur Ausführung bringen? Ja. Der AD kann komplexe Scripte in versch. Sprachen ausführen.
Hi >Kann man das und ähnliche Dinge irgendwie mittels Skript, Makro etc. >programmieren und dann mit nur einer Tastenkombination oder von mir aus >Menübefehl zur Ausführung bringen? Das konnte schon Protel99. MfG Spess
Ich danke Euch für Eure Hinweise. Mit Hilfe der Doku auf der Altium Seite habe ich inzwischen ein "Hallo Welt" realisiert und nach langem Suchen einen ersten Hauch von Ahnung, wie man sich in dem Objektsystem zurechtfindet. Besonders komfortabel finde ich die Dokumentation davon sowie auch die IDE nicht gerade. Mal sehen, ob ich damit 'was zustandekriege...
...also eine Einladung, sich damit zu beschäftigen sieht wirklich anders aus, als die Doku. Sie mag vollständig sein, aber es navigiert sich nicht so schön. Welche Property muss man setzen/rücksetzten, damit ein IPCB_Text sichtbar/unsichtbar wird?
Hallo Michael, ich habe auch schon ein paar Skripte für AD gemacht. Man kann zwar viel machen, aber die Doku lässt wirklich zu wünschen übrig. Ich habe mir aber viel von Skripten aus dem Netz angeeignet. Unter anderem von dieser Seite http://code.google.com/p/altium-designer-addons/downloads/list Ich glaube das Skript "ShowHideDesignators_v1.1" ist sogar das was du suchst. Gruß Florian
Hi Florian, ich danke Dir vielmals für Deine Antwort. Inzwischen habe ich herausgefunden, wie man das macht, was ich machen möchte: Ich habe eine Sichtbar/Unsichtbareigenschaft vergeblich in IPBC_Text gesucht, weil es sie dort nicht gibt. Es gibt sie für Comment und Designator in der Klasse IPCB_Component als "CommentOn" und "NameOn". Comp.SetState_NameOn(true); Comp.SetState_CommentOn(false); Procedure NamesOn; Var Board : IPCB_Board; Comp : IPCB_Primitive; Iterator : IPCB_BoardIterator; Begin // Retrieve the current board Board := PCBServer.GetCurrentPCBBoard; If Board = Nil Then Exit; // retrieve the iterator Iterator := Board.BoardIterator_Create; Iterator.AddFilter_ObjectSet(MkSet(eComponentObject)); Iterator.AddFilter_LayerSet(AllLayers); Iterator.AddFilter_Method(eProcessAll); // Search and count pads Comp := Iterator.FirstPCBObject; While (Comp <> Nil) Do Begin // **** HIER PASSIERTS: ****************** Comp.SetState_NameOn(true); Comp.SetState_CommentOn(false); Comp := Iterator.NextPCBObject; End; Board.BoardIterator_Destroy(Iterator); End; // Danke und gute Nacht! // Gruß, // Michael
das oben gezeigte Programm ist übrigens ein modifiziertes Beisiel. Falls jemand das gleiche Versucht: die Prozedur macht, was sie soll, aber im Verborgenen. D.h., dass man die Änderung erst sieht, wenn man explizit ein Redraw des Boards anstößt. Dies kann man manuell durch Drücken der 'Ende' Taste tun oder, wie ich inzwischen mit Hilfe eines Beispiels aus Florians Link mit folgender Code-Sequenz: // Board neu Zeichnen, damit man die Veränderung auch sieht ResetParameters; AddStringParameter('Action','Redraw'); RunProcess('PCB:Zoom');
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.