Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  wie finde ich ein part in der documents collection?

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
  
SPOT-ON: Teilefamilien und wiederverwendbare Komponenten in NX CAD, ein Webinar am 19.11.2025
Autor Thema:  wie finde ich ein part in der documents collection? (1806 mal gelesen)
drcmda
Mitglied



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

Beiträge: 176
Registriert: 10.07.2002

erstellt am: 09. Jul. 2003 17: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

okay schon klar ich könnte mit einer schleife jedes dokument einzeln
durchlaufen, nun habe ich aber leider eine riesige baugruppe mit über
300 parts bzw. sub assemblies. alles was ich besitze ist der pfad
des dokuments und der vollständige name. gibt es sowas wie eine
.FindDocument methode die ich übersehen habe oder kniffe jeglicher
art?

paul

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

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


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

Beiträge: 7467
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 09. Jul. 2003 17: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 drcmda 10 Unities + Antwort hilfreich

Objekte lassen sich in der Regel auch über den Namen ansprechen, wenn dieser Bekannt ist.
Name als String also entweder eine Stringvariable oder "Name"

set objMuell= Collection(Name)

Viele Grüße

APeters@BSS-Online.de

[Diese Nachricht wurde von Arne Peters am 09. Juli 2003 editiert.]

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

drcmda
Mitglied



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

Beiträge: 176
Registriert: 10.07.2002

erstellt am: 09. Jul. 2003 17: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

vielen dank für die schnelle antwort ... aber ...

du meinst die collection referenzierung - wäre super wenn solid edge
(v 12 in meinem fall) jene unterstützen würde. oder ich habe etwas
mit dem index-namen falsch gemacht. ich werds nochmal überprüfen aber
meiner meinung nach hatte ich an dieser stelle schon vergebens gesucht

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: 09. Jul. 2003 19: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 Nur für drcmda 10 Unities + Antwort hilfreich

Hallo Paul,

ich nehme an, du meinst die LinkedDocuments Collection im Revisionmanager. Hier wird immer nur die oberste Ebene untersucht, d.h. du kommst um eine Schleife nicht herum. Im Custom - Verzeichnis gibt es ein Beispiel RevManager mit einer rekursiven Funktion, die du dir zurechtbiegen kannst.

HTHHope that helps = Hoffe es hilft pablo

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

drcmda
Mitglied



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

Beiträge: 176
Registriert: 10.07.2002

erstellt am: 09. Jul. 2003 20: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

ich meine die haupt-dokumente also Application.Documents.
mittlerweile habe ich eine relativ schnelle funktion dafür geschrieben
bitte nicht über die größe wundern da ich ein paar sachen wie zb.
unnötige knotenaufrufe versuche zu vermeiden - manchmal ist mehr code
halt doch schneller als weniger 

für meine 300+ assembly braucht sie 3 sekunden bis sie das *letzte*
dokument gefunden hat.

Code:

dim cad_obj as object
Set cad_obj = GetObject(, "SolidEdge.Application")

Private Function search_document(ByVal FullFileName As String, Optional root_obj As Object = Nothing) As Object
On Error GoTo quit_error

    Dim cur_doc As Object
    Dim cur_occ As Object
    Dim tst_doc As Object

    If root_obj Is Nothing Then
        For Each cur_doc In cad_obj.Documents
            Set tst_doc = search_document(FullFileName, cur_doc)
            If Not tst_doc Is Nothing Then GoTo quit_save
        Next
    Else
        If root_obj.fullname = FullFileName Then
            Set search_document = root_obj
            Exit Function
        End If
   
        If root_obj.Type = 3 Then
            For Each cur_occ In root_obj.Occurrences
                       
                If cur_occ.OccurrenceFileName = FullFileName Then
                    Set search_document = cur_occ.OccurrenceDocument
                    Exit Function
                End If
           
                If cur_occ.Type = -1879909116 Then
                    Set tst_doc = search_document(FullFileName, cur_occ.OccurrenceDocument)
                    If Not tst_doc Is Nothing Then GoTo quit_save
                End If
               
            Next
        End If
    End If

quit_error:
    Set search_document = Nothing
    Exit Function

quit_save:
    Set search_document = tst_doc
End Function


wäre trotzdem für andere vorschläge oder optimierungen aller art sehr
dankbar...

paul

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

drcmda
Mitglied



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

Beiträge: 176
Registriert: 10.07.2002

erstellt am: 09. Jul. 2003 20: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

vieleicht noch ein paar kleinigkeiten... ich bin absolut kein vb
programmierer ( ich werde gezwungen in vb zu programmieren    )

könnte mir jemand sagen was schneller ist?

1. bezüglich schleifen
--- for each 
--- oder
--- for i=0 to blabla.count
--- set cur_bla = blabla(i)

2. bezüglich des objekt typs
--- if TypeOf Object = BlaObject
--- oder
--- das explizite auslesen über eine eigenschaft (insofern diese vorhanden ist)

vielen dank,
paul

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 10. Jul. 2003 14: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 Nur für drcmda 10 Unities + Antwort hilfreich

Hallo,

du lässt dich auf ein Abenteuer ein.

Wir haben ein ZIP Programm für SolidEdge entwickelt und in der Entwicklung festgestellt, dass die Objekte von SolidEdge eine sehr komplizierte Datenstruktur beinhaltet. Unser ZIP Programm beherrscht alle Dokumenttypen und Referenzen die in SolidEdge vorkommen. Zusätzlich werden die Zeichnungen (Draft) erkannt und mit in die Struktur aufgenommen.

Zu erst muss man sich fragen welche Informationen benötige ich aus der Dokumentenstruktur?
Will ich eine Stückliste erstellen, dann muss ich rekursiv die SolidEdge Objekte durchlaufen. Hier dürfen allerdings nur klassische Verknüpfungen vorhanden sein.
Unter Klassischen Verknüpfungen verstehe ich Part -> Asm -> DFT. Die Stückliste einer Schweißbaugruppe kann so nicht erstellt werden.

Es besteht auch die Möglichkeit diese Informationen mit dem Revision Manager rekursiv auslesen. Hier ist zu beachten, dass eventuell Circle-Links vorhanden sind. Diese Circle-Links sind Referenzen die auf sich selbst verweisen. Somit würde die Rekursion unendlich laufen.... Des weiteren muss beim Arbeiten mit dem Revision Manager beachtetet werden, dass die Ole Verknüpfungen (Office, TIF, BMP ...) ausgefiltert werden müssen.

Will ich eine einfache Dokumentenstruktur haben – so ist folgendes zu beachten:

Bei Teilefamilie (Asm) ist im Dateiname immer der FamilieName enthalten und dieser ist auszufiltern. z.B. Baugruppe.asm!FamilieName. Die exportierten Assembly Member Dokumente haben keine Referenz auf das Top-Dokument. Jedoch Part-Familie haben eine Referenz auf das Top Dokument und dies kann  nur mit dem Revision Manager bearbeitet werden.

Hier einige Besonderheiten der möglichen Referenzen:
Baugruppe in Part – Nur mit dem Revision Manager
Part in Part – Nur mit dem Revision Manager
Weldment in Part/Assembly/Draft nur mit Revision Manager
Office Dokumente nur mit dem Revision Manager
Circle Referenzen mit dem Revision Manager beachten und ausfiltern.

Es gibt noch jede Menge dazu zu sagen, aber ich denke das reicht es mal für den Anfang.

Lass mich wissen was du genau benötigt – ich bin gerne bereit dich dabei zu unterstützten.

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

drcmda
Mitglied



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

Beiträge: 176
Registriert: 10.07.2002

erstellt am: 16. Jul. 2003 12: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 marco...
es geht im grunde genommen um die parametrik und zusätzlichen
informationen eines parts. weiterhin sind draftings, asm occurenzes,
familientabellen und ja genau -ganz vergessen- features relativ
wichtig für mich. allerdings habe mittlerweile alles was ich brauche.
was meinst du mit 'komplizierte datenstruktur', soweit ich sehen kann
hat SE das einfachste interface weit und breit, schon mal mit pro/e,
unigraphics oder ideas eine anwendung geschrieben (?) die hölle auf
erden  aber im grunde genommen wird alles ertragbar wenn man lange
genug damit auseinandersetzt. dürfte ich fragen was dieses zip format
macht? werden die daten gespeichert und dann wieder komplett von
anfang an neu aufgebaut.

paul

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

Jürgen Niesner
Mitglied



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

Beiträge: 505
Registriert: 26.11.2001

erstellt am: 16. Jul. 2003 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 drcmda 10 Unities + Antwort hilfreich


00004_Links_Teilefamilien.jpg

 
Zitat:

Es besteht auch die Möglichkeit diese Informationen mit dem Revision Manager rekursiv auslesen. Hier ist zu beachten, dass eventuell Circle-Links vorhanden sind. Diese Circle-Links sind Referenzen die auf sich selbst verweisen. Somit würde die Rekursion unendlich laufen.... Des weiteren muss beim Arbeiten mit dem Revision Manager beachtetet werden, dass die Ole Verknüpfungen (Office, TIF, BMP ...) ausgefiltert werden müssen.

Dieses Problem kann man vermeiden wenn man in der RevManager-APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) mit RevManagerDokument.LinkedDocuments(seLinkTypeNormal) und RevManagerDokument.LinkedDocuments(seLinkTypeInterpart) verwendet. Verwendet man LinkedDocuments() bekommt man alle Links. Folge ist das man sich bei einem rekursiven Auslesen der Links in einem Kreis bewegt.

Zitat:
Bei Teilefamilie (Asm) ist im Dateiname immer der FamilieName enthalten und dieser ist auszufiltern. z.B. Baugruppe.asm!FamilieName. Die exportierten Assembly Member Dokumente haben keine Referenz auf das Top-Dokument. Jedoch Part-Familie haben eine Referenz auf das Top Dokument und dies kann  nur mit dem Revision Manager bearbeitet werden.

Achtung, Begriffe nicht mischen: Teilefamilien (Endung "par") und Baugruppenfamilien (Endung "asm").
Bei einer Baugruppenfamilie stecken alle Infos in einer Datei, die Memeber werden in der RevManager-APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) dadurch unterschieden, dass hinter dem Dateinamen nach einem Ausrufezeichen der Name des Members kommt z.B.: Baugruppenfamilie.asm!Member1
Bei Teilefamilien Gibt es einen Master und die einzelnene Members als einzelne Dateien. Die Memebers haben normale Links zum Master, der Master hat zu allen Members einen Interpartlink (siehe Skizze).

Meine Empfehlung:
Links immer ausschließlich über den revManager auslesen, da der RevManager
1.alle Links einer Datei ausspuckt, ich brauch mich nicht durch Variablentabllen, Familientabellen, Features, usw. hindurch arbeiten und eine Vielzahl von Fallunterscheidungen aufbauen.
2.auch wenn neue Funktionen in zukünftigen Versionen von SE eingebaut werden, die hier entstehenden Interpartlinks, mit den bekannten APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Funktionen auflsiten wird. Zumindest gehe ich davon aus dass hier die Wahrscheinlichkeit, dass ich ohne Programmanpassung auskomme um ein Vielfaches höher ist.

Jürgen

------------------
Es gibt keine dummen Anwender, die Fehler machen, es gibt nur schlechte Software, die Anwenderfehler zulässt

[Diese Nachricht wurde von Jürgen Niesner am 16. Juli 2003 editiert.]

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

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


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

Beiträge: 7467
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 16. Jul. 2003 23: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 drcmda 10 Unities + Antwort hilfreich

Wow,
präzise, verständlich und detailliert.
Danke

------------------
APeters@BSS-Online.de

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

Jürgen Niesner
Mitglied



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

Beiträge: 505
Registriert: 26.11.2001

erstellt am: 17. Jul. 2003 07: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 drcmda 10 Unities + Antwort hilfreich

Nach fast einem Jahr als Wanderprediger über Interpartlinks hat man seine Techniken und Methoden zur Darstellung des Problems soweit perfektioniert, damit es alle verstehen, im gesamten Europa, bis auf ein kleines Dorf ganz im Nordwesten von Neckarland-Schwaben.

------------------
Es gibt keine dummen Anwender, die Fehler machen, es gibt nur schlechte Software, die Anwenderfehler zulässt

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 17. Jul. 2003 08: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 drcmda 10 Unities + Antwort hilfreich

Hallo drcmda,
Zitat:
---------------------------------------------------------------------
dürfte ich fragen was dieses zip format
macht? werden die daten gespeichert und dann wieder komplett von
anfang an neu aufgebaut.
---------------------------------------------------------------------

HITZipper ist eine Addin Komponente, mit der Sie auf sehr einfache Weise Zip-Dateien von Solid Edge Dokumenten erstellen können. Eine Zip-Funktion für Solid Edge Dokumente ist z.B. immer dann interessant, wenn Sie Ihr Dokument archivieren oder versenden müssen. Wäre doch schön, wenn dann auch alle dazugehörigen Dokumente (Referenzen) wie Zeichnungen, Teilefamilien, Office Dokumente, Teilekopie  usw. gleich aus Solid Edge heraus verpackt werden würden. Der HITZipper ist ein Addin das sich nahtlos in Ihre Solid Edge Umgebung einfügt.

Feature:
-Alle Verknüpfungsarten werden erkannt und gezippt.
-Das aktive Dokument oder ein Dokument von der Festplatte kann aus -Solid Edge heraus gezippt werden.
-Das Ursprungs Verzeichnis der einzelnen Referenzen kann übernommen werden.
-Ein Passwort kann für das Zip-Dokument vergeben werden.
-Die Zip-Datei kann in mehreren kleineren Dateien zerlegt werden.
-Die Kompressionsrate kann eingeben werden.
-Die dazugehörige Zeichnungen werden gezippt
-Das Zielverzeichnis für Zip Datei kann konfiguriert werden

... und dies alles Kostenlos.

http://ww3.cad.de/foren/ubb/Forum3/HTML/000740.shtml
Online Hilfe : www.hitteam.de\hitteam.chm
Add-in        : www.hitteam.de\hitteam.zip


Marco Kreutz
www.hitteam.de
info@hitteam.de

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