Hallo an alle, die das lesen,
ich möchte im Modellbereich bei vertikal geteilten Ansichtsfenstern
jedes nacheinander auswählen und jeweils ein BKS aktiv setzen.
Leider klappt das siehe unten nicht so.
Vielleicht ist die Schleife über alle viewports nicht so OK?
Ich habe es nochmal unter anderem Betreff versucht,denn das Ansichtsfenster teilen
klappt ja nun. Nun habe ich immernoch das BKS setzen Problem!!!
Ich habe nun folgenden Code erstellt, um das Modellfenster zu teilen und in den einzeln
Fenstern jeweils ein BKS zu aktivieren.
Beim Durchlauf werden die Seiten rechts und links erkannt (Msgbox erscheint).
Dann wird rechts die richtige Ansicht kurz dargestellt, dann wird nach links gewechselt, auch hier wird die
richtige Ansicht kurz dargestellt.
Nach Beenden des Programms bleibt nur links die richtige Ansicht stehen. Warum???
Sieht jemand im Code meinen Denkfehler???
Viele Grüße
GJ-Werner
'---- der Modellbereich wird zur weiteren Bearbeitung in zwei vertikale Ansichtsfenster geteilt ----
' ---- Erstellen und Aktivieren eines neuen Ansichtsfensters ----
Dim vportObj As AcadViewport
ThisDrawing.Viewports.DeleteConfiguration ("benutzeransicht")
Set vportObj = ThisDrawing.Viewports.Add("benutzeransicht")
ThisDrawing.ActiveViewport = vportObj
' vport in 2 Fenster teilen
vportObj.Split acViewport2Vertical
' ---- Durchlaufen der Ansichtsfenster,Hervorheben jedes Ansichtsfensters und Anzeigen ----
' ---- der rechten oberen und linken unteren Ecke jedes Fensters
Dim LLCorner As Variant 'untenLinks
Dim URCorner As Variant 'obenrechts
For Each vportObj In ThisDrawing.Viewports
ThisDrawing.ActiveViewport = vportObj
LLCorner = vportObj.LowerLeftCorner
URCorner = vportObj.UpperRightCorner
'MsgBox (LLCorner(0) & " und " & LLCorner(1))
'MsgBox (URCorner(0) & " und " & URCorner(1))
'-- bei Zweiteilung vertikal RECHTS LL Corner (0.5,0) UR Corner (1,1)
'-- bei Zweiteilung vertikal LINKS LL Corner (0,0) UR Corner (0.5,1)
If vportObj.Name = "benutzeransicht" Then
If LLCorner(0) = 0.5 And LLCorner(1) = 0 And URCorner(0) = 1 And URCorner(1) = 1 Then
MsgBox ("rechts")
ThisDrawing.SendCommand ("zo" & vbCr & "g" & vbCr)
ThisDrawing.ActiveUCS = ThisDrawing.UserCoordinateSystems(bksstation)
ThisDrawing.SendCommand ("drsicht a ")
MsgBox ("ansicht erstellt")
End If
If LLCorner(0) = 0 And LLCorner(1) = 0 And URCorner(0) = 0.5 And URCorner(1) = 1 Then
MsgBox ("links")
ThisDrawing.SendCommand ("zo" & vbCr & "g" & vbCr)
ThisDrawing.ActiveUCS = ThisDrawing.UserCoordinateSystems(bksachsenebene)
ThisDrawing.SendCommand ("drsicht a ")
MsgBox ("ansicht erstellt")
End If
End If
Next vportObj
MsgBox ("fertig zur weiteren Bearbeitung")
------------------
D. Werner
[Diese Nachricht wurde von GJ-Werner am 28. Jan. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP