Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Block einfügen - Makro

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Block einfügen - Makro (1892 mal gelesen)
KonstruGra
Mitglied
Konstrukteur


Sehen Sie sich das Profil von KonstruGra an!   Senden Sie eine Private Message an KonstruGra  Schreiben Sie einen Gästebucheintrag für KonstruGra

Beiträge: 32
Registriert: 13.06.2008

Solid Works 2016 Premium
AutoCAD Mechanical 2016

erstellt am: 23. Mrz. 2009 14:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Printscreen.jpg

 
Hallo zusammen!

Ich tu mich noch ein bisschen schwer mit dem Bearbeiten von Makros. Irgendwie will das nicht funktionieren. Ich habe nun über das Makrotool von SolidWorks ("Makro aufzeichnen") folgenden Arbeitsschritt ausgeführt:

Einfügen eines Blocks:
Makroaunfahme gestartet -> Einfügen -> Beschriftung -> Block -> Blockdatei ausgewählt -> OK -> Block in Zeichnung platziert -> OK -> Makroaufnahme angehalten

Entstanden ist folgende Definition, wobei mir leider der Fett geschriebene Ausdruck (siehe unten) Probleme bereitet!

Wie müsste der Ausdruck heissen? Oder was mache ich falsch? Gibt es irgendwo eine nette Einführung in das Makrowesen mit VBA in SolidWorks?


' ******************************************************************************
' C:\DOKUME~1\mf\LOKALE~1\Temp\swx2996\Macro1.swb - macro recorded on 03/23/09 by mf
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
Dim newBlockDefinition As Object
Set newBlockDefinition = Part.SketchManager.MakeSketchBlockFromFile(Nothing, "J:\mf\Lackierhinweis.SLDBLK", False, Nothing, 0.8, 0)
swApp.ToolsMacroStop
' MACRO PLAYBACK OVER
End Sub


Freue mich auf eure Antworten.

Grüsse aus der Schweiz, Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 23. Mrz. 2009 15:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KonstruGra 10 Unities + Antwort hilfreich

Block einfügen ging früher so:
Dim swApp As Object
Dim Part As Object
Sub main()
    Set swApp = CreateObject("SldWorks.Application")
    Set Part = swApp.ActiveDoc
    Part.SelectByID "Blatt1", "SHEET", 0.2290294109447, 0.6704176104483, 0
    Part.InsertCustomSymbol "V:\SW_Zeichnungsblöcke\Änderungsnummer skaliert0,8.SLDSYM"
    Part.ClearSelection
End Sub

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Baumjäger
Mitglied
CAD/PDM Administrator


Sehen Sie sich das Profil von Baumjäger an!   Senden Sie eine Private Message an Baumjäger  Schreiben Sie einen Gästebucheintrag für Baumjäger

Beiträge: 333
Registriert: 21.06.2006

SW2017 - S5.0
AutoCAD Mechanical 2018
Win10
Intel Xeon E3-1240 V2 3,4GHz
16GB RAM
NVIDIA Quadro 4000

erstellt am: 23. Mrz. 2009 17:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KonstruGra 10 Unities + Antwort hilfreich

...und geht heute so (ähnlich):
Private Sub cmdwriteProperties_Click()
Dim swApp As Object
Dim boolstatus As Boolean
Dim part As Object
Dim drawing As SldWorks.DrawingDoc
Dim SketchManager As SldWorks.SketchManager
Dim Block
Dim newBlockInstance As Object
Dim SelMgr As Object
Dim XCord As Double                                     'X Koordinate für Einfügepunkt
Dim YCord As Double                                     'Y Koordinate für Einfügepunkt
Dim swMathUtil As SldWorks.MathUtility
Dim swMathPoint As SldWorks.MathPoint
Dim swBlockInstance As SldWorks.SketchBlockInstance
Dim pt(2) As Double
Dim newBlockDefinition As Object

Set swApp = Application.SldWorks
Set part = swApp.ActiveDoc
Set SelMgr = part.SelectionManager


'Revisionsblock einfügen
Set swMathUtil = swApp.GetMathUtility
XCord = 0.148
YCord = 0.078
Set swMathPoint = swMathUtil.CreatePoint((pt))
Set newBlockDefinition = part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "S:\Vorlagen\Bloecke\Bloecke-SW2008\revisionsblock.SLDBLK", False, 1, 0)
            pt(0) = XCord
            pt(1) = YCord
            pt(2) = 0
End Sub
habe das einfach mal aus einem Makro von mir rauskopiert, muss also leider noch angepasst werden. Ich meine mich zu erinnern dass ich auch das Problem hatte dass Blöcke einfügen nicht einfach funktioniert hat und der Grund war das SolidWorks da irgendwas geändert hat und man das ganze deshalb anders machen muss. Hab aber leider grad keine Ahnung mehr was und wie deshalb hier einfach der Schnipsel zum anpassen, sollte eigentlich funktionieren.

viele Grüße Andy

edit: jetzt wo ich nochmal genauer hinschaue, ich glaube die Koordinaten sind der Kanckpunkt an dem ganzen Ding.

[Diese Nachricht wurde von Baumjäger am 23. Mrz. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KonstruGra
Mitglied
Konstrukteur


Sehen Sie sich das Profil von KonstruGra an!   Senden Sie eine Private Message an KonstruGra  Schreiben Sie einen Gästebucheintrag für KonstruGra

Beiträge: 32
Registriert: 13.06.2008

Solid Works 2016 Premium
AutoCAD Mechanical 2016

erstellt am: 23. Mrz. 2009 17:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für deine Antwort.

Leider, hat das Einfügen des Blockes so nicht funktioniert... irgendwie komm ich da einfach nicht weiter. Beim Ausführen des Makros kam weder ne Fehlermeldung noch tat sich irgendwas.

Gibt es noch einen weiteren Weg?

Freundliche Grüsse, Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3084
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016
ERP ProAlpha + CA-Link
Intel Core i7 860 16GB
Win7x64 QuadroFX1800
SpacePilot

erstellt am: 23. Mrz. 2009 18:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KonstruGra 10 Unities + Antwort hilfreich

Bei mir läuft das jetzt unter SW2008 (nach der Baumjäger-Vorlage ):

Sub Main()
    Dim swApp As Object
    Dim boolstatus As Boolean
    Dim part As Object
    Dim drawing As Object 'SldWorks.DrawingDoc
    Dim SketchManager As Object 'SldWorks.SketchManager
    Dim Block
    Dim newBlockInstance As Object
    Dim SelMgr As Object
    Dim XCord As Double                                    'X Koordinate für Einfügepunkt
    Dim YCord As Double                                    'Y Koordinate für Einfügepunkt
    Dim swMathUtil As Object 'SldWorks.MathUtility
    Dim swMathPoint As Object 'SldWorks.MathPoint
    Dim swBlockInstance As Object 'SldWorks.SketchBlockInstance
    Dim pt(2) As Double
    Dim newBlockDefinition As Object

'Set swApp = Application.SldWorks  ' geht bei mir nicht; dafür nächste Zeile eingefügt
Set swApp = CreateObject("SldWorks.Application")
Set part = swApp.ActiveDoc
Set SelMgr = part.SelectionManager

'Revisionsblock einfügen
Set swMathUtil = swApp.GetMathUtility
XCord = 0.148
YCord = 0.078
Set swMathPoint = swMathUtil.CreatePoint((pt))
Set newBlockDefinition = part.SketchManager.MakeSketchBlockFromFile(swMathPoint, "V:\SW_Zeichnungsblöcke\revisionsblock.SLDBLK", False, 1, 0)
            pt(0) = XCord
            pt(1) = YCord
            pt(2) = 0
End Sub

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Baumjäger
Mitglied
CAD/PDM Administrator


Sehen Sie sich das Profil von Baumjäger an!   Senden Sie eine Private Message an Baumjäger  Schreiben Sie einen Gästebucheintrag für Baumjäger

Beiträge: 333
Registriert: 21.06.2006

SW2017 - S5.0
AutoCAD Mechanical 2018
Win10
Intel Xeon E3-1240 V2 3,4GHz
16GB RAM
NVIDIA Quadro 4000

erstellt am: 24. Mrz. 2009 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KonstruGra 10 Unities + Antwort hilfreich

Das ist ja seltsam, wieso funzt das bei mir und bei euch nicht?
Kann ich mir leider nicht erklären, wir scheinen ja die gleiche Solidworks Version zu haben.
..die unendlichen Weiten des Solid Wörks...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KonstruGra
Mitglied
Konstrukteur


Sehen Sie sich das Profil von KonstruGra an!   Senden Sie eine Private Message an KonstruGra  Schreiben Sie einen Gästebucheintrag für KonstruGra

Beiträge: 32
Registriert: 13.06.2008

Solid Works 2016 Premium
AutoCAD Mechanical 2016

erstellt am: 24. Mrz. 2009 08:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


NeuerSchriftkopf.rar

 
Super der Funktioniert! --> Die 10 Unities sind unterwegs 

So wies aussieht, verstehst du dich gut mit VBA-Makros... Vielleicht kannst du mir beim anderen Problem auch weiterhelfen:
Bin momentan am Überarbeiten des Schriftkopfes im Zeichnungsbereich... Da hab ich ein Makro soweit abgeändert, dass wir unseren Schriftkopf ausfüllen können.
Neu soll jetzt noch ein Lackierhinweis im Schriftkopf aufgenommen werden. Beim Ausfüllen wird je nach Teil der eine (odere mehrere) von vier Hinweisen angekreuzt. Leider bleibt bei erneutem Aufrufen des Schriftkopf-Makros das Häckchen nicht drin. Das neue Blattformat und das Makro befindet sich im Anhang, falls du mal gerne reinschauen möchtest.

Grüsse, Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Baumjäger
Mitglied
CAD/PDM Administrator


Sehen Sie sich das Profil von Baumjäger an!   Senden Sie eine Private Message an Baumjäger  Schreiben Sie einen Gästebucheintrag für Baumjäger

Beiträge: 333
Registriert: 21.06.2006

SW2017 - S5.0
AutoCAD Mechanical 2018
Win10
Intel Xeon E3-1240 V2 3,4GHz
16GB RAM
NVIDIA Quadro 4000

erstellt am: 24. Mrz. 2009 11:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KonstruGra 10 Unities + Antwort hilfreich

Hallo,
Leider steht in meinem Arbeitsvertrag dass ich meine vollständige Schaffenskraft nur meiner eigenen Firma zur Verfügung stellen darf, deshalb kann ich dein Makro leider nicht für dich schreiben.

Aber ohne das Ding anzuschauen könnte ich mir vorstellen dass du erst
mit einer Funktion "Formular_Initialize" (also beim Laden des Formulars)

variable1 = part.GetCustomInfoValue("", "Name der Eigenschaft") 'auslesen einer Eigenschaft
Textfeld.Text = variable1 'eintragen der Eigenschaft in ein textfeld

deine Eigenschaften auslesen und diese ins Formular übertragen musst.
Hoffe das ist halbwegs verständlich was ich damit meine und trifft dein Problem so halbwegs.
viele Grüße
Andy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KonstruGra
Mitglied
Konstrukteur


Sehen Sie sich das Profil von KonstruGra an!   Senden Sie eine Private Message an KonstruGra  Schreiben Sie einen Gästebucheintrag für KonstruGra

Beiträge: 32
Registriert: 13.06.2008

Solid Works 2016 Premium
AutoCAD Mechanical 2016

erstellt am: 24. Mrz. 2009 13:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja, das begreife ich, dass du natürlich nicht einfach Makros welche anderen Firmen dienen, erstellen kannst.

Trotzdem vielen Dank. Ich werde diesen Fall mal prüfen  !

Grüsse, Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2019 CAD.de | Impressum | Datenschutz