Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Benötige Bitte hilfe bei einem 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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Technische Kommunikation mit der 3DEXPERIENCE Plattform
Autor Thema:  Benötige Bitte hilfe bei einem Makro (1700 mal gelesen)
Delta1988
Mitglied
Konstrukteur


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

Beiträge: 64
Registriert: 15.06.2012

SolidWorks 2017

erstellt am: 18. Jul. 2012 16:43    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

Hallo Gemeinde ich bin wie schon mal gesagt noch unerfahren bei VB.

ich habe jetzt mit hilfe der SolidWorks funktion Makro aufzeichen in Makro aufgezeichnet.

und zwar soll es eine Stückliste der bestehenden Baugruppe einfügen.

Das Makro sieht so aus:


Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("20120117_S010_Versuch.SLDASM", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
Dim swBOMTable As Object
Set swBOMTable = Part.Extension.InsertBomTable("X:\Solidworks\Stücklistenvorlage\Stücklistenvorlage 2011\Stückliste.sldbomtbt", 1290, 354, swBomType_e.swBomType_TopLevelOnly, "")
End Sub

Wenn man das Makro jetzt Startet wird nur der Schriftkopf der Stückliste eingefügt ohne Inhalt!

Kann mir da jemand weiterhelfen???
 
bin etwas überfordert!!

Danke schon im voraus!!
Mfg Delta

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 19. Jul. 2012 10:25    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 Delta1988 10 Unities + Antwort hilfreich

Hallo Delta

hast Du Dir schon das Beispiel in der Online-Hilfe angesehen?
Du findest das unter dem Suchbegriff "Insert and Show BOM Table and BOM Balloon Example (VBA)"

Als Gedankenanstoss:
wenn Du die Stückliste manuell einfügst muss auch zuerst eine Ansicht ausgewählt sein. Das fehlt meiner Meinung nach in Deinem Makro.

------------------
Grüße
Heinz

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 19. Jul. 2012 18:21    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 Delta1988 10 Unities + Antwort hilfreich

Das ist in seinem Makro schon enthalten:
Code:
boolstatus = Part.Extension.SelectByID2("20120117_S010_Versuch.SLDASM", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

Das Problem wird vielmehr sein, dass das Makro in einer anderen Baugruppe ausgeführt wird, als bei:

Zitat:
20120117_S010_Versuch.SLDASM

Da der Select dann fehlschlägt, wird auch keine BOM eingefügt. Was mich nur wundert, dass da keine Fehlermeldung kommt.

Für dich @Delta heißt das, dass du dir einen Baugruppenselect per VBA schreiben musst, der obig zitierten Baugruppennamen durch einen gültigen ersetzt.
Alternativ kannst du dir auch eine Textbox vorschalten (ich weiß, ist keine schicke Lösung), in der du den Namen einträgst.
Probier mal folgendes:

Code:

...
Set swApp = _
Application.SldWorks
Dim strSelectName As String
strSelectName = InputBox("Bitte einen gültigen Selectnamen eintragen")
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2(strSelectName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
...

Grüße

Tobias

Achso: Code ist ungetestet, mangels SWX

------------------
Besucht mich doch mal in meiner Tischlerei

"...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder

"...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..."

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

Carsten Heß
Mitglied
Diplom Ingenieur (Konstruktion)


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

Beiträge: 105
Registriert: 23.07.2004

Windows 7 64bit, 12270MB RAM,
3,2 P3 Xeon, Quadro 4000
SW 2014 64bit /SP4.0
MaxxDB SP3.04

erstellt am: 23. Jul. 2012 14:54    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 Delta1988 10 Unities + Antwort hilfreich

Hallo Delta,

ich habe den gleichen Weg wie du mal ausprobiert und das Einfügen einer
Stückliste aufgezeichnet.
Dein Makro ist schon korrekt. Allerdings solltest du
mit swapp.GetActiveConfigurationName dir die aktive konfiguration holen und diese
am ende von insertBOMTable mit angeben.
Denn die Stückliste wird in die BG eingefügt aber es ist keine konfiguration ausgewählt.

Dummerweise hat dies bei mir trotzdem nicht funktioniert. Eventuell ein Fehler in der API
Habe dir unten mal meinen Code angehängt.

Nach meiner Auffassung kannst Du dir das erste mit dem select ganz sparen da als nächstes bei dir
die select Funktion wieder aufgehoben wird. Dies zeichnet SW nur auf, weil man selbst auf die BG geklickt hat.

Vielleicht klappt es ja bei dir mit der Konfigurationsangabe.


Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
dim conf as string
dim filename as string
filename = part.getpathname
conf = swapp.GetActiveConfigurationName(filename)

Dim swBOMTable As Object
Set swBOMTable = Part.Extension.InsertBomTable("X:\Solidworks\Stücklistenvorlage\Stücklistenvorlage 2011\Stückliste.sldbomtbt", 1290, 354, swBomType_e.swBomType_TopLevelOnly, conf)
End Sub

Gruß

Carsten

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

Delta1988
Mitglied
Konstrukteur


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

Beiträge: 64
Registriert: 15.06.2012

SolidWorks 2017

erstellt am: 26. Jul. 2012 12:36    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

Hallo zusammen ich werde das ganze mal (bin jetzt dann 2 wochen weg)probieren und mich dann wieder melden!!

Aber danke für eure ideen und vorschläge!!

MFG Delta

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)2024 CAD.de | Impressum | Datenschutz