Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Viewgröße und Position

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:   Viewgröße und Position (1574 mal gelesen)
elharry
Mitglied



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

Beiträge: 47
Registriert: 03.04.2007

erstellt am: 03. Mrz. 2008 13:12    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 zusammen,

ich möchte prüfen ob alle Views auf einem Zeichnungsblatt liegen.
Damit beim Plotten nichts übersteht und nicht mit gedruckt wird.

Herrausgefunden habe ich schon wie groß das Blatt ist.
Nun wollte ich mit die Boundingbox der Views anschauen und da hänge ich.
Ich habe mir den Code dazu aus der Onlinedoku herraus gesucht.
Weiterhin benötige ich nocht die Position X, Y der Views, wie macht man das?

Sub CATMain()
    Dim DrawingDocument As Document
    Dim DrawingSheets As DrawingSheets
    Dim DrawingSheet As DrawingSheet
    Dim DrawingViews As DrawingViews
    Dim DrawingView As DrawingView
    Dim GenerativeBehavior As Behavior
    Dim I As Integer
    Dim Count As Integer
    Dim Box As String
    Dim oXY
    Dim Xmin As Integer
    Dim Xmax As Integer
    Dim Ymin As Integer
    Dim Ymax As Integer
    Dim Strline As String
    Dim TEST 'As DrawingView
    'Dim MySheet As DrawingSheet
    Dim PSize

    Set DrawingDocument = CATIA.ActiveDocument
    Set DrawingSheets = DrawingDocument.Sheets
    Set DrawingSheet = DrawingSheets.ActiveSheet
    Set DrawingViews = DrawingSheet.Views
    Count = DrawingViews.Count
    'MsgBox ("COUNT VIEWS : " & count)
   
    For I = 1 To Count
        TEST = DrawingViews.Item(I).Name
' --> ab hier funkgioniert es nicht mehr
        DrawingViews.Item(I).Size  oXY

        Xmin = oXY(0)
        Xmax = oXY(1)
        Ymin = oXY(2)
        Ymax = oXY(3)
       
'      Dim MyViewGenBehavior As DrawingViewGenerativeBehavior
'      Set MyViewGenBehavior = TEST.GenerativeBehavior
       
        Strline = "View : " & TEST & vbLf
        Strline = Strline & "XMin : " & Xmin & vbLf
        Strline = Strline & "YMin : " & Ymin & vbLf
        Strline = Strline & "XMax : " & Xmax & vbLf
        Strline = Strline & "YMax : " & Ymax & vbLf
       
        Box = MsgBox(Strline)
    Next
 
    ' Papiergröße auslesen
    Dim drawingDocument1 As Document 'As Variant
    Set drawingDocument1 = CATIA.ActiveDocument
    Dim drawingSheets1  As DrawingSheets 'As Variant
    Set drawingSheets1 = drawingDocument1.Sheets
    Dim drawingSheet1 As DrawingSheet 'As Variant
    Set drawingSheet1 = drawingSheets1.ActiveSheet
   
    Strline = "Blattgröße:" & vbLf
    Strline = Strline & "Papierhöhe  : " & drawingSheet1.GetPaperHeight & vbLf
    Strline = Strline & "Papierbreite : " & drawingSheet1.GetPaperWidth
    MsgBox (Strline)
    ' Papiergröße definieren
    'drawingSheet1.SetPaperHeight 1000
    'drawingSheet1.SetPaperWidth 300

End Sub

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 03. Mrz. 2008 22: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 Nur für elharry 10 Unities + Antwort hilfreich

Hallo elharry,

habe mich noch nicht tiefer mit Deinem Problem beschäftigt, doch aus meiner Erfahrung heraus denke ich, Du musst die Größe des Arrays vor der Nutzung definieren. Also etwa so:

Code:
ReDim oXY(3)
DrawingViews.Item(I).Size  oXY
Dann sollte das erste Problem gelöst sein. Die nächsten Probleme...

[Edit]
Es sollte auch bei "Dim" so lauten:

Code:
Dim oXY()

[/Edit]

mfg,
Lusilnie


------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

[Diese Nachricht wurde von Lusilnie am 03. Mrz. 2008 editiert.]

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

elharry
Mitglied



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

Beiträge: 47
Registriert: 03.04.2007

erstellt am: 04. Mrz. 2008 07:39    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 Lusilnie,

danke für die Antwort. Habe die Deklaration der Variablen geändert.

Aber ich bekomme im VBA Editor noch immer die Meldung

"Fehler beim Kompilieren:
Funktion oder Schnittstelle kann nur eingeschränkt verwendet werden oder verwendet einen Typ der Automatisierung, der von Visual Basic nicht unterstützt wird."

Der Zeiger (gelb) des VBA Editors zeigt dann immer auf
Size in der Zeile

DrawingViews.Item(I).Size oXY

Vieleicht hast Du ja noch eine Idee, währe super.

vielen Dank schon mal und einen schönen Tag.

elHarry

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

CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 04. Mrz. 2008 08:49    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 elharry 10 Unities + Antwort hilfreich

Hallo elharry,

du mußt nur die As-Klausel der DrawingView(s) auskommentieren

Code:
Dim DrawingViews 'As DrawingViews

Gruß
CAMiCADse

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

elharry
Mitglied



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

Beiträge: 47
Registriert: 03.04.2007

erstellt am: 04. Mrz. 2008 12: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

Hallo CAMiCADse,

Danke für die Antwort und sorry, das ich mich erst jetzt melde. Heute ist hier viel los.

Habe das AS Views auskommentiert, aber das funktioniert nicht.
Danach habe ich das ganze aus dem VBA Editor genommen und in eine CATVBS Datei kopiert.
Alle  AS... auskommentiert.

Fehlermeldung: The method Size failed

Ich habe auch folgende Varianten ausprobiert
    DrawingViews.Item(I).Size oXY
    DrawingViews.Item(I).Size oXY ()
    DrawingViews.Item(I).Size oXY (i)

Hast Du eine Idee oder Anregung?
Habe den Code noch mal angehängt, verusche das ganze auch auf anderen Wegen rauszubekommen ob
eine View über das Blatt hängt oder nicht.



Option Explicit
     
Sub CATMain()
    Dim DrawingDocument 'AS Document
    Dim DrawingSheets 'AS DrawingSheets
    Dim DrawingSheet 'AS DrawingSheet
    Dim DrawingViews 'AS DrawingViews
    Dim DrawingView 'AS DrawingView
    Dim GenerativeBehavior 'AS Behavior
    Dim I 'AS Integer
    Dim Count 'AS Integer
    Dim Box 'AS String
    Dim oXY (4)
    Dim Xmin 'AS Integer
    Dim Xmax 'AS Integer
    Dim Ymin 'AS Integer
    Dim Ymax 'AS Integer
    Dim Strline 'AS String
    Dim TEST ''AS DrawingView
    'Dim MySheet 'AS DrawingSheet
    Dim PSize
    'Dim AktivView
    Dim Real_X  'AS Double
    Dim Real_Y  'AS Double
    Dim ThatDrawingView 'AS DrawingView
    Dim Test_X 'AS Double
    Dim Test_Y 'AS Double
    Dim GBehave
    'Set ThatDrawingView = MySheet.Views.ActiveView.Item("MyView")
   

    Set DrawingDocument = CATIA.ActiveDocument
    Set DrawingSheets = DrawingDocument.Sheets
    Set DrawingSheet = DrawingSheets.ActiveSheet
    Set DrawingViews = DrawingSheet.Views
    Count = DrawingViews.Count
    'MsgBox ("COUNT VIEWS : " & count)
   
    For I = 1 To Count
   
        TEST = DrawingViews.Item(I).Name
        Test_X = DrawingViews.Item(I).X
        Test_Y = DrawingViews.Item(I).Y
        'Set GBehave = DrawingViews.Item(I).GenerativeBehavior
        Dim objGeoElements 'AS GeometricElements
        Set objGeoElements = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.ActiveView.GeometricElements
        'ReDim oXY(4)
        DrawingViews.Item(I).Size oXY
        'TEST.Size oXY
        'MsgBox ("NAME der View : " & TEST)
        Xmin = oXY(0)
        Xmax = oXY(1)
        Ymin = oXY(2)
        Ymax = oXY(3)
        Real_X = DrawingViews.ActiveView.X - (DrawingViews.ActiveView.X - DrawingViews.ActiveView.xAxisData) * DrawingViews.ActiveView.Scale2
        Real_Y = DrawingViews.ActiveView.Y - (DrawingViews.ActiveView.Y - DrawingViews.ActiveView.yAxisData) * DrawingViews.ActiveView.Scale2
    Next
End Sub

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

CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 04. Mrz. 2008 13:02    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 elharry 10 Unities + Antwort hilfreich

Hallo,

hab jetzt erst gesehen, dass deine Schleife bei 1 loslegt.
Du mußt bei 3 loslegen.

Views.Item(1)=Main View
Views.Item(2)=Background View

Bei diesen Views kannst du keine Size abfragen.

Gruß
CAMiCADse

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

elharry
Mitglied



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

Beiträge: 47
Registriert: 03.04.2007

erstellt am: 04. Mrz. 2008 14: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 CAMiCADse,

super, genau das war es. Hätte man mit überlegen vieleicht auch drauf kommen sollen.

10 us sind unterwegs.

Noch einen schönen Tag, meiner wird jetzt gut ;-)

Grüße

elHarry

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

Knowledge
Mitglied
Dipl. Ing.


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

Beiträge: 106
Registriert: 02.03.2004

erstellt am: 04. Mrz. 2008 16:07    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 elharry 10 Unities + Antwort hilfreich

Hey Retac,

hast nun deine Lösung gefunden?

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)2020 CAD.de | Impressum | Datenschutz