Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Baugruppen per Skript erstellen

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:  Baugruppen per Skript erstellen (1024 mal gelesen)
DRVoss
Mitglied


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

Beiträge: 5
Registriert: 05.01.2007

erstellt am: 05. Jan. 2007 11:51    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 habe folgendes Problem:

Über ein Skript möchte ich ein Betriebsmittelverzeichnis als Excelliste in ein vorhandenes E3 Projekt einlesen. Mit z.B. dev.Create "A10", "20", "311", "343920033", 0, 0 wird das Bauteil im Baumverzeichnis angelegt.
Mit dem Einfügen eines anderen Bauteils mit dev.Create "A10", "20", "311", "443520014", 0, 0 wird ein Bauteil angelegt, aber aus A10 wird A11. Das möchte ich aber nicht, da beide Materialien unter einem BMK geführt werden sollen (als Beispiel Leuchtdrucktaster mit Schaltelement und LED). Es besteht zwar nun die Möglichkeit in E3 aus diesen Bauteilen eine Baugruppe zu erstellen, und das BMK zu vererben, ist aber bei großen Datenmengen nicht zu überblicken. Die Baugruppen- Erstellung muß also im Skript erfolgen. Nur wie??

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

CS4007
Mitglied
Entwicklung / Elektrotechnik


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

Beiträge: 29
Registriert: 23.03.2005

Windows XP SP2
Intel P4 3,00 GHz
1 GB RAM
NVidia QuadroFX
2 Monitore

erstellt am: 05. Jan. 2007 13: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 DRVoss 10 Unities + Antwort hilfreich

Hallo

Ich hoffe ich habe dich richtig verstanden, und folgendes hilft dir weiter...

Code:

    'Import des Bauteiles bei einem Klick auf einen Button. Kann aber auch durch
    'jedes andere Ereignis aufgerufen werden. In deinem Fall für jede Zeile im Excel-Arbeitsblatt.
    Private Sub btnCreate2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles btnCreate2.Click
        'Deklarieren und Initialisieren der Variablen
        Dim st_Name As String = "A10"
        Dim st_Location As String = "311"
        Dim st_Assignment As String = "20"
        Dim st_Component As String = "343920033"
        Dim int_DeviceID As String
        Dim int_AssemblyID As Integer

        'Der Aufruf CreateE3Objects erzeugt mir die Objekte e3_Application, e3_Project und
        'e3_Device. Spart Platz...
        CreateE3Objects()

        'Sicherstellen das ein Name mit einem "-", ein Ort mit einem "+" und eine Anlage mit
        'einem "=" (...und nur einem) beginnt. Wichtig beim Suchen nach Betriebsmittel
        st_Name = "-" & st_Name.Trim("-")
        st_Location = "+" & st_Location.Trim("+")
        st_Assignment = "=" & st_Assignment.Trim("=")

        'Gibt es schon ein Betriebsmittel / eine Baugruppe mit dem gewünschten Namen im
        ' Projekt, oder nicht ?
        int_DeviceID = e3_Device.Search(st_Name, st_Assignment, st_Location)
        If int_DeviceID = 0 Then
            'Existiert noch kein Betriebsmittel, so kann ich einfach und problemlos ein
            'neues Erstellen und ihm den gewünschten Namen zuweisen
            e3_Device.Create(st_Name, st_Assignment, st_Location, st_Component, 1, 0)
        Else
            'Es besteht schon ein Betriebsmittel. Zuerst mal herausfinden, ob es sich dabei
            'um(eine) Baugruppe handelt. Das ist notwendig um auch mehrere (mehr als zwei)
            'Betriebsmittel, an die selbe Baugruppe hängen zu können.
            e3_Device.SetId(int_DeviceID)
            If e3_Device.IsAssembly = 1 Then
                'Es handelt sich um eine Baugruppe. Also lege ich die ID dieser Baugruppe
                'in der Variablen die mir die Baugruppen-ID speichert ab.
                int_AssemblyID = int_DeviceID
            Else
                'Es existiert noch keine Baugruppe. Ich erzeuge aus dem gefundenen Betriebsmittel,
                'das bereits im Projekt bestanden hat, eine neue Baugruppe, und sage dem
                ' Betriebsmittel weiters, das sie ihr BMK stets von der Baugruppe erben soll.
                int_AssemblyID = e3_Device.CreateAssembly(int_DeviceID)
                e3_Device.SetId(int_DeviceID)
                e3_Device.SetInheritName(1)
            End If
            'Nun erzeuge ich ein das neue Betriebsmittel, und weise ihm einen temporären Namen zu.
            ' Das ist notwendig, das später der Baugruppe der gewünschte Namen zugewiesen werden
            ' kann, ohne das Probleme durch gleiche Namen auftreten.
            int_DeviceID = e3_Device.Create(st_Name & "_tmp", st_Assignment, st_Location, st_Component, 1, 0)
            'Nun das neue Betriebsmittel an die Baugruppe anhängen, und auch ihm sagen, es solle
            ' seinen Namen stets von der Baugruppe erben.
            e3_Device.SetId(int_AssemblyID)
            e3_Device.AddToAssembly(int_DeviceID)
            e3_Device.SetId(int_DeviceID)
            e3_Device.SetInheritName(1)
            'Schlussendlich nur mehr der Baugruppe den gewünschten Namen zuweisen...
            e3_Device.SetCompleteName(st_Name, st_Assignment, st_Location)
        End If

        'Der Aufruf DestroyE3Objects gibt mir den Speicher frei, und trennt
        ' die Verbindung zwischem meinem Programm und E3.series
        DestroyE3Objects()
    End Sub 'btnCreate2_Click


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



(Junior) Elektrokonstrukteur (m/w/d)
Was unsere Kunden von ihren Technologielösungen erwarten? Das nächste Level! Das gelingt unserem Team bei FERCHAU Tag für Tag. Wir suchen dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und arbeiten mit an anspruchsvollen Lösungen für die Industrie....
Anzeige ansehenElektrotechnik, Elektronik
DRVoss
Mitglied


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

Beiträge: 5
Registriert: 05.01.2007

erstellt am: 08. Jan. 2007 08:45    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

Danke für die schnelle Hilfe, das Skript funktioniert.

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