Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Externe Info auf alle E³-Zeichenblätter platzieren...

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:  Externe Info auf alle E³-Zeichenblätter platzieren... (1618 mal gelesen)
Cad-Mium
Mitglied


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

Beiträge: 4
Registriert: 04.02.2014

erstellt am: 04. Feb. 2014 14: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

Hallo Ihr Cad-Ionen,

ich möchte gerne (muss! ) mittels  eines Scripts eine externe Info (aus einer Datei) auf jedes(!) E³.-Zeichenblatt in ein bestimmtes Attributfeld (Blatteigenschaften...) platzieren. Eigentlich habe ich fast alles fertig, - die ext. Datei ist seziert, die Info ausgelesen und formatiert und liegt als String vor -, aber ich bekome zum verrecken den Text nicht auf das Blatt, geschweige denn auf alle Blätter eines Projekts. Und die E³-Doku ist auch so schei... , dass dazu noch nicht einmal ein Beispiel angegeben ist. Deshalb meine Frage(n):

1. Wie bekomme ich alle Zeichenblätter durchgetackert und
2. wie bekomme ich dabei meinen Text in ein Attributfeld gestanzt (Feld #21, "Unterlagennummer")

Bitte kurzes Beispiel!

Danke!!!

Cad-Mium

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 04. Feb. 2014 14: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 Nur für Cad-Mium 10 Unities + Antwort hilfreich

Hi,

schau mal hier...

Code:

    Public Sub SetData_AllSheets()

        Dim iSheetIds As Object
        Dim iSheetId As Integer

        Try

            E3Prj.GetSheetIds(iSheetIds)

            For Each iSheetId In iSheetIds
                SetData_Sheet(iSheetId)
            Next

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Fehler in Modul SetData_AllSheets")
            Application.DoEvents()

        End Try


    End Sub

    Public Sub SetData_Sheet(ByVal SheetID As Integer)

        Dim E3Sht As E3.e3Sheet

        Try

            E3Sht = E3Prj.CreateSheetObject
            E3Sht.SetId(SheetID)
            E3Sht.SetAttributeValue("Feld #21", "Unterlagennummer")
            E3Sht = Nothing

        Catch ex As Exception

            E3Sht = Nothing
            MsgBox(ex.ToString, MsgBoxStyle.Critical, "Fehler in Modul SetData_Sheet")
            Application.DoEvents()

        End Try

    End Sub


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

[Diese Nachricht wurde von RSchulz am 04. Feb. 2014 editiert.]

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

Cad-Mium
Mitglied


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

Beiträge: 4
Registriert: 04.02.2014

erstellt am: 05. Feb. 2014 13:31    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


att.JPG

 
Hi Rick,

Teilerfolg! Mit ein paar Modifikationen läuft die Sache    , aber nur für "richtige" Attribute, also die, die auch in der Attributliste aufgeführt sind. Ich möchte aber ein Texttypenfeld füllen (die mit dem 'T' davor --> siehe Bild).

Wenn ich deinen Code entsprechend in

    E3Sht = E3Prj.CreateSheetObject
    E3Txt = E3Prj.CreateTextObject
    E3Sht.SetId(SheetID)
    E3Txt.SetAttributeValue("Unterlagennummer", Stextstring)

abändere, bekomme ich zwar keine Fehlermeldung, aber es passiert auch nichts    .

Vielen Dank trotzdem bis hierhin!

Cad-Mium!


[Diese Nachricht wurde von Cad-Mium am 05. Feb. 2014 editiert.]

[Diese Nachricht wurde von Cad-Mium am 05. Feb. 2014 editiert.]

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 05. Feb. 2014 13:56    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 Cad-Mium 10 Unities + Antwort hilfreich

Hallo,

du hast dem Object E3Txt keine ObjectID zugewiesen.

Code:

    E3Sht = E3Prj.CreateSheetObject
    E3Txt = E3Prj.CreateTextObject
    E3Sht.SetId(SheetID)
    E3Sht.GetTextIds(sTextIds)
    for each sTextId in sTextIds
        e3txt.setid(stextid)
        ...hier muss nun verarbeitet werden...
    next

Mir fehlen noch zu viele Informationen, um dir genaueres definieren zu können.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 05. Feb. 2014 17: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 Cad-Mium 10 Unities + Antwort hilfreich

Da bist Du ein bisschen auf dem Holzweg!
E3Txt.SetAttributeValue() setzt an einem Text ein Attribut!
diese Funktionalität ist neu ab E³.series 2012!

Was Du aber möchtest ist:
ein Attribut an einem Blatt vergeben und dieses anzeigen!

Das heißt Dein Attribut Träger ist ein Blattobjekt. Wie Du es programmiert hast wäre der Attributträger aber ein Textobjekt und das bringt Dich nicht weiter.

Sprich in der Datenbank muss Dein Attribut 'Unterlagennummer' ein Blatt Attribut sein.

Jetzt hast Du folgende Möglichkeit. Entweder Du fügst zu jedem Blatt eine Textstelle hinzu welche dieses Attribut anzeigt, das wäre das einfachste.
Oder Du erzeugst eine Textstelle für das Attribut über
AttributeInterface:: DisplayAttribute()


Mein Vorschlag:
Füge im Datenbankeditor einen neuen Texttyp ein der Dein Blatt Attribut repräsentiert ( Format -> Texttypen -> Zugewiesenes Attribut )
Addiere im Datenbankeditor den Text an Deinem Blattformat und aktualisiere das Blatt im Projekt.

Wenn Du jetzt über COM das Attribut am Blatt setzt wird es automatisch angezeigt.
E3Sht.SetAttributeValue("Unterlagennummer", Stextstring)

Ich hoffe das löst Deine Verwirrung auf und erzeugt nicht noch mehr  

Gruß Jörg

[Diese Nachricht wurde von K0NFUZIUS am 05. Feb. 2014 editiert.]

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

Cad-Mium
Mitglied


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

Beiträge: 4
Registriert: 04.02.2014

erstellt am: 06. Feb. 2014 09:44    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


att.JPG

 
@Konfuzius

Der Texttyp (hier in diesem Fall "Unterlagennummer") existiert auf unseren Blättern bereits (siehe Bild = Ausschnitt aus Blatteigenschaften). Nur kann ich den Wert (Inhalt) nicht ändern.

Der Code

E3Sht.SetAttributeValue("Unterlagennummer", Stextstring)

führt zu der Fehlermeldung:
W - Unbekannter Attributname 'Unterlagennummer'

Wenn ich es mit

E3txt.SetAttributeValue("Unterlagennummer", Stextstring)

probiere, kommt keine Fehlermeldung, aber es passiert auch nichts.

Der Code von Rick funktioniert prinzipiell, aber nur wenn das Feld wirklich aus Datenbankeditor -> Format -> Attributnamen... stammt!

Zur Not muss ich das Texttypenfeld "Unterlagennummer" in ein Attributnamenfeld änderen, aber das würde ich ungern tun wollen! Es muss doch eine Möglichkeit geben, ein blödes Textfeld zu beschreiben. 

Cad-Mium


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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 06. Feb. 2014 13:38    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 Cad-Mium 10 Unities + Antwort hilfreich

Hallo,

man kann definierte Textfeldtypen mit einem Attribut verknüpften. Ich glaube, dass war auch das, was Jörg sagen wollte. Dies kannst du unter Datenbankeditor -> Format -> Texttypen.

Ich habe das auch so für meine Zeichnungsrahmen gemacht.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 06. Feb. 2014 14: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 Cad-Mium 10 Unities + Antwort hilfreich

Hallo Rick, hallo CAD'

@Rick genau das meinte ich  
Es muss erst mal untersucht werden ob der Texttyp richtig definiert ist also dem Attribut zugeordnet ist.

Wenn allerdings das Attribut nicht gesetzt werden kann liegt's am Attributdefinition
Als zweites bitte ich Dich mal einen Screenshot von der Attributdefinition aus dem DBE zu schicken.
( Format -> Attributnamen... )

!! Sollte das ein neuen Attribut sein dann musst Du davor im Projekt die 'Konfiguration aktualisieren.


Zitat:

Der Code von Rick funktioniert prinzipiell, aber nur wenn das Feld wirklich aus Datenbankeditor -> Format -> Attributnamen... stammt!

Ehm ja so funktioniert E³ nun mal Du kannst kein Attribut "erfinden" das es in der Datenbank nicht gibt ?!?!
Also Attribut anlegen.. Texttyp mit Attribut verknüpfen ... glücklich sein 


Gruß Jörg

[Diese Nachricht wurde von K0NFUZIUS am 06. Feb. 2014 editiert.]

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

Cad-Mium
Mitglied


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

Beiträge: 4
Registriert: 04.02.2014

erstellt am: 07. Feb. 2014 13: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

Hallo Freunde des gepflegten Wahnsinns!

Jetzt geht er!!  

Die Sache das Textfeld mit einem Atrribut zu verknüpfen habe ich auch schon in Erwägung gezogen, aber ich dachte mir, es muss doch auch einfacher gehen, ein simples Textfeld zu beschreiben.

Hier ist die Lösung (so wie ich sie mir vorgestellt hatte):

Code:

Set sht      = prj.CreateSheetObject
Set txt      = prj.CreateTextObject

shtcnt = prj.GetSheetIds(SheetIds)

For Each shtId In SheetIds                        'hier ist Rick's Schleife
    sht.SetId shtId
    txtcnt = sht.GetTextIds(TextIds)              '>>>>>> den Trick hab' ich gesucht!!!
    For Each txtId In TextIds                     'hier ist meine Schleife
        txt.SetId txtId
        If( txt.GetTypeId() = 21) Then            'das Textfeld "Unterlagennummer" hat die Nummer 21
            Txt.SetText "Mein Text"               'oder Variable...
            Exit For                              'hier braucht er nicht mehr weiterzufräsen weil ->
        End If                                    'Textfeld wurde gefunden!
    Next                                          'nächstes Textfeld
Next                                              'nächstes Blatt


So, dann braucht man nämlich nix im DBE oder an den Blättern ändern!

Danke euch beiden!

Beste Grüße
Cad-Mium

[Diese Nachricht wurde von Cad-Mium am 07. Feb. 2014 editiert.]

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