Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  solidedge v9 com schnittstelle

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:  solidedge v9 com schnittstelle (862 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: 07. Apr. 2003 11: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

hallo,

nur eine ganz kurze frage bezüglich der programmier-schnittstelle von
se v9. da es sich hier ja um eine activex schnittstelle handelt, wäre
es ja theoretisch, wie bei vielen anderen cad-systemen, möglich das
meine applikation auch mit einer höreren version, wie zb. v14, laufen
könnte. leider habe ich v14 nicht um das selber auszutesten. deshalb:
hat jemand das mal ausprobiert oder muß der quellcode dann erst, wie
zb. bei pro/e oder catia, angepasst werden?

ich habe die studentenversion (v12 war das glaube ich) bestellt, warte
allerdings noch drauf. leider brauche ich diese information sehr
dringend und ich denke mal nicht das mir v12 innerhalb einer woche
zugeschickt wird...

vielen dank

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: 4602
Registriert: 20.07.2000

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

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

Hallo drcmda,

es kommt ganz darauf an was Deine Applikation macht.
Es sollte i.d.R. keine Probleme in höheren Versionen von Solid Edge geben.
Meine Erfahrungen sind allerdings etwas zwiespältig, z.T. laufen diverse Makros seit V4 weitgehend unverändert, andererseits hatte ich auch schon von der einen auf die andere Version gravierende Änderungen.

Wessen kann man sich sicher sein.
Nutzt Du Funktionen die schon länger in Solid Edge drin sind kannst Du eher davon ausgehen das die APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) korrekt arbeitet, als bei brandneuen Funktionen  - hier kommt es eher noch zu Änderungen.

Mußtest Du bei der Programmierung mit Tricks arbeiten, kann es sein das in der nächsten Version die APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) geändert wurde damit diese Tricks nicht mehr nötig sind.

Vielleicht stellst Du Dein kompiliertes Programm einfach mal hier,
und wer will testet es dann mal bei sich.

------------------
Gruß

Markus Gras
Unitec Informationssysteme GmbH

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: 08. Apr. 2003 15:04    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 prompte antwort...

meines erachtens benutze ich klar definierte APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)'s und keine
tricks um an informationen zu gelangen... das problem ist das die
applikation riesig ist und deshalb kann ich das hier nicht einfach
zum testen zur verfügung stellen. allerdings habe ich die solid edge
routinen in ein kleines test projekt geschmissen. grundsätzlich
sammle ich einfach nur ein paar informationen (parametrik, features
und ein paar extra informationen).

einfach in vb ein neues projekt erstellen und den code einfügen, dann
bei "Projekt>Verweise" die paar Solid Edge verweise auswählen.
ach ja, am besten einen breakpoint auf das letzte "doevents" setzen
und dann bei "Ansicht>Überwachungsfenster = mymodels" gucken ob die
struktur gefüllt wurde... oh natürlich muß solid-edge mit einem
geladenen modell laufen.

das wäre wirklich klasse wenn sich jemand die mühe machen würde, ich
wäre unendlich dankbar... wie gesagt, ich benutze zur zeit noch v9
und würde wissen wollen ob das auch in einer höheren version läuft.

paul

Code:

Dim cad_obj         As Object

Private Type se_dimension
    se_d_name       As String
    se_d_value      As Double
    se_d_object     As Object
End Type

Private Type se_feature
    se_f_name       As String
    se_f_supression As Boolean
    se_f_type       As Long
    se_f_object     As Object
End Type

Private Type se_model_info
    se_m_i_name     As String
    se_m_i_path     As String
    se_m_i_fullname As String
    se_m_i_type     As Long
    se_m_i_author   As String
    se_m_i_category As String
    se_m_i_comments As String
    se_m_i_company  As String
    se_m_i_subject  As String
    se_m_i_title    As String
    se_m_i_revision As String
    se_m_i_project  As String
End Type

Private Type se_model
    se_m_features() As se_feature
    se_m_dims()     As se_dimension
    se_m_info       As se_model_info
    se_m_object     As Object
End Type

Dim mymodels()       As se_model

Private Function get_models(ByVal root_obj As Object) As se_model()
    Dim cur_doc     As Object
    Dim Docs        As Long
    Dim dim_arr()   As se_model
   
    ReDim dim_arr(0)

    If root_obj Is Nothing Then
        For Docs = 1 To cad_obj.Documents.Count
            traverse_model cad_obj.Documents.Item(Docs), dim_arr
        Next Docs
    Else
        traverse_model root_obj, dim_arr
    End If
   
    ReDim Preserve dim_arr(UBound(dim_arr) - 1)
    get_models = dim_arr
   
End Function

Private Sub traverse_model(ByVal root_obj As Object, ByRef dim_arr() As se_model)
    Dim d_b         As Long
    Dim occs        As Long
   
    d_b = UBound(dim_arr)

    dim_arr(d_b).se_m_info.se_m_i_name = root_obj.Name
    dim_arr(d_b).se_m_info.se_m_i_path = root_obj.Path
    dim_arr(d_b).se_m_info.se_m_i_fullname = root_obj.FullName
    dim_arr(d_b).se_m_info.se_m_i_type = root_obj.Type
    dim_arr(d_b).se_m_info.se_m_i_author = root_obj.SummaryInfo.Author
    dim_arr(d_b).se_m_info.se_m_i_category = root_obj.SummaryInfo.Category
    dim_arr(d_b).se_m_info.se_m_i_comments = root_obj.SummaryInfo.Comments
    dim_arr(d_b).se_m_info.se_m_i_company = root_obj.SummaryInfo.Company
    dim_arr(d_b).se_m_info.se_m_i_project = root_obj.SummaryInfo.ProjectName
    dim_arr(d_b).se_m_info.se_m_i_revision = root_obj.SummaryInfo.RevisionNumber
    dim_arr(d_b).se_m_info.se_m_i_subject = root_obj.SummaryInfo.Subject
    dim_arr(d_b).se_m_info.se_m_i_title = root_obj.SummaryInfo.Title
    Set dim_arr(d_b).se_m_object = root_obj
    ReDim Preserve dim_arr(d_b + 1)
       
    If root_obj.Type = 3 Then
            For occs = 1 To root_obj.Occurrences.Count
                traverse_model root_obj.Occurrences(occs).OccurrenceDocument, dim_arr
            Next occs
    End If
   
End Sub

Private Function get_dimensions(ByVal cur_doc As Object) As se_dimension()

    Dim cur_pset    As Object
    Dim cur_prof    As Object
    Dim cur_dim     As Object
    Dim psets       As Long
    Dim profs       As Long
    Dim dims        As Long
    Dim dim_arr()   As se_dimension
    Dim d_b         As Long

    ReDim dim_arr(0)

    If cur_doc.Type = 1 Then
    For psets = 1 To cur_doc.ProfileSets.Count
        Set cur_pset = cur_doc.ProfileSets(psets)
        For profs = 1 To cur_pset.Profiles.Count
            Set cur_prof = cur_pset.Profiles(profs)
            For dims = 1 To cur_prof.Dimensions.Count
                Set cur_dim = cur_prof.Dimensions(dims)
                d_b = UBound(dim_arr)
                dim_arr(d_b).se_d_name = cur_dim.Name
                dim_arr(d_b).se_d_value = cur_dim.Value
                Set dim_arr(d_b).se_d_object = cur_dim
                ReDim Preserve dim_arr(d_b + 1)
            Next dims
        Next profs
    Next psets
   
    ReDim Preserve dim_arr(UBound(dim_arr) - 1)
    get_dimensions = dim_arr
    End If
   
End Function

Private Function get_features(ByVal cur_doc As Object) As se_feature()

    Dim cur_feat    As Object
    Dim feats       As Long
    Dim dim_arr()   As se_feature
    Dim d_b         As Long

    ReDim dim_arr(0)

    If cur_doc.Type = 1 Then
    For feats = 1 To cur_doc.Models(1).Features.Count
        Set cur_feat = cur_doc.Models(1).Features(feats)
        d_b = UBound(dim_arr)
        dim_arr(d_b).se_f_name = cur_feat.Name
        dim_arr(d_b).se_f_supression = cur_feat.Suppress
        dim_arr(d_b).se_f_type = cur_feat.Type
        Set dim_arr(d_b).se_f_object = cur_feat
        ReDim Preserve dim_arr(d_b + 1)
    Next feats
   
    ReDim Preserve dim_arr(UBound(dim_arr) - 1)
    get_features = dim_arr
    End If
   
End Function

Private Function find_index(ByVal Text As String) As Long
    Dim i As Long

    For i = 1 To UBound(mymodels)
        If mymodels(i).se_m_info.se_m_i_name = Text Then
            find_index = i
            Exit Function
        End If
    Next i
    find_index = 0
   
End Function

Private Sub Form_Load()
    Dim numModels As Long

    Set cad_obj = GetObject(, "SolidEdge.Application")
    mymodels = get_models(Nothing)
   
    numModels = UBound(mymodels)
   
    For i = 0 To numModels
        mymodels(i).se_m_features = get_features(mymodels(i).se_m_object)
        mymodels(i).se_m_dims = get_dimensions(mymodels(i).se_m_object)
    Next i
       
    DoEvents
End Sub


[Diese Nachricht wurde von drcmda am 08. April 2003 editiert.]

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: 09. Apr. 2003 17:34    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

Bei mir funktioniert es unter 14.0.0.70 bis zur Stelle

ReDim Preserve dim_arr(UBound(dim_arr) - 1)

ich habe im Part eine Würfel mit eines Ausprägung erstellt.

Jürgen

------------------
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

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