Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Probleme beim ReferenceKeyManager

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 Autodesk Produkte
Autor Thema:  Probleme beim ReferenceKeyManager (1786 mal gelesen)
Speedy.X
Mitglied
Dipl.Ing.


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

Beiträge: 45
Registriert: 17.05.2005

erstellt am: 29. Mai. 2007 10:54    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 hilfreiches Forum!

Ich wollte analog der Inventor11-API-Hilfe
den ReferenceKeyManager nutzen:


Dim RefKey As Byte
Dim ContData As Byte
Dim KeyCont As Long

MaszDim1 = oDimCont.AddTwoPointDistance(SPkt1, SPkt2, _  Inventor.DimensionOrientationEnum.kHorizontalDim, Pkt2D03)

KeyCont = AnsZeichnung.ReferenceKeyManager.CreateKeyContext

Call MaszDim1.GetReferenceKey(RefKey, KeyCont)
Call AnsZeichnung.ReferenceKeyManager.SaveContextToArray(KeyCont, ContData)


VB2005 gab mir bei

Call MaszDim1.GetReferenceKey(RefKey, KeyCont) für RefKey

und

Call AnsZeichnung.ReferenceKeyManager.SaveContextToArray(KeyCont, ContData) für ContData

folgenden Fehler

"Der Wert vom Typ "Byte" kann nicht zu "System.Array" konvertiert werden."

Laut Beispiel und API-Definitionen stimmen der Typ "Byte".


Kann jemand helfen?


Gruß

Rainer

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 29. Mai. 2007 11: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 Nur für Speedy.X 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von Speedy.X:
..Laut Beispiel und API-Definitionen stimmen der Typ "Byte"...

Nein, sind in beiden Fällen Byte Arrays:

Code:

Public Sub GetReferenceKey(ByRef ReferenceKey() As Byte, Optional ByVal KeyContext As Long = 0 )


Public Sub SaveContextToArray(ByVal KeyContext As Long, ByRef Result() As Byte )



------------------
Grüße Igor

FX64 Software Solutions
Data Management Konferenz 2007 (26. - 27. Juni 2007)

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

Speedy.X
Mitglied
Dipl.Ing.


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

Beiträge: 45
Registriert: 17.05.2005

erstellt am: 29. Mai. 2007 11:45    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

Huch. . .

Ist mir irgendwie schleierhaft!

Selbst das  Beispiel aus der 11er API-Hilfe (ReferenceKeyManager Object)
verwendet nur Byte nicht ein Array.

Na, ich nehme es einfach hin!

Danke!

Gruß

Rainer

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 29. Mai. 2007 11:50    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 Speedy.X 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Speedy.X:
...Ist mir irgendwie schleierhaft!

Selbst das  Beispiel aus der 11er API-Hilfe (ReferenceKeyManager Object)
verwendet nur Byte nicht ein Array.
...


Nein, tut es nicht:

Code:


' Global variables to hold the reference key and key context values
Private RefKey() As Byte
Private ContextData() As Byte

Public Sub ReferenceKeyFromFace()

    'Set a reference to the active document
    Dim oDoc As Document
    Set oDoc = ThisApplication.ActiveDocument

    ' Check to make sure a single face is in the select set.
    If oDoc.SelectSet.Count <> 1 _
        Or Not Typeof oDoc.SelectSet.Item(1) Is Face Then
        MsgBox "A single face must be selected."
        Exit Sub
    End If

    ' Get the Face from the select set.
    Dim oFace As Face
    Set oFace = oDoc.SelectSet.Item(1)

    ' Clear the select set
    oDoc.SelectSet.Clear

    ' Create a key context (required to obtain ref keys for BRep entities)
    Dim KeyContext As Long
    KeyContext = oDoc.ReferenceKeyManager.CreateKeyContext

    ' Get a reference key for the face
    Call oFace.GetReferenceKey(RefKey, KeyContext)

    ' Save KeyContext as a byte array for future use
    Call oDoc.ReferenceKeyManager.SaveContextToArray(KeyContext, ContextData)

End Sub

Public Sub FaceFromReferenceKey()
    'Set a reference to the active document
    Dim oDoc As Document
    Set oDoc = ThisApplication.ActiveDocument

    ' Retrieve ContextKey from byte array
    Dim KeyContext As Long
    KeyContext = oDoc.ReferenceKeyManager.LoadContextFromArray(ContextData)

    ' Bind reference key to the Face object
    Dim oFace As Face
    Set oFace = oDoc.ReferenceKeyManager.BindKeyToObject(RefKey, KeyContext, kFaceObject)

    ' Select the face
    oDoc.SelectSet.Select oFace
End Sub


Sag mal, du weißt aber schon was ein Array ist?

------------------
Grüße Igor

FX64 Software Solutions
Data Management Konferenz 2007 (26. - 27. Juni 2007)

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

Speedy.X
Mitglied
Dipl.Ing.


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

Beiträge: 45
Registriert: 17.05.2005

erstellt am: 29. Mai. 2007 12: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


Alles klar, hatte Tomaten auf den Augen!
Hätte wohl am Wochenende ruhiger treten sollen.


Danke!


Gruß

Rainer

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