Hot News aus dem CAD.de-Newsletter:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Debug.Print: Typen als Text statt Zahl

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:   Debug.Print: Typen als Text statt Zahl (238 mal gelesen)
Ticky72
Mitglied



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

Beiträge: 15
Registriert: 17.02.2016

Inventor 2016
Win7 64Bit

erstellt am: 20. Mrz. 2017 13:24    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,

nicht viel los im Forum. Aber vielleicht kann mir trotzdem wer helfen.

Ich möchte in einer DrawingView die DrawingCurves auslesen:

Code:

...
Dim oFrontView As DrawingView
Set oFrontView = oSheet.DrawingViews.AddBaseView(....
...
Dim oObject As Object
Dim oObjectlist As ObjectCollection
Set oObjectlist = ThisApplication.TransientObjects.CreateObjectCollection
       
On Error Resume Next
       
Dim s As String
  For Each oObject In oFrontView.DrawingCurves
      oObjectlist.Add oObject
      s = "Curvetype: " & oObject.CurveType
      Debug.Print s
  Next

Debug.Print gibt mir den Typ als Zahlenwert aus.
Was muss ich tun, dass ich den Typ als Klartext bekomme?

Im Voraus vielen Dank für eure Hilfe
Helmut

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

bkrüger
Mitglied
Konstrukteur


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

Beiträge: 18
Registriert: 14.09.2014

Win7 IV2017 Vault2017-WG

erstellt am: 20. Mrz. 2017 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 Nur für Ticky72 10 Unities + Antwort hilfreich

Hallo Helmut,
najaaaa ... also zu Fuß würde ich meinen:

Folgende Funktion setzt den übergebenen Wert (lnn könnte man auch als long deklarieren) in "Klartext" um:

Code:
Function typintext(lnn As CurveTypeEnum) As String
Select Case lnn
Case kBSplineCurve:
        typintext = "kBSplineCurve" '5128
Case kCircleCurve:
        typintext = "kCircleCurve"
Case kCircularArcCurve: '5125
        typintext = "kCircularArcCurve"
Case kEllipseFullCurve: '5126
        typintext = "kEllipseFullCurve"
Case kEllipticalArcCurve: '5127
        typintext = "kEllipticalArcCurve"
Case kLineCurve: '5122
        typintext = "kLineCurve"
Case kLineSegmentCurve: '5123
        typintext = "kLineSegmentCurve"
Case kPolylineCurve: '5129
        typintext = "kPolylineCurve"
Case kUnknownCurve: '5121
        typintext = "kUnknownCurve"
Case Else
        typintext = "unknown enum"
End Select
End Function

Dann heißt die debug.print - Zeile:

Code:
Debug.Print "Curvetype: " & typintext(oObject.CurveType)

Gruß Boris

[Diese Nachricht wurde von bkrüger am 20. Mrz. 2017 editiert.]

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

Ticky72
Mitglied



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

Beiträge: 15
Registriert: 17.02.2016

Inventor 2016
Win7 64Bit

erstellt am: 20. Mrz. 2017 19: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

Hallo Boris,

vielen Dank für die schnelle Antwort.
Hat mir sehr weitergeholfen.
'CurveTypeEnum' war für mich das Schlagwort mich mit deinem Quelltext vertiefter auseinanderzusetzen.

Hier meine Erkenntnisse (in der Hoffnung, Leser dieses Beitrags hilft es weiter):
In der Hilfe 'Inventor API Reference Manual/Enumerators/CurveTypeEnum Enum' finde ich die Werte und Namen.

Unter http://adndevblog.typepad.com/manufacturing/2012/07/how-to-use-enumtype-object.html
findet sich folgendes Beispiel zum auslesen von Name und Wert:

Code:

Sub GetEnumType()

  Dim oEnumType As EnumType
  Set oEnumType = ThisApplication.TestManager.GetEnumType("ObjectTypeEnum")
  Dim index As Integer
  index = 0
  Do While index < oEnumType.Count
    Debug.Print oEnumType.ValueName
    Debug.Print oEnumType.Value

    oEnumType.MoveNext

    index = index + 1
  Loop

End Sub


Als ich in der API Hilfe die Liste der Enumeratoren, das Beispiel und deinen Quelltext gesehen habe,
kam in mir der Zwang hoch, folgende kleine Spielerei zu schreiben:

Code:

Sub DEBUGPrint_Function_GetEnumType()
  Dim sEnum As String
  'Hier Enumerator eintragen (Siehe Hilfe Inventor API Reference Manual / Enumerators)
  sEnum = "CurveTypeEnum"
 
  Dim oEnumType As EnumType
  Set oEnumType = ThisApplication.TestManager.GetEnumType(sEnum)
  Dim index As Integer
  oEnumType.Reset
  index = -1
 
  Dim sName As String
  Dim sValue As String
 
  'Debug.Print "Function typintext(lnn As " & sEnum & ") As String"
  Debug.Print "Function typintext(lnn As Long) As String"
  Debug.Print "Select Case lnn"
 
  Do While index < oEnumType.Count
    sName = oEnumType.ValueName
    sValue = oEnumType.Value
   
    If Not sName = sValue Then
        Debug.Print "Case " & sName & ":" & " '" & sValue
        Debug.Print "   typintext = " & Chr(34) & sName & Chr(34)
    End If
    oEnumType.MoveNext
    index = index + 1
  Loop
  Debug.Print "Case Else"
  Debug.Print "   typintext = " & Chr(34) & "unknown enum" & Chr(34)
  Debug.Print "End Select"
  Debug.Print "End Function"
End Sub

Gruß
Helmut

[Diese Nachricht wurde von Ticky72 am 20. Mrz. 2017 editiert.]

[Diese Nachricht wurde von Ticky72 am 20. Mrz. 2017 editiert.]

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

metalgod
Mitglied
Technischer Zeichner, Mädchen für alles


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

Beiträge: 19
Registriert: 23.09.2015

Win7x64 Prof. SP1
AMD Phenom II x4 965
3,40GHz, 8GB Ram
Inventor Prof. 2014 SP2 Update7
Visual Studio 2013 Express

erstellt am: 09. Apr. 2017 11:25    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 Ticky72 10 Unities + Antwort hilfreich

Hallo,
neulich bin ich auf folgende Funktion gestoßen, vielleicht kann die jemandem behilflich sein:

Code:
Public Sub TypName()
    Dim Obj As Object
    Set Obj = ThisApplication.CommandManager.Pick(kAllEntitiesFilter, "Objekt wählen")
    Dim S As String: S = TypeName(Obj)
    Call MsgBox(S, vbOKOnly)
End Sub


------------------
alex

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)2017 CAD.de