Hallo zusammen,
ich habe eine Haupt-DWG-Datei in der mehrere DWG-Dateien als Xref eingebunden sind.
Jede dieser eingebundenen DWG-Dateien sind ein Fließbild einer Anlage.
Fließbild = Rohrleitungsplan
Auf jedem DWG sind Pfeile für Ein-und Ausgänge der Rohre auf andere Fließbilder.
Diese Pfeile sind Blöcke mit Attributen.
Jeder Pfeil hat eine eindeutige Kennung woher er kommt und wohin er geht.
Ich habe nun die Idee das ich in der Haupt-DWG Datei
einen Pfeil auswähle und ein kleines Programm mir zeigt wo sich der
dazugehörige Gegen-Pfeil sich befindet.
Ich habe es nun schon geschafft, mit "objDoc.Editor.GetNestedEntity"
ein einzelnes Objekt in dem Xref auszuwählen zu können.
Leider funktioniert das für alle Objekte.
Ich kann die Auswahl nicht auf ganze Blöcke beschränken.
Das wäre meine erste Frage, ob hierzu jemand einen Tip hat,
wie man die Auswahl so einstellen kann, das ich
nur ganze Blöcke in einem X-Ref wählen kann.
Da ich mir derzeit nicht anders helfen konnte,
wähle ich derzeit genau ein spezifisches Attribut eines Blockes
und suche dann nach dem Wert der in diesem Attribut steht.
Code:
Dim nid As ObjectId = objDoc.Editor.GetNestedEntity(vbLf & "Select a Object: ").ObjectId
Dim obj As DBObject = tr.GetObject(nid, OpenMode.ForRead)
Select Case obj.ObjectId.ObjectClass.DxfName
Case "ATTRIB"
objAttributeRef = TryCast(obj, AttributeReference)
objPuffer = tr.GetObject(objAttributeRef.BlockId, OpenMode.ForRead)
If TypeOf objPuffer Is BlockTableRecord Then
objBlockTableRecord = objPuffer
strSuchtext = objAttributeRef.TextString
Code:
Dim objDatabaseXref As Database
Dim objXrefGraph As XrefGraph = objDatabase.GetHostDwgXrefGraph(True)
Dim objXrefGraphNode As XrefGraphNode
For intNr As Integer = 0 To objXrefGraph.NumNodes - 1
objXrefGraphNode = objXrefGraph.GetXrefNode(intNr)
objDatabaseXref = objXrefGraphNode.Database
Auch das funktioniert soweit, nur das ich es nicht an die Position
des Attributes bzw. des Blockes in der Haupt-DWG komme.
Ich hoffe ich habe mich nicht zu kompliziert ausgedrückt.
Weiß jemand wie ich da weiter komme ?
Vielen Dank für eure Hilfe
------------------
Gruß Jörn
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP