Hi
geht einfacher
mit VBA bekommst per bekanntem handle direkt das Acad entity
und mit der boundingbox dessen abmessungen
jetzt nur noch das ansichtsfenster ...
Und mit vba kannst ja acess easy mit acad verheiraten
Bloecke koenne auch durchaus noch in ner dwg unsichtbar in der blockdefinition vorhanden sein.
Man kann auch durch alle blockdefinitionen durchlaufen und diese einzeld als dwg abspeichern.
Endlose Weiten (c) USS Enterprise
Function GET_ENTITY_BY_HANDLE(entity As AcadEntity, handle As String) As Boolean
GET_ENTITY_BY_HANDLE = False
On Error Resume Next
Err.Clear
Set entity = ThisDrawing.HandleToObject(handle)
If Not entity Is Nothing Then GET_ENTITY_BY_HANDLE = True
End Function
und nun einfach mit nachfolgenden routine dahin zoomen -
achtung die ist derzeit nur fuer den modelspace ausgelegt
Sub Zoom_to(entity As AcadEntity, Optional FACTOR As Double = 1)
Dim W1(0 To 2) As Double
Dim W2(0 To 2) As Double
Dim Min As Variant
Dim Max As Variant
Dim DX, DY, DZ, mx, My, mz As Double
Call entity.GetBoundingBox(Min, Max)
DX = Max(0) - Min(0)
DY = Max(1) - Min(1)
DY = Max(2) - Min(2)
mx = 0.5 * (Max(0) + Min(0))
My = 0.5 * (Max(1) + Min(1))
mz = 0.5 * (Max(2) + Min(2))
W1(0) = mx - FACTOR * DX
W1(1) = My - FACTOR * DY
W1(2) = mz - FACTOR * DZ
W2(0) = mx + FACTOR * DX
W2(1) = My + FACTOR * DY
W2(2) = mz + FACTOR * DZ
ZoomWindow W1, W2
End Sub
Die Handles in der Datenbank zu verankern ist auch etwas risky
Besser ist es die Bloecke mit insertationpoint , Blocknamen und allen attributen / Parametern in der datenbank vorzuhalten.
Handles sind zwar in einer Zeichnung unique muessen es aber nicht zwanglaeufig in mehreren sein (wenn dann Zufall)
Ein link eines Attributes zu der ZENTRALEN Datenbank nebst DatensatzID ist da cleverer.
------------------
Wer es nicht versucht, hat schon verlorn
Bei 3 Typos gibts den vierten gratis !
Definitiv kein ACAD Trainer ...
[Diese Nachricht wurde von rexxitall am 24. Jun. 2013 editiert.]
[Diese Nachricht wurde von rexxitall am 25. Jun. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP