Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Familienbaugruppe mit VB erkennen

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
Autor Thema:  Familienbaugruppe mit VB erkennen (2041 mal gelesen)
Nitram
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 01.06.2007

erstellt am: 22. Okt. 2007 09:16    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,

wir arbeiten mit SE V19 SP9.
Ich bin dabei ein Makro zu schreiben, weches ASM´s verbaut bzw. ersetzt.

Die Methode für das Ersetzten sieht so aus:

ObjSelFile.Replace(NewOccurrenceFileName:=repPart, ReplaceAll:=repAll)

Das Funktioniert  für ASM´s die keine Familienbaugruppe sind. Handelt es sich um eine Familienbaugruppen, muss ich den Filenamen mit dem Familienmitglied ergänzen. z.B. "C:\tmp\Rolle.ASM!100"
Gibt es eine Möglichkeit eine Familienbaugruppe und deren Mitglieder zu erkennen, ohne das File in SE zu öffen? (Revisionmanager, am File dikerkt,...???)

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: 200
Registriert: 19.11.2004

erstellt am: 22. Okt. 2007 13:03    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 Nitram 10 Unities + Antwort hilfreich

@Nitram,

das (Assembly)Document-Objekt verfügt über die Eigenschaft "IsFileFamilyByDocument" (das RevisionManager Document Objekt dazu in ein AssemblyDocument casten). Ein Occurrence-Objekt verfügt über die Eigenschaft "IsFamilyOfAssembly". Damit sollte sich auch über das RevisionManager-Objekt ohne Solid Edge bestimmen lassen, ob es sich um Teilefamilien handelt.

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

Wolfgang Kunert
www.wksyspro.de

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

Nitram
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 01.06.2007

erstellt am: 22. Okt. 2007 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

Zitat:
das RevisionManager Document Objekt dazu in ein AssemblyDocument casten

Wie geht das?

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: 200
Registriert: 19.11.2004

erstellt am: 22. Okt. 2007 14:09    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 Nitram 10 Unities + Antwort hilfreich

Hängt davon ab, womit Du programmierst.

VB6
Dim objDoc As Object
Set objDoc = objRevMan.Document
Dim objAsmDoc As SolidEdgeAssembly.AssemblyDocument
'Implizites Casting
Set objAsmDoc = objDoc

VB.NET
Dim objDoc As RevisionManager.Document
Dim objAsmDoc as SolidEdgeAssembly.AssemblyDocument
'Explicites Casting
objAsmDoc = CType(objDoc, _
                  SolidEdgeAssembly.AssemblyDocument)

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

Wolfgang Kunert
www.wksyspro.de

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

Nitram
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 01.06.2007

erstellt am: 22. Okt. 2007 15:43    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 hab´s mit folgendem Code versucht:

    Sub main()

        Dim RmApp As RevisionManager.Application
        Dim objDoc As RevisionManager.Document
        Dim objAsmDoc As SolidEdgeAssembly.AssemblyDocument

        RmApp = CreateObject("RevisionManager.Application")
        objDoc = RmApp.Open("E:\SAPWORK\sepp.ASM")
        objAsmDoc = CType(objDoc, SolidEdgeAssembly.AssemblyDocument)

    End Sub

Das Debugging bringt folgenden Fehler:

Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "SolidEdgeAssembly.AssemblyDocument" umgewandelt werden.

Hab ich da was falsch gemacht?

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

modeng
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 22. Okt. 2007 15: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 Nur für Nitram 10 Unities + Antwort hilfreich


glaube kaum, denn das eine Objekt gehoert zur Rev-manager API und
das Assembly Document zur SolidEdge API.
Duerfte auch in VB6 nicht gehen gibt sicher einen Type mismatch

modeng

------------------
Lieber Fehler riskieren als Initiative verhindern (R. Mohn)

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: 22. Okt. 2007 18:14    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 Nitram 10 Unities + Antwort hilfreich

Nitram,

das geht mit den FileProperties, z.B. VB6

Public Function CheckFileFamily(ByVal FullName As String) As Boolean
'BGF überprüfen und lesen
Dim moFilePropSets As SolidEdgeFileProperties.PropertySets
Dim bIsBGF As Boolean, MemberCount As Long, MemberName() As String

  On Error GoTo ErrorHandler

  Set moFilePropSets = CreateObject("SolidEdge.FileProperties")
  moFilePropSets.IsFileFamilyOfAssembly FullName, bIsBGF
  If bIsBGF Then
    moFilePropSets.GetFamilyOfAssemblyMemberNames FullName, MemberCount, MemberName()
  End If
  Set moFilePropSets = Nothing

CheckFileFamily = True
Exit Function
ErrorHandler:
  Err.Clear
End Function

pablo

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

Nitram
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 01.06.2007

erstellt am: 23. Okt. 2007 09:00    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

Das wars!!!

In VB.net sieht´s dann so aus

    Public Function CheckFileFamily(ByVal FullName As String) As Boolean

        Dim moFilePropSets As SolidEdgeFileProperties.PropertySets
        Dim bIsBGF As Boolean
        Dim MemberCount As Long
        Dim MemberNames As Array


        moFilePropSets = CreateObject("SolidEdge.FileProperties")
        moFilePropSets.IsFileFamilyOfAssembly(FullName, bIsBGF)

        If bIsBGF = True Then
            moFilePropSets.GetFamilyOfAssemblyMemberNames(FullName, MemberCount, MemberNames)
        End If

        moFilePropSets = Nothing
        CheckFileFamily = bIsBGF

    End Function

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: 200
Registriert: 19.11.2004

erstellt am: 24. Okt. 2007 11:36    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 Nitram 10 Unities + Antwort hilfreich

Hallo,

der "Programming Solid Edge Dokumentation" ist immer weniger zu vertrauen, denn darin findet sich in V19/V20 kein Sterbenswort zur Eigenschaft "IsFileFamilyOfAssembly" der PropertySets-Klasse.
Ebenso wie der Zugriff auf die Materialtabelle per API und und und ... 

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

Wolfgang Kunert
www.wksyspro.de

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

Nitram
Mitglied
Konstrukteur


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

Beiträge: 78
Registriert: 01.06.2007

erstellt am: 24. Okt. 2007 13:48    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

Das ist leider richtig.
Es ist ein zeitraubendes Rumprobieren erforderlich um an die Objekte, Methoden,... zu kommen und sie funktionell einzusetzten. Eine Überarbeitung der Hilfe "Programmieren mit SolidEdge" wäre meiner Meinung nach dringend erforderlich.

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

modeng
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 24. Okt. 2007 16:40    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 Nitram 10 Unities + Antwort hilfreich

(fast) alles was nach der V16 neu hinzugekommen ist in der API
in der Hilfe nicht mehr nachgehalten worden.
Aus Kostengruenden hat man sicherlich den oder die, welche
dafuer zustaendig waren, dem 'Arbeitsmarkt zur Verfuegung
gestellt'...

Allerdings wird es so oder so nicht mehr als eine Referenz
sein. Was nun wie zu erreichen ist muss man schon selbst
herausfinden.

modeng

------------------
Lieber Fehler riskieren als Initiative verhindern (R. Mohn)

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