Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Mehrere Komponenten auf einmal in eine Baugruppe einfügen

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
  
AMB 2024
Autor Thema:  Mehrere Komponenten auf einmal in eine Baugruppe einfügen (894 mal gelesen)
holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 09. Nov. 2021 08: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

Hallo,

ich soll mehrere Baugruppen aus einem anderen CAD-System, die bereits als SolidWorks Dateien vorliegen, zu einer gemeinsamen Baugruppe zusammenfügen. Wenn ich die Baugruppen mittels "Komponenten einfügen" einzeln auswähle und keine Platzierung angebe, werden sie am korrekten Ort eingefügt. Leider kann ich hier aber immer nur eine Baugruppe angeben.

Bei der Suche bin ich auf folgenden Thread gestoßen, der genau mein Problem beschreibt.
https://ww3.cad.de/foren/ubb/Forum2/HTML/024553.shtml#000005
Damals wurde auf einen SPR mit Status "Hoch" verwiesen.

Weiß jemand, ob sich hier schon etwas getan hat?

------------------
Gruß aus dem Salzkammergut

Thomas

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

RBE
Mitglied
TechSupport; Bechtle PLM Deutschland GmbH


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

Beiträge: 291
Registriert: 11.02.2002

HP ZBook 17 G5
Core i9 2.9GHz
32GB RAM
Quadro P4200
Win11
SolidWorks2024 SP1

erstellt am: 09. Nov. 2021 11:35    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 holt 10 Unities + Antwort hilfreich

Hi Thomas,

schau mal, ob Dir das hier weiterhilft: https://www.codestack.net/solidworks-api/document/assembly/components/add/

------------------
Grüße, RBE
----------

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 09. Nov. 2021 15: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

Hallo RBE,

danke für deine Antwort. Das schaut vielversprechend aus. Ich werde es so bald wie möglich ausprobieren.

------------------
Gruß aus dem Salzkammergut

Thomas

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.3
Creo Elements/Direct Drafting 20.3
Creo Elements/Direct ModelManager 20.3

erstellt am: 09. Nov. 2021 15:52    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

Zu früh gefreut ...

Ich verstehe irgendwie den VB Code nicht.

Code:
comp1Path = swApp.GetCurrentMacroPathFolder() & "\Part1.sldprt"
comp2Path = swApp.GetCurrentMacroPathFolder() & "\Part2.sldprt"

Muss ich da meine Dateinamen eintragen?
Kann aber irgendwie auch nicht sein. Weiter unten wir dann nur mit comp1Path gearbeitet, comp2Path wird dann einem Array zugewiesen, ... Keine Ahnung wie das zu verstehen ist.
Kann mir da jemand helfen?

------------------
Gruß aus dem Salzkammergut

Thomas

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

RBE
Mitglied
TechSupport; Bechtle PLM Deutschland GmbH


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

Beiträge: 291
Registriert: 11.02.2002

HP ZBook 17 G5
Core i9 2.9GHz
32GB RAM
Quadro P4200
Win11
SolidWorks2024 SP1

erstellt am: 09. Nov. 2021 16: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 holt 10 Unities + Antwort hilfreich

In seinem Beispiel liegen vermutlich die Daten im Makroordner.

Ich hab das für mich so gelöst (alle Teile aus einem bestimmten Verzeichnis einfügen):

        Path = "D:\<Dein Pfad>"
        sFileName = Dir(Path & "*.sldprt")
        count = 0
        Do Until sFileName = ""
            compNames(count) = Path & sFileName
            sFileName = Dir
            count = count + 1
        Loop

compNames ist ein Array, die Größe kannst Du ja vorher durch die Anzahl der Dateien festlegen.

------------------
Grüße, RBE
----------

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 10. Nov. 2021 07: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

OK, danke, das verstehe ich.

Aber trotzdem ist mir noch nicht klar, was mit comp1Path gemacht wird. Wird da erst eine Komponente eingefügt, dann tritt ein Fehler auf, dann wird die Komponente nochmals eingefügt, und dann erst der Rest? So verstehe ich es zumindest.

------------------
Gruß aus dem Salzkammergut

Thomas

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.3
Creo Elements/Direct Drafting 20.3
Creo Elements/Direct ModelManager 20.3

erstellt am: 10. Nov. 2021 08:20    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


VB-Code_033724.txt

 
Ich habe jetzt versucht, dein Codeschnipsel einzubauen.

Leider scheitert aber offensichtlich die Funktion swAssy.AddComponents, zumindest bleibt der Rückgabewert vComps leer.

Im Anhang mein Code.

------------------
Gruß aus dem Salzkammergut

Thomas

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

riesi
Mitglied
CAD-Admin


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

Beiträge: 1073
Registriert: 06.05.2002

SWX Premium 2020-Sp5

erstellt am: 10. Nov. 2021 08:22    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 holt 10 Unities + Antwort hilfreich

Warum der Programmierer den Fehler provozieren will erschließt sich mir auch nicht. Für Dein Vorhaben ist addComponents die geeignetere Methode.


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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 10. Nov. 2021 08: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

Könnte ich also den ganzen Wust vor Dim strCompNames(nn) As String weglassen? Siehe auch meinen vorherigen Post.

------------------
Gruß aus dem Salzkammergut

Thomas

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

RBE
Mitglied
TechSupport; Bechtle PLM Deutschland GmbH


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

Beiträge: 291
Registriert: 11.02.2002

HP ZBook 17 G5
Core i9 2.9GHz
32GB RAM
Quadro P4200
Win11
SolidWorks2024 SP1

erstellt am: 10. Nov. 2021 08:28    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 holt 10 Unities + Antwort hilfreich

Hi nochmal,

ich komme auf die Schnelle nicht dazu, mir das nochmal genauer anzuschauen. So hat es bei mir damals funktioniert (evtl. geht es auch effizienter, Tipps gern zurück ;-)).

        vTransformData = swMathUtils.CreateTransform(Empty).ArrayData
       
        If count > 0 Then
           
            If count > 1 Then
                ReDim Preserve vTransformData(count * 16 - 1)
                For i = 1 To count - 1
                    For j = 0 To 15
                        vTransformData(j + i * 16) = vTransformData(j)
                    Next j
                Next i
            End If
           
            ReDim strCompNames(count - 1)
            For i = 0 To count - 1
                strCompNames(i) = compNames(i)
            Next i
            vComps = swAssy.AddComponents(strCompNames, vTransformData)
           
            swModel.Extension.MultiSelect2 vComps, False, Nothing
            swAssy.FixComponent
       
        End If

------------------
Grüße, RBE
----------

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 10. Nov. 2021 09:58    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

Whow! Funktioniert perfekt!
Danke!

Kannst du mir vielleicht noch erklären, womit und zu welchem Zweck das Array vTransformData befüllt wird?

------------------
Gruß aus dem Salzkammergut

Thomas

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

RBE
Mitglied
TechSupport; Bechtle PLM Deutschland GmbH


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

Beiträge: 291
Registriert: 11.02.2002

HP ZBook 17 G5
Core i9 2.9GHz
32GB RAM
Quadro P4200
Win11
SolidWorks2024 SP1

erstellt am: 10. Nov. 2021 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 holt 10 Unities + Antwort hilfreich

Hier ein kurzer Auszug aus der Hilfe von AssemblyDoc::AddComponents

Zitat:
Remarks
The array of file names represents all of the components that are added to the assembly. If there is more than one instance of a given component, make sure you add the file name of the component for each instance of the component.


The array of transforms consists of [count x 16] doubles. There should be one transform for each component being added.


Wenn das Array (für die Positionierung) nicht sauber vorhanden ist, schlägt das Einfügen fehl.

s. auch MathUtility::CreateTransform

------------------
Grüße, RBE
----------

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 714
Registriert: 07.08.2003

erstellt am: 10. Nov. 2021 12: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

Nochmals Danke!

------------------
Gruß aus dem Salzkammergut

Thomas

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