Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Komponente einfügen mit 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
  
HEDELIUS Hausmesse 2024
Autor Thema:  Komponente einfügen mit Makro (5256 mal gelesen)
General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 18. Dez. 2011 10:48    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 Solid Works Gemeinde,

ich möchte mehr direkt Zugriffe auf Kaufteile Ordner.
Aus diesem Grund habe ich ein Makro erzeugt, dass per Komponenete
einfügen in den gewünschten Ordner wechselt und das gewählte Teil
an Koordinate XYZ einfügt. Dann habe ich einfach im Pfad von addcomponent
den Dateinamen und die Koordinaten gelöscht. Jetzt zeigt der Pfad nur noch auf den
Ordner und ich kann jedes im Ordner beliebige Teil wählen und wo ich will einbauen. Dachte ich !!!
Leider nicht! Das Makro funktioniert nicht mehr. Ich habe jetzt seit 3h rumprobiert, wie ich es schaffe das nicht immer
das gleiche Teil gewählt und an die gleichen Koordinaten gehängt wird. Leider kein Erfolg.
Hat jemand von euch einen Tipp was meienm Makro fehlt und kann den Sonntag retten   ?
Schönen Sonntag.
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 19. Dez. 2011 09:26    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 General Engineer 10 Unities + Antwort hilfreich

Was funktioniert nun nicht?! Du mußt für jede nächste Komponente wieder den Pfad+Dateinamen komplett haben. Dann sollte auch das AddComponent gehen. Weißt Du die Dateinamen oder holst Du sie erst noch (mit Dir-Befehl o.ä.)?

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

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 19. Dez. 2011 10:05    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 General Engineer 10 Unities + Antwort hilfreich

Hallo,

da gibt es doch irgendwie einen Datei-Auswahl-Dialog.
für mich hört es sich so an, als würde versucht, bei AddComponent den Dateiname am Ende zu löschen, und damit schon den Auswahl-Dialog zu bekommen.

Dafür sollte es aber Beispiele geben auf der Tauschbörse ...

Gruß, Christian

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 19. Dez. 2011 11:50    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,

vielen Dank für eure Antworten.
@L.Federbusch: Ich möchte nicht immer ein bestimmtes Teilan eine fixe Position einbauen,sondern die Auswahlbox wie beim Befehl Komponente einfügen. Damit ich aus allen Teilen dieses Ordners z.B. Festo wählen und neu plazieren kann.
@Christian W. : Genau so ein Beispiel mit einem Auswahlfenster wie beim Befehl "Komponente einfügen > Durchsuchen" gibt es nicht. Habe sowohl die deutschen als auch die us Makroseiten (z.B. Lenny abgegrast.
Aus diesem Grund würde ich mich ja über einen Tipp wie diese Auswahlbox programmiert wird, extrem freuen.
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 19. Dez. 2011 12:05    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 General Engineer 10 Unities + Antwort hilfreich

Da mußt Du Dir eine Form mit einer Listbox definieren und die Listbox mit den gewünschten Teilen füllen, damit davon eins gewählt werden kann.

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

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. Dez. 2011 15: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 General Engineer 10 Unities + Antwort hilfreich

Hallo GE

anbei so eine Listenbefüllung
Du musst halt in Dein Formular eine Listbox einfügen

Das mit der Koordinateneingabe wird wohl etwas schwierig,
zumindest hab ich nur die Lösung, vor dem Makrostart einen Punkt auszuwählen an den das Teil "gehängt" wird.

Private Sub UserForm_Initialize()
  ListBox1.Clear
  Pfad1 = "C:\Users\USERNAME\Documents\*.sldprt"
  Name1 = Dir(Pfad1, vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

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

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 19. Dez. 2011 16:05    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 General Engineer 10 Unities + Antwort hilfreich

Hallo

Asche auf mein Haupt ... hätt ich mal genauer nachgeschaut ...
bei uns ist es auch ein Makro mit Listbox fürs Blöcke einfügen.

und für den fileopen Dialog mit SWXSolidWorks hab ich auf die Schnelle auch kein Beispiel gefunden. Das war wohl mit excel ... 

Gruß, Christian

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 23. Dez. 2011 11: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

@Heinz: Danke für Dein Beispiel.
Ich komme damit auch nicht zum Ziel.
Habe in das Einfüge Makro ein User Form
mit List Box und entsprechenden Pfad
mit sldprts eingefügt.
Habe dann im Modul Allgemein Main
den beim Aufzeichnen des Makros angelegten
Pfad gegen die Variable Pfad 1 getauscht.
Sub main ()
Set swApp
Application.Sld.Works
Set Part = sw.App.ActiveDoc
boolstatus = Part.AddComponent (Pfad1)


Das Makro wird zwar ohne Fehler gestartet
aber es passiert nichts.

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 23. Dez. 2011 11:27    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 General Engineer 10 Unities + Antwort hilfreich

Was steht nun in Pfad 1? Nur der Ordner oder ist da auch der Dateiname dran?!

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

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: 23. Dez. 2011 11:42    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 General Engineer 10 Unities + Antwort hilfreich

so kann es meiner Meinung auch nicht funktionieren
Pfad1 ist ja nur dazu da das zu durchsuchende Verzeichnis zu definieren


meine Befüllungsroutine füllt nur die Listbox mit Dateinamen

Du musst eine Datei aus der Listbox auswählen und diese kann dann z.B.: mit einem
Doppelklick in der Liste eingefügt werden.

Dazu musst Du natürlich einen Programmteil für das Doppelklick Ereignis der Listbox schreiben.

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 23. Dez. 2011 17:47    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

Puh das ist ja
Kompliziert.
Warum kann ich denn nicht den
Einfuegebrowser von
Solid Works ansprechen.
Pfad1 ist der Pfad wie in dem Beispiel von
Heinz beschrieben. Mit Suche nach
*.sldprt.
Ich verstehe die Verbindung zwischen UserForm ListBox
und dem Hauptmakro noch nicht.
Gruß
GE


Gruß
GE.


------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 02. Jan. 2012 15: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

Gutes neues Jahr allen CAD.DE Usern.
Gibts etwas neues zu meiner Frage vor
Weihnachten wie ich User Form Befüllmakro
und Hauptmakro "verheirate".

Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 03. Jan. 2012 08:30    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 General Engineer 10 Unities + Antwort hilfreich

Hallo General Engineer,

Zitat:
Original erstellt von General Engineer:
Puh das ist ja Kompliziert.

Nein, eigentlich nicht. Du brauchst für die (alte) Methode AddComponent den vollständigen Pfad zu der Dokumentendatei, die du einfügen willst. Den musst du dir vorher selber zusammenbasteln. nahe hat dir eine Möglichkeit gezeigt, wie du z.B. mit Hilfe einer Userform dir für ein fest eingestelltes Verzeichnis einen vollständigen Pfad für ein Einzelteil holen kannst. Ich argwöhne allerdings, dass du nicht genug Erfahrung und Wille hast, die notwendigen Grundlagen der (VBA-)Programmierung zu erlernen. Das macht die Sache für dich kompliziert - aber das ist oft beim programmieren so, dass man viele kleine Schritte selbst tun muss.

Zitat:
Original erstellt von General Engineer:
Warum kann ich denn nicht den Einfuegebrowser von Solid Works ansprechen.

Nun, weil es in Standard-VBA, was SolidWorks verwendet, keinen Dateiauswahldialog wie in VB gibt. Man kann das wieder selbst stricken und dafür die Win32 API nutzen, habe ich z.B. in meinem Makro auf "3D Punktwolke einlesen" auf http://solidworks.cad.de/mm_24.htm  gemacht, um eine Textdatei auszuwählen. Die Nutzung der Win32 API ist alelrdings noch eine ganz andere Nummer als einfaches VBA ...

Zitat:
Original erstellt von General Engineer:
Ich verstehe die Verbindung zwischen UserForm ListBox und dem Hauptmakro noch nicht.

Da liegt wohl der Hase im Pfeffer.

Du hast ja dein bisheriges Makro nicht hochgeladen, ich vermute, du hattest ein Makro aufgezeichnet, da eben die Pfadangaben rausgelöscht, dann eine Userform eingefügt und den Code von Heinz da hineinkopiert und wunderst dich jetzt, warum diese Userform nicht auftaucht.

Erste Regel für Programmierer: erwarte nicht, das etwas einfach so funktioniert sondern sag dem dummen Blechhaufen in ganz kleinen Schritten, was er tun soll. Soll heißen: du musst dem Depp schon sagen, dass er die Userform aufrufen und anzeigen soll. Und wenn da dann irgendwas bestimmtest getan wird (z.B. per Doppelklick ein Eintrag ausgewählt wird) musst du den selektierten Eintrag auslesen und den so erhaltenen Pfad für den Befehl AddComponent nutzen; das würde ich dann in der DoubleClick Funktion der Listbox machen.

Wenn dir das alles nichts sagt fehlen dir die Grundlagen von VBA, nicht der SolidWorks Programmierung. Die absoluten Grundlagen einer Sprache, ein paar Vokabeln und zumindest die einfache Grammatik sind aber notwendig, um sich in der SPrache ausdrücken zu können, egal ob deutsch, englisch, swahili oder VBA. Es gibt einige sehr gute Stellen mit kostenlosen Onlinekursen zu VB/VBA, z.B. hier ein VB Kurs. Für die Grundlagen ist der Unterschied nicht wichtig, VBA hat einige Einschränkungen und einige wenige andere Art der Anwendung, aber für die Grundlagen ist das dieselbe Suppe.

Ciao,
Stefan

PS: ein ganz anderer Schnack: warum hängst du dir dein Verzeichnis nicht einfach in die Konstruktionsbibliothek und ziehst deine Teile von dort per Dragdrop in deine Baugruppe?

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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: 03. Jan. 2012 15:32    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 General Engineer 10 Unities + Antwort hilfreich


Teil-Einf.zip

 
Hallo GE

anbei ein Makro das funktionieren sollte.

Du musst nur die Konstante für den Pfad im Modul "Teil_Einf1" anpassen.
Das Teil wird mit einem Doppelklick in der Auswahlliste am Punkt 0,0,0 in eine Baugruppe eingefügt.

PS
ich hab absichtlich auf Kommentare verzichtet.
Du solltest Dir auch mal die API Onlinehilfe zu den verwendeten Funktionen anschauen

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

[Diese Nachricht wurde von nahe am 03. Jan. 2012 editiert.]

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: 05. Jan. 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 General Engineer 10 Unities + Antwort hilfreich

Hallo GE

hat das Makro was gebracht?

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 05. Jan. 2012 15: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 Heinz und Stefan,

vielen Dank für eure Unterstützung, besonders für das Makro.
Ich bin leider noch nicht dazu gekommen es auszuprobieren bzw. meinen
Horizont beim Programmieren zu erweitern. Haben ne Menge Projekte.
Ich schau es mir morgen mal an und melde mich Montag.
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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

L.Schröter
Mitglied
Projektierung


Sehen Sie sich das Profil von L.Schröter an!   Senden Sie eine Private Message an L.Schröter  Schreiben Sie einen Gästebucheintrag für L.Schröter

Beiträge: 263
Registriert: 29.03.2007

Aus dem Stein der Weisen macht der Dumme Schotter.
(Deutsches Sprichwort)

erstellt am: 06. Jan. 2012 11:00    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 General Engineer 10 Unities + Antwort hilfreich

Hallo

Hoffe ich habs richtig verstanden.
Wie wäre es denn mit einem ganz anderen Ansatz (ohne Programmieren).

Wir benutzen seit längerem FlashFolder (Win XP) bzw. bei FileBoxExtender (Win7). Dadurch hat man schnell zugriff auf vorher definierte Ordner. Das gute ist, dieses kann man mit allen anderen Programmen auch nutzen 

------------------
MfG
L. Schröter

Diskutiere nie mit einem Idioten, erst zieht er dich auf sein Niveau runter und dann schlägt er dich aufgrund seiner Erfahrung.

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 12. Jan. 2012 15: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


gehtnicht.JPG

 
@ L.Schröter:
Vielen Dank für den Tipp mit File Box Extender.
Gefällt mit sehr gut. Werde ich sicher weiter einsetzen.
Für Solid Works möchte ich aber eine noch optimalere Lösung programmieren. Box öffnen aus Solid Works
Teil wählen und platzieren. Außerdem steige ich so weiter ins VB Programmieren ein.
@nahe as Makro funktioniert leider nicht. Bricht mit Fehlermeldung ab (s.Bild).   Den Pfad habe ich auf meinen Rechner angepasst.
Danke
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 25. Jan. 2012 09: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

Hi VB/VBA Profis,
ich habe jetzt die letzten Wochen immer wieder versucht den
Fehler im Makro zu finden. Aber ich komme nach start des Makros immer
in den Debugger. Habe auch mit anderen Makros verglichen.Jetzt bin ich ratlos.   Hat von euch einer einen Tipp.
Ich wäre echt dankbar.
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 25. Jan. 2012 10:06    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 General Engineer 10 Unities + Antwort hilfreich

Das klingt eher so, als ob hier der Dir-Befehl nicht gefunden wird. Hast Du mal, wenn der Debugger da ist    unter Extras-Verweise geschaut, welche Verweise angekreuzt sind? Die müssen zu Deinem System/Office Version o.ä. passen. "Visual Basic for Applications" sollte dabei sein und "OLE Automation". Was steht da noch?

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

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 25. Jan. 2012 10:41    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 General Engineer 10 Unities + Antwort hilfreich


Teil-EinfLF2009.zip

 
Hab mir das Makro mal angeschaut: Ist für SW2011 gemacht. Also mußt Du in den Verweisen jeweils gleichlautend die für Dein 2010 anwählen und die für 2011 deaktivieren, dann sollte es gehen.
Ich habe es mal für 2009 umgebaut, dabei muß man allerdings auf AddComponent4 ausweichen, da es das AddComponent5 noch nicht gibt.
Da lob ich mir doch eher die versionsunabhängige Programmierung...

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 26. Jan. 2012 11:53    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

Hi Lutz,

vielen Dank für Deine Tipps, jetzt hat es funktioniert.
Ich mußte unter Extras Verweise 3 Einträge auf Solid Works 2010
stellen. Jetzt mache ich die ganze Box noch ein bischen "hübsch".
Also Vorschaubild, Suchleiste wie beim Öffnen und OK Button.
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 27. Jan. 2012 08:14    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

Guten Morgen Lutz,

ich habe das User Form jetzt etwas umgestaltet.
Außerdem möchte ich nicht nur sldprt´s sondern auch
sldasm´s oder nur sldasm´s herausfiltern und in der Liste
auswählen. Kannst Du mir bitte noch mal einen Tipp geben wie ich
die "Filterung" von sldprt auf sldasm ändere. Ich habe nur eine Filterung auf sldprt gefunden und auf sldasm umgesetzt, aber das allein reicht nicht.
Vielen Dank
Gruß
GE

------------------
Solid Works 2010 SP5
Keytech Pro 11
HP Workstation
Xeon 3,06;8 GB Ram, FX 1800
Xeon 3,33;12 GB RAM Quadro 4000;SSD

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 27. Jan. 2012 10:49    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 General Engineer 10 Unities + Antwort hilfreich

Du könntest in Dein Formular noch eine Option einbauen, welchen Dateityp Du aufgelistet haben möchtest (oder beide) und dann nacheinander die Dir-Abfragen machen für Teile und Baugruppen und die gefundenen Einträge jeweils an die Listbox-Item-Liste anhängen.

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

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: 30. Jan. 2012 12:19    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 General Engineer 10 Unities + Antwort hilfreich

Hallo GE

am Besten machst Du es so wie Lutz es beschrieben hat.

zwei zusätzliche Optionsfelder für Teile und Baugruppen
und für diese erstellst Du einfach die entsprechende Abfrage und
füllst die Liste entsprechend.
In etwa so

Private Sub OptionButton1_Click()
  ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldasm", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

Private Sub OptionButton2_Click()
ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldprt", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 20. Mrz. 2013 09:08    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 Heinz,

etwas spät, aber trotzdem nochmals vielen Dank für die Hilfe.
Ich habe leider nochmals zum gleichen Thema ein Thread eröffnet (Makro Makro) den ich aber beenden werde.
Ich habe die beiden Optionen ins Proggi eingefügt. Leider
werden trotzdem nur sldprt Dateien in der Listbox aufgeführt. Wenn ich die Endung auf sldasm ändere, erscheinen diese zwar in der Listbox aber nach einem doppelklick erscheint die Fehlermeldung Falsche Datei.
Private Sub UserForm_Initialize()
  ListBox1.Clear
Name1 = Dir(Teil_Einf1.pfad & "*.sldasm", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
 
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub OptionButton1_Click()
  ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldasm", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

Private Sub OptionButton2_Click()
ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldprt", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub
Für Tipps wäre ich sehr dankbar. Gibt es eigentlich eine Liste mit den VBA Objekten von Solid Works und deren Optionen ?
Nochmals vielen Dank.
Gruß
GE

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 20. Mrz. 2013 09:16    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 General Engineer 10 Unities + Antwort hilfreich

In der API-Hilfe aus dem Hilfemenü von SolidWorks findest Du alle Befehle und Objekte und auch ein paar Beispiele.
Dein jetziges Problem mit der falschen Datei klingt so, als würdest Du eine Baugruppe als Teil öffnen wollen. Welchen Befehl benutzt Du genau? Bei den OpenDoc-Befehlen muß man den Dateinamen und den zu öffnenden Dokumenttyp übergeben.

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

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: 20. Mrz. 2013 09:49    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 General Engineer 10 Unities + Antwort hilfreich

Hallo GE

Du musst nur die Zeile für das Einfügen ändern auf


If UCase(Right(ListBox1.Text, 6)) = "SLDPRT" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocPART, 0, "", errors, warnings)
  ElseIf UCase(Right(ListBox1.Text, 6)) = "SLDASM" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocASSEMBLY, 0, "", errors, warnings)
  Else
    MsgBox "Falscher Dateityp!", vbOKOnly, "Fehler"
    End
  End If

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 20. Mrz. 2013 10:30    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 Heinz,
vielen Dank für die Hilfe. Aber irgendwie raffe ich in VBA nicht
was in welcher Reihenfolge kommt. In AutoLisp war das irgendwie eindeutiger.
Ich habe die beiden Optionen wieder entfernt und die neue If Anweisung an die Stelle der alten If Anweisung hinein kopiert.
    Exit Sub
  End If
 
  swAsm_titel = swModel.GetTitle

  Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocPART, 0, "", errors, warnings)

If tmpObj Is Nothing Then
  MsgBox "Datei konnte nicht geladen werden!", vbOKOnly, "Fehler"
  Exit Sub
  End If
 
  Set swModel = swApp.ActivateDoc2(swAsm_titel, True, errors)
  Set swAsm = swModel
 
  Set swComp = swAsm.AddComponent5(Teil_Einf1.pfad & ListBox1.Text, swAddComponentConfigOptions_CurrentSelectedConfig, "", False, "", 0, 0, 0)
   
  Set swAsm = Nothing
  Set tmpObj = Nothing
  Set swModel = Nothing
  Set swApp = Nothing
 
  End
End Sub

Private Sub UserForm_Initialize()
  ListBox1.Clear
Do
    If UCase(Right(ListBox1.Text, 6)) = "SLDPRT" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocPART, 0, "", errors, warnings)
  ElseIf UCase(Right(ListBox1.Text, 6)) = "SLDASM" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocASSEMBLY, 0, "", errors, warnings)
  Else
    MsgBox "Falscher Dateityp!", vbOKOnly, "Fehler"
    End
  End If
    Name1 = Dir
  Loop
 
End Sub

Private Sub UserForm_Click()

End Sub
Jetzt bekomme ich immer die Meldung "Falscher Dateityp".
Gruß
GE

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: 21. Mrz. 2013 06: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 Nur für General Engineer 10 Unities + Antwort hilfreich

Hallo

sorry, aber Du musst das natürlich in die Sub "ListBox1_DblClick" einbauen und nicht in "UserForm_Initialize"
ich dachte das wäre klar 

hier nochmals das Makro


Private Sub CommandButton1_Click()
  End
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Dim swApp        As SldWorks.SldWorks
  Dim swModel      As SldWorks.ModelDoc2
  Dim swAsm        As SldWorks.AssemblyDoc
  Dim saAsm_titel  As String
  Dim swComp        As SldWorks.Component2
  Dim tmpObj        As SldWorks.ModelDoc2
  Dim errors        As Long
  Dim warnings      As Long
   
  Set swApp = Application.SldWorks
  Set swModel = swApp.ActiveDoc
 
  If swModel Is Nothing Then
    MsgBox "Keine Datei geöffnet!", vbOKOnly, "Fehler"
    Exit Sub
  End If
 
  If swModel.GetType <> swDocASSEMBLY Then
    MsgBox "Keine Baugruppe geöffnet!", vbOKOnly, "Fehler"
    Exit Sub
  End If
 
  swAsm_titel = swModel.GetTitle
  If UCase(Right(ListBox1.Text, 6)) = "SLDPRT" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocPART, 0, "", errors, warnings)
  ElseIf UCase(Right(ListBox1.Text, 6)) = "SLDASM" Then
    Set tmpObj = swApp.OpenDoc6(Teil_Einf1.pfad & ListBox1.Text, swDocASSEMBLY, 0, "", errors, warnings)
  Else
    MsgBox "Falscher Dateityp!", vbOKOnly, "Fehler"
    End
  End If

  If tmpObj Is Nothing Then
    MsgBox "Datei konnte nicht geladen werden!", vbOKOnly, "Fehler"
    Exit Sub
  End If
 
  Set swModel = swApp.ActivateDoc2(swAsm_titel, True, errors)
  Set swAsm = swModel
 
  Set swComp = swAsm.AddComponent5(Teil_Einf1.pfad & ListBox1.Text, swAddComponentConfigOptions_CurrentSelectedConfig, "", False, "", 0, 0, 0)
   
  Set swAsm = Nothing
  Set tmpObj = Nothing
  Set swModel = Nothing
  Set swApp = Nothing
 
  End
End Sub

Private Sub OptionButton1_Click()
  ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldasm", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

Private Sub OptionButton2_Click()
ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldprt", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

Private Sub UserForm_Initialize()
  ListBox1.Clear

  Name1 = Dir(Teil_Einf1.pfad & "*.sldprt", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 21. Mrz. 2013 12:57    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 Heinz,
ich habs jetzt die ganze Pause probiert. Die Listbox zeigt immer nur sldprt Dateien an.
Sldasm werden nicht aufgelistet. Scheint wohl mit VBA nicht zu gehen. Ich gebs auf.
Trotzdem nochmal vielen Dank.
Gruß
GE

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: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 21. Mrz. 2013 13:55    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 General Engineer 10 Unities + Antwort hilfreich


TeileUndBaugruppen.jpg

 
Geht doch =>

Die Initialisierung des Formulars muß so aussehen:

Private Sub UserForm_Initialize()
  ListBox1.Clear
  Name1 = Dir(Teil_Einf1.pfad & "*.sldasm", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
  Name1 = Dir(Teil_Einf1.pfad & "*.sldprt", vbNormal)
  Do While Name1 <> ""
    If Name1 <> "." And Name1 <> ".." Then
      ListBox1.AddItem Name1
    End If
    Name1 = Dir
  Loop
End Sub

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

[Diese Nachricht wurde von Lutz Federbusch am 21. Mrz. 2013 editiert.]

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: 21. Mrz. 2013 22:08    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 General Engineer 10 Unities + Antwort hilfreich

Na darum gibt es ja im Formular die Optionsfelder, damit Du zw. Teil und Baugruppe umschalten kannst.

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

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

General Engineer
Mitglied
Konstrukteur


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

Beiträge: 122
Registriert: 02.08.2006

Solid Works 2014 SP4
HPZ 800 Xeon 3,33;12 GB RAM Quadro 4000;SSD
Dell M4700 I5-2,8;Quadro K2000;8GB Ram;SSD

erstellt am: 24. Mrz. 2013 10:41    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 Lutz,
Hallo Heinz,

vielen,vielen Dank für eure Hilfe. Durch die
zwei unterschiedlichen Vorgehensweisen habe
ich schon einiges über die Syntax in VBA gelernt.
Das kleine Proggi läuft jetzt.
Gruß
GE


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