von clag » Sa, 25.10.2025 14:02
			
			
			für den Fall jemand möchte so etwas oder ähnliches, habe ich den Code noch ein bisschen aufgeräumt. 
Das Makro dient dazu den aktuellen Zoom auf einen Wert einzustellen wo die "MicroSchritte" also Alt+ Pfeiltasten in Draw auf einen Wert eingestellt werden der zu 1 passt bzw ein passender Bruchteil ist , denn die krummen Zwischenwerte die Draw bei anderen Zoomwerten einstellt bringen das exakte einrasten durcheinander, nicht die Ansicht aber wenn man dann mit Alt+ Pfeiltasten Zeichnungselemente verschiebt,  0.7, 0.65 , 1.3 o.ä. machen in meinen Augen keinen Sinn. 
Ich habe die beiden Zoom Makros auf Ctrl-Alt+Links und Ctrl-Alt+Rechts gelegt so kann ich schnell aus jeder Zoomstufe zur nächsten passenden Zoomstufe größer oder kleiner umstellen . Ich habe zwei Arten von Array verwendet zum Üben und die jeweilige MsgBox ist nur auskommentiert, kann man zum besseren Verständnis wieder aktivieren dann aber die "GrossAnzeige" auskommentieren. Der Dialog ist Bastelwerk kann man nichts zu hochladen, ganz simple ein Dialog mit einem LabelElement beides in gleicher HgFarbe und gut war es. 
Code: Alles auswählen
Sub Zoom_enlarge
	Zoomy =  thiscomponent.currentcontroller.ZoomValue
' mit einem großen Array
	za = Array(Array(3000,  1763, 755,  587, 352, 278, 135, 66, 33,    16,     8),_
			Array(2382,  1411, 671,  535, 332, 265, 132, 66, 33,    16,     8),_
			Array(1764,  1059, 588,  482, 312, 252, 130, 66, 33,    16,     8),_
			Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4,  8.25, 16.66))
	For i = UBound(za()(0)) To LBound(za()(0)) step -1
		if zoomy < za(1)(i) then 
			thiscomponent.currentcontroller.ZoomValue = za(1)(i)
			GrossAnzeige za(3)(i)
'			msgbox " aktueller Zoommittelwert auf " & za(1)(i) & "%" & chr$(10) &_
'					" eingestellt für : " & za(3)(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & za(2)(i) & "% - " &  za(0)(i) & "%"
			exit sub 
		end if
	Next
' mit 4 einzelnen Arrays
'
'	zo = Array(3000,  1763, 755,  587, 352, 278, 135, 66, 33,    16,     8)
'	zm = Array(2382,  1411, 671,  535, 332, 265, 132, 66, 33,    16,     8)
'	zl = Array(1764,  1059, 588,  482, 312, 252, 130, 66, 33,    16,     8)
'	zx = Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4,  8.25, 16.66)
'
'	For i = UBound(zo) To LBound(zo) step -1
'		if zoomy < zm (i) then 
'			thiscomponent.currentcontroller.ZoomValue = zm (i)
'			GrossAnzeige zx(i)
'			msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
'					" eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & zl(i) & "% - " &  zo(i) & "%"
'			exit sub 
'		end if
'	Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub Zoom_reduce
	Zoomy =  thiscomponent.currentcontroller.ZoomValue
	zo = Array(3000, 1763, 755,  587, 352, 278, 135, 66, 33, 16,       8)
	zm = Array(2382, 1411, 671,  535, 332, 265, 132, 66, 33, 16,       8)
	zl = Array(1764, 1059, 588,  482, 312, 252, 130, 66, 33, 16,       8)
	zx = Array(0.05,  0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4, 8.25, 16.55) 
	For i = LBound(zo)+1 To UBound(zo)
	if i =10 then exit sub
		if zoomy > zo (i ) then 
			thiscomponent.currentcontroller.ZoomValue = zm(i )
 
'			msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
'					" eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & zl(i) & "% - " &  zo(i) & "%"
			GrossAnzeige zx(i)
			exit sub 
		end if
	Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub GrossAnzeige (anzeigewert)
	dialoglibraries.loadlibrary("Standard")
	oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
	'	oDlg.GetControl("TextField1").text = anzeigewert & " mm Microsteps"
		oDlg.GetControl("Label1").text = anzeigewert & " mm"
		oDlg.setVisible(true)
        wait(1500)
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
die Zeile mit TextField1 kann eigentlich raus weil TextField mit einem blinkrenden Curser daherkam auch im "nur Lesen" Modus, 
das war unschön darum nun Label1
 
			
			
							für den Fall jemand möchte so etwas oder ähnliches, habe ich den Code noch ein bisschen aufgeräumt. 
Das Makro dient dazu den aktuellen Zoom auf einen Wert einzustellen wo die "MicroSchritte" also Alt+ Pfeiltasten in Draw auf einen Wert eingestellt werden der zu 1 passt bzw ein passender Bruchteil ist , denn die krummen Zwischenwerte die Draw bei anderen Zoomwerten einstellt bringen das exakte einrasten durcheinander, nicht die Ansicht aber wenn man dann mit Alt+ Pfeiltasten Zeichnungselemente verschiebt,  0.7, 0.65 , 1.3 o.ä. machen in meinen Augen keinen Sinn. 
Ich habe die beiden Zoom Makros auf Ctrl-Alt+Links und Ctrl-Alt+Rechts gelegt so kann ich schnell aus jeder Zoomstufe zur nächsten passenden Zoomstufe größer oder kleiner umstellen . Ich habe zwei Arten von Array verwendet zum Üben und die jeweilige MsgBox ist nur auskommentiert, kann man zum besseren Verständnis wieder aktivieren dann aber die "GrossAnzeige" auskommentieren. Der Dialog ist Bastelwerk kann man nichts zu hochladen, ganz simple ein Dialog mit einem LabelElement beides in gleicher HgFarbe und gut war es. 
[code]
Sub Zoom_enlarge
	Zoomy =  thiscomponent.currentcontroller.ZoomValue
' mit einem großen Array
	za = Array(Array(3000,  1763, 755,  587, 352, 278, 135, 66, 33,    16,     8),_
			Array(2382,  1411, 671,  535, 332, 265, 132, 66, 33,    16,     8),_
			Array(1764,  1059, 588,  482, 312, 252, 130, 66, 33,    16,     8),_
			Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4,  8.25, 16.66))
	For i = UBound(za()(0)) To LBound(za()(0)) step -1
		if zoomy < za(1)(i) then 
			thiscomponent.currentcontroller.ZoomValue = za(1)(i)
			GrossAnzeige za(3)(i)
'			msgbox " aktueller Zoommittelwert auf " & za(1)(i) & "%" & chr$(10) &_
'					" eingestellt für : " & za(3)(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & za(2)(i) & "% - " &  za(0)(i) & "%"
			exit sub 
		end if
	Next
' mit 4 einzelnen Arrays
'
'	zo = Array(3000,  1763, 755,  587, 352, 278, 135, 66, 33,    16,     8)
'	zm = Array(2382,  1411, 671,  535, 332, 265, 132, 66, 33,    16,     8)
'	zl = Array(1764,  1059, 588,  482, 312, 252, 130, 66, 33,    16,     8)
'	zx = Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4,  8.25, 16.66)
'
'	For i = UBound(zo) To LBound(zo) step -1
'		if zoomy < zm (i) then 
'			thiscomponent.currentcontroller.ZoomValue = zm (i)
'			GrossAnzeige zx(i)
'			msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
'					" eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & zl(i) & "% - " &  zo(i) & "%"
'			exit sub 
'		end if
'	Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub Zoom_reduce
	Zoomy =  thiscomponent.currentcontroller.ZoomValue
	zo = Array(3000, 1763, 755,  587, 352, 278, 135, 66, 33, 16,       8)
	zm = Array(2382, 1411, 671,  535, 332, 265, 132, 66, 33, 16,       8)
	zl = Array(1764, 1059, 588,  482, 312, 252, 130, 66, 33, 16,       8)
	zx = Array(0.05,  0.1, 0.2, 0.25, 0.4, 0.5,   1,  2,  4, 8.25, 16.55) 
	For i = LBound(zo)+1 To UBound(zo)
	if i =10 then exit sub
		if zoomy > zo (i ) then 
			thiscomponent.currentcontroller.ZoomValue = zm(i )
 
'			msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
'					" eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
'					" im Zoombereich von " & zl(i) & "% - " &  zo(i) & "%"
			GrossAnzeige zx(i)
			exit sub 
		end if
	Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub GrossAnzeige (anzeigewert)
	dialoglibraries.loadlibrary("Standard")
	oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
	'	oDlg.GetControl("TextField1").text = anzeigewert & " mm Microsteps"
		oDlg.GetControl("Label1").text = anzeigewert & " mm"
		oDlg.setVisible(true)
        wait(1500)
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[/code]
die Zeile mit TextField1 kann eigentlich raus weil TextField mit einem blinkrenden Curser daherkam auch im "nur Lesen" Modus, 
das war unschön darum nun Label1