Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Datei in offene Assembly 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 SolidEdge
  
UNITEC wird offizieller Systemintegrator von AVEVA, eine Pressemitteilung
Autor Thema:  Datei in offene Assembly einfügen (3377 mal gelesen)
Heinrich78
Mitglied
Maschinenbautechniker


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

Beiträge: 388
Registriert: 07.02.2001

Solid Edge 221.00.12.003 x64
Windows 7 64Bit

erstellt am: 19. Sep. 2011 15:02    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,

da es für mein Problem siehe:
http://ww3.cad.de/foren/ubb/Forum3/HTML/009414.shtml

keine einfache Lösung gibt.

Wollte ich per VBA Teile in eine Assembly kopieren.
Dazu habe ich aus diversen Beispielen folgendes zusammengestellt:

Dim objSEApp As SolidEdgeFramework.Application
Dim objActiveDoc As Object
Dim objASMDoc As SolidEdgeAssembly.AssemblyDocument
Dim objPDoc As Object  'Ein Einzelteil
Dim objWDoc As SolidEdgePart.WeldmentDocument  'Weldment Document
Dim objWModel As SolidEdgePart.WeldmentModel    'Weldment Model
Dim actRow As Integer  'Zähler für aktuelle Zeile
Sub Stueckliste_lesen()
    Dim objOccs As SolidEdgeAssembly.Occurrences
    Dim objOcc As SolidEdgeAssembly.Occurrence
    Dim compRow As Integer  'Zähler für Zeilendurchlauf zum Vergleichen
    Dim fName As String    'Dateiname
    Dim Quantity As Integer 'Anzahl
        Dim objApplication As SolidEdgeFramework.Application '= Nothing
        Dim objDocuments As SolidEdgeFramework.Documents '= Nothing
        Dim objAssembly As SolidEdgeAssembly.AssemblyDocument '= Nothing
        Dim objAsmRefPlanes As SolidEdgeAssembly.AsmRefPlanes '= Nothing
        Dim objAsmRefPlane As SolidEdgeAssembly.AsmRefPlane '= Nothing
        Dim objPPlane As SolidEdgeAssembly.AsmRefPlane '= Nothing
        Dim objPart As SolidEdgePart.PartDocument '= Nothing
        Dim objRefPlanes As SolidEdgePart.RefPlanes '= Nothing
        Dim objRefPlane As SolidEdgePart.RefPlane '= Nothing
       
        Dim objOccurrences As SolidEdgeAssembly.Occurrences '= Nothing
        Dim objOccurrence As SolidEdgeAssembly.Occurrence '= Nothing
           
            'Set objOccurence = Nothing
            'Set objPart = Nothing
           
    actRow = 1

    Set objSEApp = GetObject(, "SolidEdge.Application") 'Zugriff auf Solid Edge holen
    Set objActiveDoc = objSEApp.ActiveDocument          'Das Aktive Dokument ermitteln
   
    If objActiveDoc.Type = igAssemblyDocument Then      'Ist es ein Assembly?
        Set objASMDoc = objActiveDoc
        Set objOccs = objASMDoc.Occurrences            'Zugriff auf der Sammelobjekt alle Vorkommen
        'Überschriften schreiben
        '  objPart = objDocuments.Add("H:\temp\a12\A12P1.par")
           
           
            ' Add a part document to the assembly
            objOccurrence = objOccurrence.AddByFilename("H:\temp\a12\A12P1.par")
           

       
        Set objOccs = Nothing
        Set objOcc = Nothing
    Else
        MsgBox "Kein Solid Edge Assembly aktiv", vbOKOnly, "Stücklisten erstellen"
    End If
    Set objSEApp = Nothing
    Set objActiveDoc = Nothing
End Sub


Leider bekomme ich an der Stelle:
            objOccurrence = objOccurrence.AddByFilename("H:\temp\a12\A12P1.par")
eine Fehlermeldung:
Objektvariable oder With-Blockvariable nicht festgelegt

Woran liegt das? Aus der Hilfe bin ich nicht schlau geworden.

Lielleicht kann einer der Programmierer mir hier aushelfen?

Gruß,

Heinrich

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

Markus Gras
Moderator
Solid Edge AE


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

Beiträge: 4690
Registriert: 20.07.2000

Kritik muß sachlich falsch und persönlich verletzend sein, damit sie wirkt.

erstellt am: 19. Sep. 2011 15:07    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 Heinrich78 10 Unities + Antwort hilfreich

Hallo Heinrich,

versuch doch mal den Namen der Datei zuerst einer Stringvariable zuzuweisen und diese dann beim Aufruf von objOccurrence = objOccurrence.AddByFilename(Datei$) anzugeben. Nur so eine Idee.

------------------
Gruß
Markus Gras
Unitec Informationssysteme GmbH

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 204
Registriert: 19.11.2004

erstellt am: 19. Sep. 2011 15:17    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 Heinrich78 10 Unities + Antwort hilfreich

@Heinrich,

verwende

objOccurrence = objOccurrences.AddByFilename("H:\temp\a12\A12P1.par")

statt

objOccurrence = objOccurrence.AddByFilename("H:\temp\a12\A12P1.par")

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

Heinrich78
Mitglied
Maschinenbautechniker


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

Beiträge: 388
Registriert: 07.02.2001

Solid Edge 221.00.12.003 x64
Windows 7 64Bit

erstellt am: 19. Sep. 2011 15:33    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 Marcus,
Hallo Wolfgang,

danke für eure Beiträge.

Leider bringt beides nichts.
Habe auch die Variable Datei mit
        Dim Datei As String
definiert.

Aktuell sieht es so aus:
            fName = "H:\temp\a12\A12P1.par"
            objOccurrence = objOccurrences.AddByFilename(fName)

Gleicher Fehler. Hat noch jemand eine Idee?

Gruß,

Heinrich

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 204
Registriert: 19.11.2004

erstellt am: 19. Sep. 2011 16:15    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 Heinrich78 10 Unities + Antwort hilfreich

@Heinrich

sorry, in VBA/VB6 muss es natürlich noch heißen:

Set objOccurrence = objOccurrences.AddByFilename("H:\temp\a12\A12P1.par")

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

Heinrich78
Mitglied
Maschinenbautechniker


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

Beiträge: 388
Registriert: 07.02.2001

Solid Edge 221.00.12.003 x64
Windows 7 64Bit

erstellt am: 19. Sep. 2011 16: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 Wolfgang,

Danke für den Tipp.
Leider der gleiche Fehler:
Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt

Es muss etwas grundsätzliches sein.

Hast du noch eine Idee, was ich falsch mache?

Gruß,

Heinrich

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

pablo
Mitglied
Techniker


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

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 19. Sep. 2011 17:29    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 Heinrich78 10 Unities + Antwort hilfreich

Heinrich,

Mit
.....
Set objOccs = objASMDoc.Occurrences            'Zugriff auf der Sammelobjekt alle Vorkommen
Set objOccurrence = objOccs.AddByFilename("H:\temp\a12\A12P1.par")
sollte es funktionieren.

Mit   
If objSEApp.ActiveDocument.Type = igAssemblyDocument Then
  Set objOccurrence = objSEApp.ActiveDocument.Occurrences.AddByFilename("H:\temp\a12\A12P1.par")
End If
ebenfalls.

pablo


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

Heinrich78
Mitglied
Maschinenbautechniker


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

Beiträge: 388
Registriert: 07.02.2001

Solid Edge 221.00.12.003 x64
Windows 7 64Bit

erstellt am: 20. Sep. 2011 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

Hallo pablo,


Mit

Zitat:
Original erstellt von pablo:
Heinrich,

Mit
.....
Set objOccs = objASMDoc.Occurrences            'Zugriff auf der Sammelobjekt alle Vorkommen
Set objOccurrence = objOccs.AddByFilename("H:\temp\a12\A12P1.par")
sollte es funktionieren.


hats geklappt. Super!!!
Vielen Dank!!!

Jetzt kann ich mich an die Listenauswahl usw. machen.

Gibt es irgendwo ein Tutorial speziell für SE mit VBA?
Ich habe zwar schon mit VBA und auch VB6 programmiert ist aber schon lange her.

Gruß,

Heirnich

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