Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zeichnungshintergrund-Zuweisung weg?

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:  Zeichnungshintergrund-Zuweisung weg? (725 / mal gelesen)
Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 05. Jun. 2019 07:46    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 Ich hab da mal wieder ein Problem.

Und zwar haben wir nen Zeichnungsrahmen-Muster wofür ich eine UserForm aufgebaut habe um diese bei neuen Zeichnungen einzufügen und über die UserForm sollen dann auch nach dem einfügen die Textboxen abgeändert werden.

Das Problem was ich jetzt hab ist das mir nach dem Paste-Befehl die Zuweisung des Sheethintergrunds flöten geht :O
(zumindest glaub ich das)


Code:

Public oDrwDoc As DrawingDocument
Public oDrwSheets As DrawingSheets
Public oActSheet As DrawingSheet
Public oDrwViews As DrawingViews
Public oActMainView As DrawingView
Public oActBckrnd As DrawingView
Public oDrwTexts  As DrawingTexts
Public oSel As Selection
Public oSelObj As Object
______________________________________________________

Private Sub UserForm_Initialize()
   
    Set oDrwDoc = CATIA.ActiveDocument
    Set oDrwSheets = oDrwDoc.Sheets
    Set oActSheet = oDrwSheets.ActiveSheet
    Set oDrwViews = oActSheet.Views
    Set oActMainView = oDrwViews.Item(1)
    Set oActBckrnd = oDrwViews.Item(2)
    Set oDrwTexts = oActBckrnd.Texts
    Set oSel = oDrwDoc.Selection
    Set oSelObj = oSel
   
    oSel.Clear
    oSel.Add oActBckrnd
   
    MsgBox oSel.Item(1).Value.Name
   
    oSel.Clear
   
End Sub
____________________________________________________________

Private Sub CommandButton1_Click()
   
   
    Call InsertDrwFrame
    'nach dem call sollen die TextBoxen angepasst werden
   
    oSel.Clear
    oSel.Add oActBckrnd
   
    MsgBox oSel.Item(1).Value.Name
    oSel.Clear
   
End Sub
_____________________________________________________________________

Private Sub InsertDrwFrame()
   
    Dim oDocs As Documents
    Set oDocs = CATIA.Documents
   
    Dim oPathDrwFrame As String
    oPathDrwFrame = "[Pfad]"
   
   
    'Muster öffnen
    On Error Resume Next
    Dim oDrwFrame As DrawingDocument
    Set oDrwFrame = oDocs.Open(oPathDrwFrame)
   
    If Err.Number <> 0 Then
        MsgBox "Auf die Muster-Datei kann nicht zugegriffen werden."
        Exit Sub
    End If
    On Error GoTo 0
   
    'Hintergrund des Musters kopieren und in die Zeichnung einfügen
    Dim oSelTemp As Selection
    Dim oSelObjTemp As Object
    Set oSelTemp = oDrwFrame.Selection
    Set oSelObjTemp = oSel
   
    oSelTemp.Clear
    oSelTemp.Add oDrwFrame.Sheets.ActiveSheet.Views.Item(2)
    oSelTemp.Copy
    oSelTemp.Clear
    oDrwDoc.Activate
    oActBckrnd.Activate
    oSel.Clear
    oSel.Add oActSheet
    oSel.Paste '<---- Hier scheint das Problem zu liegen wenn ich die Zeile ausklammer behalte ich die Zuweisung
    oSel.Clear
    oDrwFrame.Close
    oActMainView.Activate
   
End Sub


Übrigens ist das nur eine Test-UserForm aufs nötigste reduziert um den "Fehler" zu finden.
Und die MsgBoxen sind nur eben zum Überprüfen für mich.

Weiß einer was ich da falsch mache?

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

[Diese Nachricht wurde von Booyaka am 05. Jun. 2019 editiert.]

[Diese Nachricht wurde von Booyaka am 05. Jun. 2019 editiert.]

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 05. Jun. 2019 14:27    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 Booyaka 10 Unities + Antwort hilfreich

Hallo,

auch wenn ich den Fehler an sich nicht sehe, rate ich eher dazu nicht die komplette View aus deiner Vorlage zu kopieren sondern nur dessen (relevante) Inhalte (z.B. über sel.search ...).

Ich hatte es früher auch mal auf deinem Weg versucht und bin da nie glücklich mit gewesen. Evtl. ist es ja auch ein Problem wenn zwei Views mit dem Namen "Background View" existieren. Die ersten beiden Ansichten einer Zeichnung sind ja auch nicht mit "normalen" Geometrieansichten zu vergleichen.

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 05. Jun. 2019 14: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 Booyaka 10 Unities + Antwort hilfreich

Servus

Ich zweifle daran dass du eine View direkt in eine View einfügen kannst. (obwohl es in einem CATScript funktioniert)
Probier mal in der Musterzeichnung die View zu selektieren und dann mit Search alles darin zu selektieren und kopieren.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 05. Jun. 2019 14: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

Danke euch beiden schon mal für de Antwort ich werd es mal damit probieren die Einzelelemente zu selektieren anstatt dem View.
Meld mich hierzu später nochmal.


Und ja es funktioniert an sich ganz gut mit dem kopieren der View ^^'.

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 05. Jun. 2019 17: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 Booyaka 10 Unities + Antwort hilfreich

Zitat:

Ich zweifle daran dass du eine View direkt in eine View einfügen kannst.

da sehe ich nicht unbedingt das Problem, er selektiert ja das aktive Blatt der Zielzeichnung, vermute nur das bei der Background View (und der Working View) es nicht zulässig ist eine weitere View mit dem selben Namen einzufügen.

Per Skript habe ich es auch schon mal hinbekommen die Background View komplett zu löschen, zum Glück hatte ich das vor der Auslieferung gemerkt - Puh! ;-).

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

Booyaka
Mitglied



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

Beiträge: 122
Registriert: 22.06.2012

CATIA V5 R19, 24, 26, 28, 29

erstellt am: 06. Jun. 2019 09:59    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

Also grad eben mit Erfolg getestet und auch soweit neu angepasst. Danke euch beiden vielmals für den Denkanstoß.

Tatsächlich scheint das Problem zu sein das ich quasi nen Backround im Backround einfügen möchte.

Habs wie ihr schon vorgeschlagen habt direkt die Elemente kopiert.

Dabei ist mir aufgefallen das man in dem searchbefehl ja auch mehrere Typen angeben kann mit trennung durch ein Plus.

Code:

oSelTemp.Search("Type=Line+Text+Circle,sel")

oder gibts da ne bessere Methode und mehrere Typen zu selektieren? ^^'

------------------
„Nicht Erfolg ist der Schlüssel zum Glück,
sondern Glück ist der Schlüssel zum Erfolg.
Wenn du gerne tust, was du tust, wirst du auch erfolgreich sein.“ ― Albert Schweitzer

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Jun. 2019 17:22    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 Booyaka 10 Unities + Antwort hilfreich

Servus

Der Filter lässt sich sehr gut über den Makrorekorder aufzeichnen.
In deinem Fall könnte dieser passen:

Code:
oSelTemp.Search( "Type!=DrwView,sel")
also alles außer eine View (ggf noch weitere ausschließen) oder mit Angabe was du alles haben willst:
Code:
oSelTemp.Search("CATDrwSearch.DrwAreaFill + CATDrwSearch.DrwText + CATDrwSearch.2DGeometry,sel")

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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