| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | In CATIA den Maßstab ändern - so geht es, ein Fachartikel
|
|
Autor
|
Thema: Makro für Bezugshinweis (2500 mal gelesen)
|
Robert H Mitglied

 Beiträge: 91 Registriert: 06.09.2001 HP Workstation xw4600 3GHz; NVIDIA Quadro FX 3700; 4GB RAM; SW2006SP5.1; Dual Monitorbetrieb Windows XP SP2 3Dconnexion Spacepilot
|
erstellt am: 05. Jan. 2006 16:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich suche ein Makro, welches automatisch einen Bezugshinweis auf einer SW-Zeichnung erstellt und mit dem Inhalt aus der Windows-Zwischenablabe (nur Text) ausgefüllt wird. Gibt es da schon etwas? Gruß Robert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
     
 Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 08. Jan. 2006 20:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
|
INKN Mitglied Consulant/Softwareentwickler
 
 Beiträge: 277 Registriert: 22.08.2001
|
erstellt am: 09. Jan. 2006 07:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
Hi, ein Beispiel von mir, Makro fügt aus Dateiname ersten Teil ein. Zwischenablagezugriff: If Clipboard.GetFormat(vbCFText) Then Text = Clipboard.GetText() End If ------------------ Gruß Ingo
[Diese Nachricht wurde von INKN am 09. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robert H Mitglied

 Beiträge: 91 Registriert: 06.09.2001 HP Workstation xw4600 3GHz; NVIDIA Quadro FX 3700; 4GB RAM; SW2006SP5.1; Dual Monitorbetrieb Windows XP SP2 3Dconnexion Spacepilot
|
erstellt am: 09. Jan. 2006 07:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo Martin, ja, hab ich schon versucht. Leider wird der Inhalt der Zwischenablage FEST in das Makro geschrieben, d.h. beim Aufruf des Makros habe ich immer den "ersten" Inhalt fest der Zwischenablage im Makro stehen. Das Makro sollte aber immer den "aktuellen" Inhalt der Zwischenablage in den Bezugshinweis schreiben. Ich hab es bis jetzt noch nicht geschafft, bei einer Makroaufzeichnung den Inhalt als Variable zu erstellen. Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter

 Beiträge: 3864 Registriert: 29.09.2004 SOLIDWORKS 2024 SP3.1 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 09. Jan. 2006 07:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
Kannst du nicht beim Makro einen Aufruf erstellen, wo du dann den Text selber eingeben kannst. Mit Steuerungstaste und der v-Taste ist dann der Text schnell eingefügt. ------------------ ( Um an die Quelle zu kommen, muss man gegen den Strom schwimmen ) OM Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robert H Mitglied

 Beiträge: 91 Registriert: 06.09.2001 HP Workstation xw4600 3GHz; NVIDIA Quadro FX 3700; 4GB RAM; SW2006SP5.1; Dual Monitorbetrieb Windows XP SP2 3Dconnexion Spacepilot
|
erstellt am: 09. Jan. 2006 08:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo OM, dann brauch ich eigentlich kein Makro mehr, sondern könnte direkt den Bezugshinweisbefehl aufrufen etc. Ich muß aber einen Text in das Bezugshinweisfeld einfügen und diesen formatieren (Schriftart und -größe ändern). Vorab: Es hilft auch nichts wenn ich die Optionseinstellungen für den Bezugshinweistext ändere, da alle restlichen Bezugshinweise auf der Zeichnung eine andere Formatierung d.h. Schriftgröße und Schriftart haben. Eine grundsätzliche Änderung der Optionseinstellung ist nicht erlaubt. Mit einem Makro, welches mir den Inhalt der Zwischenablage automatisch einfügt und richtig formatiert, könnte ich mir an dieser Stelle einige Mausklicks sparen. Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter

 Beiträge: 3864 Registriert: 29.09.2004 SOLIDWORKS 2024 SP3.1 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 09. Jan. 2006 09:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
Die Idee war, dass über dein Makro die Funktion aufgerufen wird, dann kommt die Eingabeoption (sofern nicht automatisierbar), dann kommt die automatische Formatierung. ------------------ ( Um an die Quelle zu kommen, muss man gegen den Strom schwimmen ) OM Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
  
 Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 09. Jan. 2006 10:43 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
Hi zusammen, In VB/A könnt Ihr mit Clipboard.SetText "MEIN TEXT" einen beliebigen Text in die Zwischenablage setzen oder eben mit Clipboard.GetText wieder abrufen .... Das ganze geht auch mit Clipboard.SetData und Clipboard.GetData Gruß Micha ------------------
Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
[Diese Nachricht wurde von VBSpawn am 09. Jan. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...

 Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 09. Jan. 2006 11:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Robert H
Standardmäßig geht der Zugriff aufs Clipboard nur in VB6 (oder VB.NET???), jedoch nicht in VBA. Hier muss erst ein Verweis auf Microsoft Forms 2.0 hergestellt werden. Entweder über "Extras->Verweise" oder einfach, indem dem Projekt eine Form hinzugefügt wird- auch wenn sie gar nicht benutzt wird. Ich habs mal so probiert:
Code:
Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim FeatureData As Object Dim Feature As Object Dim Component As ObjectDim Note As Object Dim Annotation As Object Dim myClipboard As DataObject Dim txt As String Dim Fehler As Long Dim strFehler As String Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set myClipboard = New DataObject 'Auf diese Weise können nur Texte aus der Zwischenablage ausgelesen werden!!! 'Die Vorgehensweise stammt weitgehend von der Seite 'http://mypage.bluewin.ch/reprobst/WordFAQ/SetData.htm 'Zwischenablage auslesen... myClipboard.GetFromClipboard ' ... und an String übergeben. On Error Resume Next txt = myClipboard.GetText() Fehler = Err.Number strFehler = Err.Description On Error GoTo 0 Select Case Fehler Case 0 'Alles paletti Case -2147221404 'Format kann nicht interpretiert werden MsgBox "Ungültiges Format in der Zwischenablage!", vbExclamation End Case Else 'Ein unbekannter Fehler ist aufgetreten MsgBox Fehler & vbCr & strFehler, vbExclamation End End Select Set Note = Part.InsertNote(txt) If Not Note Is Nothing Then Note.Angle = 0 boolstatus = Note.SetBalloon(0, 0) Set Annotation = Note.GetAnnotation() If Not Annotation Is Nothing Then longstatus = Annotation.SetLeader2(True, 0, True, False, False, False) 'Position von Text muss noch richtig definiert werden, die hier stehenden 'Werte stammen noch von der Aufnahme mit dem Macrorecorder boolstatus = Annotation.SetPosition(0.1631914489311, 0.172413064133, 0) End If End If Part.WindowRedraw End Sub
Das hab ich erst mal mit dem Macrorecorder aufgezeichnet und dann ergänzt/angepasst. Die wichtigsten Infos dazu habe ich hier "Inhalt der Zwischenablage mittels VBA lesen, löschen oder setzen" gefunden.------------------ Klaus Danke für deinen Besuch in meinem Gästebuch! www.al-ko.de privat... ForumsChat: Schau doch mal hier rein, wenn du Zeit hast... Saga of Ryzom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |