| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Problem mit WKS und BKS (1257 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2019/2020 CAD+T 2020 HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 01. Okt. 2014 14:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Wenn ich in einer Zeichnung das BKS wie folgt ändere _-view Option eingeben [?/LÖschen/Orthogonal/Holen/Speichern/Einstellungen/Fenster]:_left Regeneriert Modell. _-view Option eingeben [?/LÖschen/Orthogonal/Holen/Speichern/Einstellungen/Fenster]:_swiso Regeneriert Modell. und dann ein z.B. Rechteck zeichne, wird dieses auch an der X und Y Koordinate ausgerichtet gezeichnet. (rotes Rechteck auf dem Bildchen) Wenn ich aber ein Rechteck (blau s.B.) mit .net erzeuge, wird dieses nicht am BKS ausgereichtet eingefügt/gezeichnet, sondern plan auf WKS. Was muß ich da bei .net wie berücksichtigen? Bzw., wie müßte es unter .net lauten?
Code:
Public Sub Draufsicht(ByVal MH As String, ByVal MB As String, ByVal MW As String, ByVal instPkt As Point3d) Dim myDoc As Document = DocumentManager.MdiActiveDocument Dim myDB As Database = myDoc.Database Using myTrans As Transaction = myDB.TransactionManager.StartTransaction Try Dim myBlockTable As BlockTable = myDB.BlockTableId.GetObject(OpenMode.ForRead) Dim myModelSpace As BlockTableRecord = myBlockTable(BlockTableRecord.ModelSpace).GetObject(OpenMode.ForWrite) '--Schraffur erstellen-- Dim acHatch As Hatch = New Hatch() myModelSpace.AppendEntity(acHatch) myTrans.AddNewlyCreatedDBObject(acHatch, True) acHatch.SetDatabaseDefaults() acHatch.Associative = True acHatch.PatternScale = 0.2 acHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI32") acHatch.Layer = "Schraffur_Stahl_Edelstahl_Alu" '--RR 60x30x2mm / Innenrechteck--!! Dim acPoly1 As Polyline = New Polyline() 'innere Linie acPoly1.SetDatabaseDefaults() acPoly1.AddVertexAt(0, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1) + MW), 0, 0, 0) acPoly1.AddVertexAt(1, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1) + MH - MW), 0, 0, 0) acPoly1.AddVertexAt(2, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1) + MH - MW), 0, 0, 0) acPoly1.AddVertexAt(3, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1) + MW), 0, 0, 0) acPoly1.Closed = True acPoly1.Layer = "METALL_VKR_PROFIL" myModelSpace.AppendEntity(acPoly1) myTrans.AddNewlyCreatedDBObject(acPoly1, True) ''--RR 60x30x2mm / Aussenrechteck--!! Dim acPoly As Polyline = New Polyline() 'äußere Linie acPoly.SetDatabaseDefaults() acPoly.AddVertexAt(0, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1)), 0, 0, 0) acPoly.AddVertexAt(1, New Point2d(instPkt(0) + (MB / 2), instPkt(1) + MW), 0, 0, 0) acPoly.AddVertexAt(2, New Point2d(instPkt(0) + (MB / 2), instPkt(1) + (MH - MW)), 0, 0, 0) acPoly.AddVertexAt(3, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1) + MH), 0, 0, 0) acPoly.AddVertexAt(4, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1) + MH), 0, 0, 0) acPoly.AddVertexAt(5, New Point2d(instPkt(0) - (MB / 2), instPkt(1) + (MH - MW)), 0, 0, 0) acPoly.AddVertexAt(6, New Point2d(instPkt(0) - (MB / 2), instPkt(1) + MW), 0, 0, 0) acPoly.AddVertexAt(7, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1)), 0, 0, 0) acPoly.Closed = True acPoly.SetBulgeAt(0, GetBulgeForAngle(90)) acPoly.SetBulgeAt(2, GetBulgeForAngle(90)) acPoly.SetBulgeAt(4, GetBulgeForAngle(90)) acPoly.SetBulgeAt(6, GetBulgeForAngle(90)) acPoly.Layer = "METALL_VKR_PROFIL" myModelSpace.AppendEntity(acPoly) myTrans.AddNewlyCreatedDBObject(acPoly, True) '--Schraffur erstellen-- If CB_Hatch.Checked = True Then Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection() Dim acObjIdColl1 As ObjectIdCollection = New ObjectIdCollection() acObjIdColl.Add(acPoly.ObjectId) acObjIdColl1.Add(acPoly1.ObjectId) acHatch.AppendLoop(HatchLoopTypes.Default, acObjIdColl) acHatch.AppendLoop(HatchLoopTypes.Default, acObjIdColl1) acHatch.EvaluateHatch(True) End If 'End Using myTrans.Commit() Catch ex As Autodesk.AutoCAD.Runtime.Exception '--Fehler im Prozessdurchlauf abfangen--!! MsgBox("Fehlermeldung", MsgBoxStyle.Information, ex.Message) End Try End Using End Sub
Vielen Dank im Voraus. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 01. Okt. 2014 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Hallo Dirk, du schubst doch die Polyline direkt in die Datenbank .. da ist das vollkommen egal wie dein BKS aktuell steht. Du musst deine Objekte in das aktuelle BKS transformieren. Entity.TransformBy([Matrix3d]). Die Matrix3d kannst du dir ja aus den Achsen des aktuellen Koordinatensystems berechnen. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Verpackungsingenieur (all genders) | CREMER - wir sind auf allen Kontinenten zu Hause. Von Europa bis Australien, von Amerika bis Asien. CREMER - wir sind ein stark wachsender, spannender und sicherer Arbeitgeber für Menschen, die international denken und arbeiten, die mutig sind und Chancen ergreifen. Für Menschen, die eine ausgeprägte Handlungsorientierung mitbringen und gern Verantwortung übernehmen.... | Anzeige ansehen | Weitere: Ingenieure und technische Berufe |
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2019/2020 CAD+T 2020 HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 02. Okt. 2014 10:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger! Danke für den Tipp. Manchmal kann es auch einfach sein. Code:
'... Dim acPoly1 As Polyline = New Polyline() 'innere Linie acPoly1.SetDatabaseDefaults() acPoly1.AddVertexAt(0, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1) + MW), 0, 0, 0) acPoly1.AddVertexAt(1, New Point2d(instPkt(0) + ((MB / 2) - MW), instPkt(1) + MH - MW), 0, 0, 0) acPoly1.AddVertexAt(2, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1) + MH - MW), 0, 0, 0) acPoly1.AddVertexAt(3, New Point2d(instPkt(0) - ((MB / 2) - MW), instPkt(1) + MW), 0, 0, 0) acPoly1.Closed = True acPoly1.Layer = "METALL_VKR_PROFIL"'--NEU--NEU--NEU--NEU Dim myED As Editor = myDoc.Editor acPoly1.TransformBy(myED.CurrentUserCoordinateSystem) '--erst dann myModelSpace.AppendEntity(acPoly1) myTrans.AddNewlyCreatedDBObject(acPoly1, True)
Schönen Tag noch ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|