ans
12. Juli 2016 um 06:53
1
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
pl
12. Juli 2016 um 07:26
2
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“
ans
12. Juli 2016 um 07:58
3
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!
pl
12. Juli 2016 um 08:25
4
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“
ans
12. Juli 2016 um 08:34
5
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.
pl
12. Juli 2016 um 08:39
6
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“
ans
12. Juli 2016 um 08:46
7
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?
pl
12. Juli 2016 um 08:47
8
Können Sie bitte Ihren Code in eine txt-Datei als Anhang auf Lynkoa einfügen?
1 „Gefällt mir“
pl
12. Juli 2016 um 09:06
10
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“
ans
12. Juli 2016 um 09:18
11
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?
remrem
12. Juli 2016 um 09:20
12
Ihr Code ist nicht VBA, sondern VB.net.
Das kann nicht funktionieren...
Bis bald.
1 „Gefällt mir“
ans
12. Juli 2016 um 09:31
13
Das erklärt viele Dinge.
In diesem Fall befinde ich mich wirklich in einer Sackgasse.
Wenn jemand eine Idee hat, ist er willkommen.
pl
12. Juli 2016 um 09:39
14
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“
remrem
12. Juli 2016 um 09:46
15
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“
pl
12. Juli 2016 um 09:56
16
Nun, ich habe versucht, das Ende der URL durch VB statt durch VB6 zu ersetzen...
ans
12. Juli 2016 um 10:00
17
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.
pl
12. Juli 2016 um 10:14
18
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?
ans
12. Juli 2016 um 11:41
19
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.