Hallo Zusammen,
unter V5 R18 habe ich in einem CATScript folgendes programmiert:
In einer Drawing selektiere ich eine View und innerhalb der View werden alle Objekte auf Layer 0 gesetzt. Anschließend werden in der View alle Linien gesucht, selektiert und die Länge der Linien ausgewertet.
Nach der Längenauswertung erfolgt eine Abfrage bzgl. der Linienlänge und im Moment nur eine Msgbox mit dem Hinweis, dass die Linie auf einen anderen Layer geschoben werden muss.
Das Linienobjekt mit dem ich die Längenauswertung gemacht wird heißt: oSel.Item2(iZaehler). Doch dieses kann für die Visproperties nicht angesprochen werden, es kommt die Fehlermeldung: Das Objekt unterstützt die Eigenschaft oder Methode nicht.
Hier der Codeausschnitt:
Dim iZaehler As Integer
iZaehler = 0
For iZaehler = 1 To iCount_SelectedElements
dim select_line as selection
set select_line = oSel.Item2(iZaehler)
'oSel.Item2(iZaehler).Value.StartPoint.GetCoordinates intStartPointCoordArr
'oSel.Item2(iZaehler).Value.EndPoint.GetCoordinates intEndPointCoordArr
select_line.Value.StartPoint.GetCoordinates intStartPointCoordArr
select_line.Value.EndPoint.GetCoordinates intEndPointCoordArr
'***Punktkoordinaten auslesen
dx1 = intStartPointCoordArr(0)
dy1 = intStartPointCoordArr(1)
dx2 = intEndPointCoordArr(0)
dy2 = intEndPointCoordArr(1)
'Länege über Pythagoras berechnen
dim dine_length
dline_length = Round(Sqr(((dx2 - dx1) ^ 2) + ((dy2 - dy1) ^ 2)), 3)
MsgBox ("Linie " & iZaehler & " // Name: " & select_line.value.name &" // Länge in mm : " & dline_length)
'Vergleich der errechneten Lenge zur Maximallaenge
'*************Ende Linienlaenge berechnen
'*************Start Laenge der Line zur Mindestlaenge vergleichen
Dim dmin_length As Double
dmin_length = 50
If dline_length < dmin_length Then
MsgBox "Linie " & iZaehler & " // Name: " & select_line.value.name &" : Länge = " & dline_length & " mm" & " ist < als 50 mm: " & "Linie muss auf Layer 2 geschoben werden!"
Dim visProperties2 'As CatVisLayerType
Set visProperties2 =oSel.Item2(iZaehler).VisProperties ' !!!Hier ist der Fehler !!!!
visProperties1.SetLayer catVisLayerBasic, 2
Else
MsgBox "Linie " & iZaehler & " // Name: " & select_line.value.name &": Länge = " & dline_length & " mm" & " ist > als 50 mm: " & "Linie bleibt erhalten!"
End If
Next
'*************Ende Laenge der Line zur Mindestlaenge vergleichen
Wie kann ich dieses eine selektierte Objekt oSel.Item2(iZaehler) ansprechen, damit es auf einen Layer (Layer 2) geschoben werden kann?
Gruß
Reimund
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP