17.10.2020, 16:40
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2020, 16:50 von koter.
Bearbeitungsgrund: Nachtrag
)
Hallo Olaf,
in der Baustelle sind die Prozeduren zum Speichern für X7 und zum platzieren. Die auskommentierten Teile habe ich nur zum Testen und zum Erstellen der Fixpunkte aus den roten Linien verwendet (das war mir per Hand zu mühsam).
Die Datei habe ich Dir auf diese Frage hin geschickt:
Mein Vorschlag zur Lösung dieser Aufgabe steht im Dialog-Modul in der Prozedur „CommandButton1_Click()“.
Die erste Unterscheidung benutzt „If Then“, danach folgt „Select Case“.
Der Programmablaufplan der Prozedur sieht so aus:
![[Bild: pap-dialogbuttonohjjg.jpg]](https://abload.de/img/pap-dialogbuttonohjjg.jpg)
Die Prozedur „platzieren“ in der Baustelle habe ich nur zum Testen der Prozedur „CommandButton1_Click()“ gebraucht. Ich hatte angenommen, dass Du dazu Deine eigenen Prozeduren schreiben wolltest.
Du kannst natürlich auch diese Prozedur verwenden.
Durch Deine gut konstruierte Namenskonvention bei den Vorlagen, konnte ich mir die Prozeduren für jede Vorlage sparen und alles von einer Prozedur erledigen lassen. Ein paar kleine Fehler haben sich aber bei den Namen in der Zeichnung eingeschlichen. Ich habe sie jetzt nicht so schnell wiedergefunden, aber ich glaube einige Namen sind doppelt vergeben. Wenn Du das berichtigst, sollte die Prozedur wie geplant funktionieren.
Der Prozedur wird als Argument eine Zeichenfolge von der „CommandButton1_Click()“ übergeben.
Das Argument wird mit den Namen der Objekte in der Zeichnung durch Befehle für Zeichenfolgen abgeglichen, um die richtige Vorlage auszuwählen. Zur Zerlegung von Zeichenfolgen an Leerzeichen wird die Funktion „Split()“ verwendet, die ein Datenfeld erzeugt.
Der Programmablaufplan der Prozedur sieht so aus:
![[Bild: pap-platziereni7jyw.jpg]](https://abload.de/img/pap-platziereni7jyw.jpg)
Das Setzen von Koordinaten ist im PAP nicht genau beschrieben. Eigenschaften wie „TopY“ oder „CenterX“ hast Du ja schon öfter verwendet.
Wenn Du einen Abschnitt im Code genauer untersuchen willst, kannst Du auch Haltepunkte oder den Befehl „Stop“ verwenden:
![[Bild: debug31jdr.gif]](https://abload.de/img/debug31jdr.gif)
Variableninhalte kannst Du beobachten, wenn Du Überwachungsausdrücke anlegst oder sie im Direktbereich mit „Debug.Print“ ausgeben lässt.
Du kannst vielleicht die Variablennamen noch ändern. Der Name der Variable „s“ ist nicht sehr aussagekräftig. Da hätte ich mir etwas mehr Mühe geben können.
Ein schönes Wochenende!
Gruß
Koter
Nachtrag: Bei den anderen Beiträgen gab es für von der Forums-Software verkleinerte Bilder eine „Click to enlarge“ - Funktion. Das scheint bei neuen Beiträgen nicht mehr zu funktionieren. Ich habe die PAPs als PDF angehängt weil die Bilder zu klein angezeigt werden.
PAP-1.pdf (Größe: 34,19 KB / Downloads: 2)
in der Baustelle sind die Prozeduren zum Speichern für X7 und zum platzieren. Die auskommentierten Teile habe ich nur zum Testen und zum Erstellen der Fixpunkte aus den roten Linien verwendet (das war mir per Hand zu mühsam).
Die Datei habe ich Dir auf diese Frage hin geschickt:
(18.09.2020, 11:01)Olaf schrieb: ...Hast Du eine Idee wie man das bestimmen könnten? Ich vermute das ich das mit Wenn dann sonst lösen muss, ich weiss allerdings nicht wie. Wenn es geht, wäre es toll "Wenn dann sonst" nicht für jedes einzelne Teil zu vergeben sondern eventuell schon vorher einzugrenzen durch " Wenn der Wert in dem Feld Breite kleiner ist als 251mm dann nehme nur die Teile aus linken Zeichnung des Deckels....
Mein Vorschlag zur Lösung dieser Aufgabe steht im Dialog-Modul in der Prozedur „CommandButton1_Click()“.
Die erste Unterscheidung benutzt „If Then“, danach folgt „Select Case“.
Der Programmablaufplan der Prozedur sieht so aus:
![[Bild: pap-dialogbuttonohjjg.jpg]](https://abload.de/img/pap-dialogbuttonohjjg.jpg)
Die Prozedur „platzieren“ in der Baustelle habe ich nur zum Testen der Prozedur „CommandButton1_Click()“ gebraucht. Ich hatte angenommen, dass Du dazu Deine eigenen Prozeduren schreiben wolltest.
Du kannst natürlich auch diese Prozedur verwenden.
Durch Deine gut konstruierte Namenskonvention bei den Vorlagen, konnte ich mir die Prozeduren für jede Vorlage sparen und alles von einer Prozedur erledigen lassen. Ein paar kleine Fehler haben sich aber bei den Namen in der Zeichnung eingeschlichen. Ich habe sie jetzt nicht so schnell wiedergefunden, aber ich glaube einige Namen sind doppelt vergeben. Wenn Du das berichtigst, sollte die Prozedur wie geplant funktionieren.
Der Prozedur wird als Argument eine Zeichenfolge von der „CommandButton1_Click()“ übergeben.
Das Argument wird mit den Namen der Objekte in der Zeichnung durch Befehle für Zeichenfolgen abgeglichen, um die richtige Vorlage auszuwählen. Zur Zerlegung von Zeichenfolgen an Leerzeichen wird die Funktion „Split()“ verwendet, die ein Datenfeld erzeugt.
Der Programmablaufplan der Prozedur sieht so aus:
![[Bild: pap-platziereni7jyw.jpg]](https://abload.de/img/pap-platziereni7jyw.jpg)
Das Setzen von Koordinaten ist im PAP nicht genau beschrieben. Eigenschaften wie „TopY“ oder „CenterX“ hast Du ja schon öfter verwendet.
Wenn Du einen Abschnitt im Code genauer untersuchen willst, kannst Du auch Haltepunkte oder den Befehl „Stop“ verwenden:
![[Bild: debug31jdr.gif]](https://abload.de/img/debug31jdr.gif)
Variableninhalte kannst Du beobachten, wenn Du Überwachungsausdrücke anlegst oder sie im Direktbereich mit „Debug.Print“ ausgeben lässt.
Du kannst vielleicht die Variablennamen noch ändern. Der Name der Variable „s“ ist nicht sehr aussagekräftig. Da hätte ich mir etwas mehr Mühe geben können.
Ein schönes Wochenende!
Gruß
Koter
Nachtrag: Bei den anderen Beiträgen gab es für von der Forums-Software verkleinerte Bilder eine „Click to enlarge“ - Funktion. Das scheint bei neuen Beiträgen nicht mehr zu funktionieren. Ich habe die PAPs als PDF angehängt weil die Bilder zu klein angezeigt werden.
