Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Problem mit WKS und BKS

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


WKS_BKS.jpg

 
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




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 01. Okt. 2014 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

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 ansehenWeitere: Ingenieure und technische Berufe
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz