Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Abhilfe bei 'Compile error: Function or interface marked as restricted'

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:  Abhilfe bei 'Compile error: Function or interface marked as restricted' (755 mal gelesen)
joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 03. Jun. 2015 17: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

obige Fehlermeldung tritt bei der Makro-Programmmierung öfters auf;
insbesondere dann, wenn die Variablen 'Catia-getypt' werden.
(Der Code ist im Wesentlichen vom Makro-Rekorder übernommen.)

Beispiel:

Code:

Dim odrVws As DrawingViews
Dim odrVw As DrawingView
Dim oGB1 As DrawingViewGenerativeBehavior
Dim odrVwClip As DrawingView
Dim oGB2 As DrawingViewGenerativeBehavior
Dim double1 As Double
Dim double2 As Double
Dim arrProfile(3)
Dim odrVwGL1 As DrawingViewGenerativeLinks
Dim odrVwGL2 As DrawingViewGenerativeLinks

Set odrVws = CATIA.ActiveDocument.Sheets.ActiveSheet.Views
Set odrVw = odrVws.ActiveView

'section view
Set oGB1 = odrVw.GenerativeBehavior
Set odrVwClip = odrVws.Add("AutomaticNaming")
Set oGB2 = odrVwClip.GenerativeBehavior

odrVwClip.X = 93.922173
odrVwClip.Y = 403.093811

double1 = odrVw.[Scale]
odrVwClip.[Scale] = 1#

double2 = odrVw.Angle
odrVwClip.Angle = 0#

arrProfile(0) = 128.848267
arrProfile(1) = 166.59433
arrProfile(2) = 128.848267
arrProfile(3) = 20#

Bei der nachfolgenden Zeile tritt der Fehler auf:
oGB2.DefineSectionView arrProfile, "SectionView", "Offset", 0, oGB1

Set odrVwGL1 = odrVwClip.GenerativeLinks
Set odrVwGL2 = odrVw.GenerativeLinks
odrVwGL2.CopyLinksTo odrVwGL1
oGB2.Update


Zur Abhilfe kommen zwei Methoden in Betracht:

1) Variable 'as Object' deklarieren, also statt

Code:

Dim oGB2 As DrawingViewGenerativeBehavior


nun
Code:

Dim oGB2 As Object


definieren.
Nachteil: IntelliSense-Hilfe geht für oGB2 verloren.

2) Zusätzliche Dummy-Variable vom Typ 'Variant' einführen, z.B.

Code:

Dim oGB2Variant  'default Typ ist 'Variant'


Die gleiche Anweisung, jedoch mit dem Dummy-Object
Code:

Set oGB2Variant = oGB2  'getypte Variable 'umwandeln' in Variant
oGB2Variant.DefineSectionView arrProfile, "SectionView", "Offset", 0, oGB1


läuft fehlerfrei durch.
Danach kann weiter mit der Catia-getypten Variablen programmiert werden.
Intellisense bleibt erhalten.

Auf voriges Beispiel angewandt:

Code:

Dim odrVws As DrawingViews
Dim odrVw As DrawingView
Dim oGB1 As DrawingViewGenerativeBehavior
Dim odrVwClip As DrawingView
Dim oGB2 As DrawingViewGenerativeBehavior
Dim double1 As Double
Dim double2 As Double
Dim arrProfile(3)
Dim odrVwGL1 As DrawingViewGenerativeLinks
Dim odrVwGL2 As DrawingViewGenerativeLinks
Dim oGB2Variant

Set odrVws = CATIA.ActiveDocument.Sheets.ActiveSheet.Views
Set odrVw = odrVws.ActiveView

'section view
Set oGB1 = odrVw.GenerativeBehavior

Set odrVwClip = odrVws.Add("AutomaticNaming")

Set oGB2 = odrVwClip.GenerativeBehavior

odrVwClip.X = 93.922173
odrVwClip.Y = 403.093811

double1 = odrVw.[Scale]
odrVwClip.[Scale] = 1#

double2 = odrVw.Angle
odrVwClip.Angle = 0#

arrProfile(0) = 128.848267
arrProfile(1) = 166.59433
arrProfile(2) = 128.848267
arrProfile(3) = 20#

Set oGB2Variant = oGB2
oGB2Variant.DefineSectionView arrProfile, "SectionView", "Offset", 0, oGB1

Set odrVwGL1 = odrVwClip.GenerativeLinks
Set odrVwGL2 = odrVw.GenerativeLinks
odrVwGL2.CopyLinksTo odrVwGL1
oGB2.Update



Bislang hab ich meistens Methode 1 verwendet, sporadisch Methode 2,
allerdings in abgewandelter Form (oDummy as Object).

In Zukunft wird's meist Methode 2 sein.

Tschau,
Joe

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