Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Achsensystemkomponenten im Produkt messen

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:   Achsensystemkomponenten im Produkt messen (2005 mal gelesen)
  
Die Gewinne der Zukunft werden mit intelligenten, autonomen Elektrofahrzeugen eingefahren. (3DEXPERIENCE)
MarcDe
Mitglied



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

Beiträge: 137
Registriert: 11.10.2006

CATIA R18 SP2, BN 18, HF 162
Win 7 64Bit

erstellt am: 15. Jul. 2013 15:10    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


Messen.zip

 
Hallo zusammen,

ich möchte innerhalb eines Produktes (s. Anhang) Komponenten (Ebenen, Origin-Point) eines Achsensystems von den Parts, die im Produkt hängen, zueinander messen. Leider spuckt mir Catia merkwürdige Ergebnisse aus, die ich mir nicht erklären kann. In diesem Beispiel 0, obwohl die Achsensysteme sehrwohl verschoben sind. Per Hand geht es natürlich, sprich direkt im 3D! 

Kann mir da jmd helfen oder hat einen Tipp? 

Zugehöriges Messmakro:

Code:

Sub catmain()
    Dim ac As ProductDocument
    Set ac = CATIA.ActiveDocument
   
    Dim documents1 As Documents
    Set documents1 = CATIA.Documents
   
    Dim partDocument1 As PartDocument
    Set partDocument1 = documents1.Item("Part1.CATPart")
   
    Dim part1 As Part
    Set part1 = partDocument1.Part
   
    Dim axisSystems1 As AxisSystems
    Set axisSystems1 = part1.AxisSystems
   
    Dim axisSystem1 As AxisSystem
    Set axisSystem1 = axisSystems1.Item("Absolute Axis System")
   
    Dim partDocument2 As PartDocument
    Set partDocument2 = documents1.Item("Part2.CATPart")
   
    Dim part2 As Part
    Set part2 = partDocument2.Part
   
    Dim axisSystems2 As AxisSystems
    Set axisSystems2 = part2.AxisSystems
   
    Dim axisSystem2 As AxisSystem
    Set axisSystem2 = axisSystems2.Item("Absolute Axis System")
   
    Dim p1 As Product
    Set p1 = ac.Product.Products.Item(1)
   
    Dim p2 As Product
    Set p2 = ac.Product.Products.Item(2)
   
    Dim ref1 As Reference
    'Set ref1 = p1.CreateReferenceFromName(p1.PartNumber & "/!Selection_FVertex:(Vertex:(Neighbours:(Face:(Brp:(" & axisSystem1.Name & ";2);None:();Cf11:());Face:(Brp:(" & axisSystem1.Name & ";3);None:();Cf11:());Face:(Brp:(" & axisSystem1.Name & ";1);None:();Cf11:()));Cf11:());" & axisSystem1.Name & ";InSameTool;Z0;G3491)")
    Set ref1 = part1.CreateReferenceFromName("Selection_RSur:(Face:(Brp:(AxisSystem.1;2);None:();Cf11:());AxisSystem.1;Z0;G2796)")
   
    Dim ref2 As Reference
    'Set ref2 = p2.CreateReferenceFromName(p2.PartNumber & "/!Selection_FVertex:(Vertex:(Neighbours:(Face:(Brp:(" & axisSystem2.Name & ";2);None:();Cf11:());Face:(Brp:(" & axisSystem2.Name & ";3);None:();Cf11:());Face:(Brp:(" & axisSystem2.Name & ";1);None:();Cf11:()));Cf11:());" & axisSystem2.Name & ";InSameTool;Z0;G3491)")
    Set ref2 = part2.CreateReferenceFromName("Selection_RSur:(Face:(Brp:(AxisSystem.1;2);None:();Cf11:());AxisSystem.1;Z0;G2796)")
   
    Dim ma As Measurable
    Set TheSPAWorkbench = ac.GetWorkbench("SPAWorkbench")
    Set ma = TheSPAWorkbench.GetMeasurable(ref1)
   
    Dim MinimumDistance As Double
    MinimumDistance = ma.GetMinimumDistance(ref2)
   
    MsgBox MinimumDistance
End Sub


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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 15. Jul. 2013 16:15    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 MarcDe 10 Unities + Antwort hilfreich

Ich checke Deine Referenzen nicht. Ich denke hier liegt auch Dein Fehler.

Du setzt zwei Mal die gleiche Referenz.

Warum setzt Du die Referenzen so kompliziert?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

MarcDe
Mitglied



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

Beiträge: 137
Registriert: 11.10.2006

CATIA R18 SP2, BN 18, HF 162
Win 7 64Bit

erstellt am: 15. Jul. 2013 16: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

Moin Henry,

Zitat:
Du setzt zwei Mal die gleiche Referenz.

Es ist immer eine Ebene vom Achsensystem in jeweils einem Part. BRep sieht da natürlich gleich aus, wird jedoch in je einem anderen Part erzeugt. Du kannst auch testweise mal den anderen BREP-String über Product einkommentieren, da kommt dasselbe heraus: 0.

Zitat:
Warum setzt Du die Referenzen so kompliziert?

Wie soll ich sie anders setzen? Vom Achsensystem gibt es keine Member wie XZ-Plane als Referenz. Lediglich die Origin-Point Referenz als Member, aber die ist leider abhängig von der Definition des Achsensystems und somit nicht nutzbar, da zu 90% nicht gesetzt von Catia.

Da bleiben nur noch unschöne BREPs. 

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: 11074
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Jul. 2013 20:08    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 MarcDe 10 Unities + Antwort hilfreich

Servus
In deinen Referencen fehlt im Pfad die Instanz des Parts. Leider hat es mit MinimumDistance auch nicht geklappt, alternativ kann man die Koordinaten der Achsensysteme ermitteln und dann den Abstand berechnen.
Anbei ein Beispiel:
Code:
Option Explicit

Sub CATMain()

Dim RootProduct As Product
Dim osel As Selection
Dim osel_obj As Object
Dim Part1Product As Product
Dim Part2Product As Product
Dim oRef1 As Reference
Dim oRef2 As Reference
Dim Measure 'As Measurable
Dim TheSPAWorkbench As SPAWorkbench
Dim ComponentsAxSys2(11)
Dim ComponentsAxSys1(11)
Dim Distance As Double

'Allgemein
Set RootProduct = CATIA.ActiveDocument.Product
Set osel_obj = CATIA.ActiveDocument.Selection
Set osel = osel_obj

'zwischen welchen Produkten soll gemessen werden
Set Part1Product = RootProduct.Products.Item(1)
Set Part2Product = RootProduct.Products.Item(2)

'erstes Achsensystem ermitteln
osel.Clear
osel.add Part1Product
osel.Search "CATPrtSearch.AxisSystem,sel"
Set oRef1 = CreateReferenceFromSelection(RootProduct, osel.Item2(1))

'zweites Achsensystem ermitteln
osel.Clear
osel.add Part2Product
osel.Search "CATPrtSearch.AxisSystem,sel"
Set oRef2 = CreateReferenceFromSelection(RootProduct, osel.Item2(1))

'messen
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set Measure = TheSPAWorkbench.GetMeasurable(oRef1)
Measure.GetAxisSystem ComponentsAxSys1
 
Set Measure = TheSPAWorkbench.GetMeasurable(oRef2)
Measure.GetAxisSystem ComponentsAxSys2

Distance = Sqr((ComponentsAxSys1(0) - ComponentsAxSys2(0)) ^ 2 + (ComponentsAxSys1(1) - ComponentsAxSys2(1)) ^ 2 + (ComponentsAxSys1(2) - ComponentsAxSys2(2)) ^ 2)

MsgBox Distance

End Sub


Function CreateReferenceFromSelection(Prod As Product, Selected As AnyObject) As Reference
    'Quelle: http://www.gtwiki.org/mwiki/index.php?title=Create_Product_Level_References_for_Constraints_and_Publication
    Dim ParentProd As Product
    Dim obj As AnyObject
    Dim path As String
   
    Set ParentProd = Selected.LeafProduct
    Set obj = Selected.Value
    path = GetComponentPath(Prod, ParentProd)
    If path <> "" Then
        Set CreateReferenceFromSelection = Prod.CreateReferenceFromName(path & "/!" & obj.Name)
    End If
End Function

Function CreateReferenceFromObject(Prod As Product, LeafProduct As Product, obj As AnyObject) As Reference
    'Quelle: http://www.gtwiki.org/mwiki/index.php?title=Create_Product_Level_References_for_Constraints_and_Publication
    Dim path As String
       
    Set path = GetComponentPath(Prod, LeafProduct)
    If path <> "" Then
        Set CreateReferenceFromObject = Prod.CreateReferenceFromName(path & "/!" & obj.Name)
    End If
End Function

Function GetComponentPath(product1 As Product, Product2 As Product) As String
    'Quelle: http://www.gtwiki.org/mwiki/index.php?title=Create_Product_Level_References_for_Constraints_and_Publication
    Dim tempProd As Product
    Dim i As Integer
    Dim try As String
   
    If product1.Name = Product2.Name Then
        GetComponentPath = product1.Name
        Exit Function
    End If
    For i = 1 To product1.Products.Count
        Set tempProd = product1.Products.Item(i)
        try = GetComponentPath(tempProd, Product2)
        If try <> "" Then
            GetComponentPath = product1.Name & "/" & try
            Exit Function
        End If
    Next
    GetComponentPath = ""
End Function


Gruß
Bernd

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

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

CadV5UserR
Mitglied
Dipl.Ing. Maschinenbau


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

Beiträge: 78
Registriert: 18.04.2008

Windows 7 x64 Professional SP1
Dell Precision T3500
Intel Xeon CPU W3580 3.33GHz
24Gb Ram
NVIDIA Qudro 4000
Catia V5R20 Sp6
SmarTeam V5R20 SP6

erstellt am: 15. Jul. 2013 20:14    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 MarcDe 10 Unities + Antwort hilfreich

Hallo MarcDe

Leider kann ich Dein script mangels CATIA nicht testen.
Allerdings fällt mir grundlegend ein Problem auf.

Du fragst das erste Achsensystem in einem Part1.CATPart ab.
Das Problem ist nur, wie soll Catia bei deinem Script wissen, welches Part1.CATPart gemeint ist, wenn dieses mehrfach in deinem Produkt oder an anderer stelle verbaut wurde?

Um eine Eindeutigkeit zu erreichen musst du die Referenzen der Instanzen des  ganzen Pfades vom Produkt zum Part zum Achsensystem angeben.

Schau dir mal den Link an. ( Beispiel mit Abstand zwischen Punkten )
http://ww3.cad.de/foren/ubb/Forum137/HTML/005219.shtml#000013
Ein Tipp dazu habe ich aber noch, um die genauen Namen der Teile zu erhalten Speicher dein Hauptprodukt mit Speichern unter als Text ab.
Das Ergebnis sollte so aussehen:
RootProduct : Product1
  |
  |- Product : Part1 (Part1.1)
  |
  |- Product : Part2 (Part2.1)


In deinem Beispiel sollte die Referenz in etwa so aussehen:

Set ref1 = p1.CreateReferenceFromName ("product1/Part1.1/!Selection_FVertex.......”)
Set ref2 = p1.CreateReferenceFromName ("product1/Part2.1/!..........”)

Leider habe noch keine Achsabstände gemessen, und kann es ohne Catia nicht testen.

Ich hoffe ich konnte die helfen. Testen kann ich das ganze aber erst ende der Woche.

Gruß,
Ralf

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

MarcDe
Mitglied



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

Beiträge: 137
Registriert: 11.10.2006

CATIA R18 SP2, BN 18, HF 162
Win 7 64Bit

erstellt am: 16. Jul. 2013 09:21    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

Moin,

Zitat:
In deinen Referencen fehlt im Pfad die Instanz des Parts

Ich dachte die Referenz des Parts ist implizit mit übergeben, da ich die Methode "CreateReferenceFromName" vom Object part1 bzw. part2 jeweils aufgerufen habe?

Zitat:
Leider hat es mit MinimumDistance auch nicht geklappt

Ich vermute eher, dass ist ein Catia Bug (mal wieder)?  Denn ich hab ja jeweils in den BREP-Zeilen eine Alternativzeile, die auch das Part und die Partnumber berücksichtigt und dort kommt ebenfalls 0 raus. Also kann es meiner Meinung nicht daran liegen, dass im BREP-String ein Hinweis auf das Zielpart fehlt. Bin mir jedoch auch nicht 100% sicher, es deutet aber darauf hin, da bei beiden Wegen jeweils 0 rauskommt, sprich: es macht keinen Unterschied ob ich die Referenz mit angebe im BREP-String oder ob ich einen lokalen BREP-String nehmen, jedoch die Methode von part1 bwz. part2 Object aufrufe und somit wieder klar ist, welches System gemeint ist.

Zitat:
Du fragst das erste Achsensystem in einem Part1.CATPart ab.
Das Problem ist nur, wie soll Catia bei deinem Script wissen, welches Part1.CATPart gemeint ist, wenn dieses mehrfach in deinem Produkt oder an anderer stelle verbaut wurde?


Ja prinzipiell hast du natürlich recht, das wäre jedoch schon der nächste Schritt. Ich habe diesen "eindeutigen" BREP-String ja auch in meinem Beispiel - so wie du ihn beschrieben hast - , jedoch auskommentiert, weil er auch nicht funktionierte. Catia liefert egal in welchem Fall immer 0 zurück.

@bgrittmann: Danke für das Beispiel. Das Problem ist, ich brauche von einem beliebigen Achsensystem zu einem beliebigen anderen System innerhalb eines Produktes den Origin-Abstand UND auch alle Winkel zwischen allen Ebenen. Ich muss die komplette Verschiebung und Verdrehung beider Achsensysteme ermitteln.

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 16. Jul. 2013 09:36    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 MarcDe 10 Unities + Antwort hilfreich

Hallo MarcDe,

sorry, hatte das total übersehen, dass Du zwei Parts hast. :-)
So hast Du natürlich vollkommen Recht. :-)

Ich vermute jetzt, dass Du die Referenz auf Produktebene bilden musst, statt auf Partebene.

Ich denke aber auch, dass Bernds ansatz der beste ist. Also Koordinaten der Achsensysteme holen und dann das problem mathematisch lösen. Geht einfach und aht weniger Fehlerqullen, da weniger CATIA (*wechlach*).

Ich mache es so ähnlich bei http://hoblila.wordpress.com/download/ nur, dass ich da die Abstände nicht noch ausgebe.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

MarcDe
Mitglied



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

Beiträge: 137
Registriert: 11.10.2006

CATIA R18 SP2, BN 18, HF 162
Win 7 64Bit

erstellt am: 16. Jul. 2013 09:55    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

Moin Henry,

ja ich bin auch so ein Fan von "wechvoncatia", aber manchmal ist das nicht so einfach  
Ich bin vor einiger Zeit schon mal auf dein Tool gestoßen.

Das Problem hier ist: Ich hab das ganze schon versucht mathematisch zu lösen, d.h. bin über Transformationsmatrizen gegangen, aber leider liefert Catia - obwohl eine Verschiebung der Achsensysteme da ist - hier oft auch nur falsche Matrizen zurück, die nicht nutzbar sind. GetComponents lieferter mir schon so oft keine Verschiebung zurück, obwohl die Achsensysteme verschoben waren.   Das hat mich stutzig gemacht und mein Ausweg war dann über "Messen" zu gehen und das so zu machen, wie in meinem Eingangspost. Aber das klappt nun auch nicht     

Was bleibt noch?

Mein Ziel ist folgendes: Ich möchte - hört sich einfach an ja - einfach die Snap-Funktionalität per Api nachbauen. D.h. ich möchte per Api ein Part mit seinem Hauptachsensystem auf ein anderes Part snappen können (beide Achsensysteme liegen übereinander). Desweiteren möchte ich die Methode überladen, dass ich auch ein Part auf ein selbstdefiniertes Achsensystem snappen kann. Dafür benötige ich natürlich alle Winkel und Abstände von beiden Achsensystemen. Teilweise funktioniert der Algorithmus bereits (in C# geschrieben), aber manchmal, z. B. über Produktebenen hinweg, macht er einfach nur Probleme, weil Catia die Transformationmatrizzen nicht korrekt liefert!  

[Diese Nachricht wurde von MarcDe am 16. Jul. 2013 editiert.]

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

MarcDe
Mitglied



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

Beiträge: 137
Registriert: 11.10.2006

CATIA R18 SP2, BN 18, HF 162
Win 7 64Bit

erstellt am: 16. Jul. 2013 11:06    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

Moin nochmal,

ich glaube das mit den Transformationsmatrizzen war ein Irrtum. Mir ist es entfallen, dass GetComponents jeweils nur die Positionsmatrix zu seinem nächsthöheren ProductDocument liefert. 

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