Patronenkoordinaten über VBA

Hallo

Lassen Sie mich mein Problem vorstellen:

Nach einer erfolglosen Recherchearbeit bitte ich Sie um Ihre Hilfe, um über VBA die Koordinaten (x,y) des Cartridge-Elements dieser Zeichnung ermitteln zu können.

Die Startdatei ist eine DXF-Datei, die über SolidWorks 2012 importiert wurde.

Vielen Dank im Voraus für Ihre Antworten.

 


image_1.png

Hallo

Was haben Sie bisher mit Ihrem Makro erreicht?

 

Hier ist ein Makro, das es Ihnen ermöglicht, ein "get" für jedes der Elemente einer Zeichnung zu erstellen und dann eine debug.print mit seinem Namen zu erstellen:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_All_Visible_Components_in_Drawing_View_Example_VB.htm

Wenn Sie dann auf dem richtigen Element positioniert sind (je nachdem, was die debug.print in jeder Zeile mit einem IF anzeigt), müssen Sie nur noch die Position abrufen, indem Sie sich von den hier vorgeschlagenen Makros inspirieren lassen:

https://forum.solidworks.com/thread/60386

 

1 „Gefällt mir“

Vielen Dank an PL für dieses schnelle Feedback! 

Um ehrlich zu sein, habe ich versucht, eine Reihe von Makros im Web zu verwenden, aber ohne Erfolg. 

Mein persönliches Makro ist aufgrund mangelnden Wissens zum Stillstand gekommen.

Bei der Verwendung  der beiden von Ihnen verknüpften Makros erhalte ich folgende Fehlermeldungen:

Verknüpfung Makro 1 :

Fehler in:

'Alle sichtbaren Komponenten in der Ansicht abrufen

vComps = swView.GetVisibleComponents

/sites/default/files/from_ckeditor/macro1.png

Link-Makro Nr. 2 :

Auf Höhe der 5. Linie der Makrohand :

Legen Sie swSketch = swView.GetSketch fest

Laufzeitfehler 91 Objektvariable oder Mit Blockvariable nicht definiert.

/sites/default/files/from_ckeditor/macro2_1.png

/sites/default/files/from_ckeditor/macro2_2.png

Danke für Ihre Hilfe!

Der erste Link war nicht gut, schauen Sie sich das so an:

http://help.solidworks.com/2016/English/api/sldworksapi/Get_Title_Block_Tables_Example_VBNET.htm

Aber was ist Ihr Level in VBA?

1 „Gefällt mir“

Ich beherrsche Excel, Powerpoint und Outlook, bin aber mit Solidworks nicht vertraut.

Zunächst einmal habe ich folgende Anleitung in rot, also in pirori, falsch: 

Partielle Klasse SolidWorksMacro

End-Klasse

Beim Aktivieren des Makros erscheint in der ersten Zeile eine Fehlermeldung:

Kompilierungsfehler: Eine falsche Anweisung außerhalb einer Prozedur.

Handelt es sich um ein Makro, das aus SolidWorks gestartet wurde?

Wenn das der Fall ist, kannst du die Klassen feuern, ich denke, das ist nutzlos

1 „Gefällt mir“

Ok, das ist erledigt, aber das Problem bleibt auf der Ebene von:

SolidWorks Importe. Interop.SldWorks

Es kommt zu einem Fehler auf dem SolidWorks in Fettdruck oben mit der Fehlermeldung  :

Kompilierungsfehler: Eine falsche Anweisung außerhalb einer Prozedur.

Haben Sie eine Idee über den Ursprung des Problems?

Können Sie bitte Ihren Code in eine txt-Datei als Anhang auf Lynkoa einfügen?

1 „Gefällt mir“

Hier ist der Code


code.txt

Welche Verbindung haben Sie daraus gezogen?

Denn ich glaube, in der letzten Zeile liegt ein Fehler vor:   

Öffentliche swApp als SldWorks

Es sollte nicht an diesem Ort sein.

1 „Gefällt mir“

Ich habe es dem letzten Link entnommen, den Sie mir geschickt haben: 

 

Der erste Link war nicht gut, schauen Sie sich das so an:

http://help.solidworks.com/2016/English/api/sldworksapi/Get_Title_Block_...

Aber was ist Ihr Level in VBA?

Ihr Code ist nicht VBA, sondern VB.net.

Das kann nicht funktionieren...

Bis bald.

1 „Gefällt mir“

Das erklärt viele Dinge.

In diesem Fall befinde ich mich wirklich in einer Sackgasse.

Wenn jemand eine Idee hat, ist er willkommen.

 

Ja, der letzte Link stammt aus dem VB.NET zu ändern, um ihn anzupassen, deshalb habe ich Sie nach Ihrem Niveau gefragt.

VB.NET und VBA sind zwei Sprachen, die sich ziemlich nahe kommen, aber nicht kompatibel sind.

1 „Gefällt mir“

Das Beispiel ist auch in VBA verfügbar: http://help.solidworks.com/2016/english/api/sldworksapi/get_title_block_tables_example_vb6.htm

1 „Gefällt mir“

Nun, ich habe versucht, das Ende der URL durch VB statt durch VB6 zu ersetzen...

Vielen Dank für Ihre Hilfe.

Ich habe den im Link angegebenen VBA-Code verwendet, jedoch wird eine Fehlermeldung auf der Ebene von  angezeigt:

 Set feat = tbtAnno.TitleBlockTableFeature

Fehlermeldung : Laufzeitfehler 91 Objektvariable oder mit Blockvariable nicht definiert.

Zwei kurze Fragen:

Haben Sie einen Hintergrund, wo sich Ihre Patrone befindet, oder befindet sie sich direkt auf der Karte? Können Sie es auswählen?

Ist es Ihnen möglich, die Patrone mit der Frontmaus auszuwählen oder möchten Sie die Koordinaten ohne Benutzereingriff erhalten?

 

Was ist im Grunde genommen der Sinn?

Die Pläne werden aus DXFs extrahiert, die mit einer anderen Software erstellt wurden.

Es gibt keinen Hintergrund, ich kann das Schriftfeld auswählen.

Ziel ist es, dem Schriftfeld in einer Reihe von Dateien, die aufgrund ihres Größenunterschieds kein gemeinsames Layout haben, automatisch ein Bild hinzuzufügen.

Daher möchte ich wissen, wie ich die Koordinaten des Schriftfelds (oder allgemeiner eines Elements) ohne Benutzereingriff und im Rahmen einer Zeichnung erhalten kann.

Danke für Ihre Hilfe.