Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  BKS importieren

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:  BKS importieren (1647 mal gelesen)
oscarr
Mitglied
CAD-Manager


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

Beiträge: 198
Registriert: 02.10.2007

ACA 2012 - English Win 7/x64

erstellt am: 25. Apr. 2013 12:26    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 zusammen,

anbei ein kleines Beispiel zu importieren von eine UCS in die aktuelle Zeichnung:

Code:

#Region "Namespaces"
Imports Autodesk.AutoCAD
Imports Autodesk.AutoCAD.DatabaseServices
#End Region

Public Class UCS_Import

    Public Shared Sub main()

        Dim myDB As DatabaseServices.Database

        Dim myTransMan As DatabaseServices.TransactionManager
        Dim myTrans As DatabaseServices.Transaction

        Dim myTransDest As DatabaseServices.Transaction
        Dim myTransManDest As DatabaseServices.TransactionManager

        myDB = ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database

        Dim CurDir As String = String.Empty
        CurDir = myDB.Filename.Substring(0, myDB.Filename.LastIndexOf("\"))

        Dim myFileDialog As New OpenFileDialog()

        myFileDialog.InitialDirectory = CurDir

        If myFileDialog.ShowDialog = DialogResult.OK Then

            Dim sourceDb As New DatabaseServices.Database(False, True)
            sourceDb.ReadDwgFile(myFileDialog.FileName, System.IO.FileShare.ReadWrite, True, "")

            myTransMan = sourceDb.TransactionManager
            myTrans = myTransMan.StartTransaction

            Dim SrcUCSTbl As DatabaseServices.UcsTable
            SrcUCSTbl = myTrans.GetObject(sourceDb.UcsTableId, DatabaseServices.OpenMode.ForRead)

            Dim chooser As New UcsChooser
            Dim SrcUCSTblRec As UcsTableRecord

            For Each ucsId As ObjectId In SrcUCSTbl

                SrcUCSTblRec = myTrans.GetObject(ucsId, DatabaseServices.OpenMode.ForRead)
                chooser.ListBox1.Items.Add(SrcUCSTblRec.Name)

            Next

            If chooser.ShowDialog = DialogResult.OK Then

                Dim selobjId As DatabaseServices.ObjectId = SrcUCSTbl.Item(chooser.ListBox1.SelectedItem)

                SrcUCSTblRec = myTrans.GetObject(selobjId, DatabaseServices.OpenMode.ForRead)

                myTransManDest = myDB.TransactionManager
                myTransDest = myTransManDest.StartTransaction

                Dim myDestUCSTbl As DatabaseServices.UcsTable
                myDestUCSTbl = myTransDest.GetObject(myDB.UcsTableId, DatabaseServices.OpenMode.ForWrite)

                Dim DstUCSTblRec As DatabaseServices.UcsTableRecord

                If myDestUCSTbl.Has(SrcUCSTblRec.Name) = False Then

                    DstUCSTblRec = New DatabaseServices.UcsTableRecord
                    DstUCSTblRec.Name = SrcUCSTblRec.Name

                    myDestUCSTbl.Add(DstUCSTblRec)
                    myTransDest.AddNewlyCreatedDBObject(DstUCSTblRec, True)

                Else

                    DstUCSTblRec = myTransDest.GetObject(myDestUCSTbl(SrcUCSTblRec.Name), DatabaseServices.OpenMode.ForWrite)

                End If

                DstUCSTblRec.Origin = SrcUCSTblRec.Origin
                DstUCSTblRec.XAxis = SrcUCSTblRec.XAxis
                DstUCSTblRec.YAxis = SrcUCSTblRec.YAxis

                myTransDest.Commit()
                myTransDest.Dispose()
                myTransManDest.Dispose()

            End If

            myTrans.Commit()
            myTrans.Dispose()
            myTransMan.Dispose()

        End If

    End Sub

End Class


Dazu gehört noch eine Windows Form UcsChooser:

Code:
Public Class UcsChooser

    Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
        If ListBox1.SelectedItem <> "" Then
            Me.AcceptButton.PerformClick()
        End If
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If ListBox1.SelectedItem <> "" Then
            Me.ImportBt.Enabled = True
        End If
    End Sub

End Class


und die UcsChooser.Designer.vb:

Code:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class UcsChooser
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer. 
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.ListBox1 = New System.Windows.Forms.ListBox()
        Me.ImportBt = New System.Windows.Forms.Button()
        Me.CancelBT = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'ListBox1
        '
        Me.ListBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                    Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.ListBox1.FormattingEnabled = True
        Me.ListBox1.Location = New System.Drawing.Point(12, 12)
        Me.ListBox1.Name = "ListBox1"
        Me.ListBox1.Size = New System.Drawing.Size(268, 212)
        Me.ListBox1.TabIndex = 0
        '
        'ImportBt
        '
        Me.ImportBt.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.ImportBt.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.ImportBt.Enabled = False
        Me.ImportBt.Location = New System.Drawing.Point(205, 238)
        Me.ImportBt.Name = "ImportBt"
        Me.ImportBt.Size = New System.Drawing.Size(75, 23)
        Me.ImportBt.TabIndex = 1
        Me.ImportBt.Text = "Import UCS"
        Me.ImportBt.UseVisualStyleBackColor = True
        '
        'CancelBT
        '
        Me.CancelBT.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.CancelBT.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.CancelBT.Location = New System.Drawing.Point(124, 238)
        Me.CancelBT.Name = "CancelBT"
        Me.CancelBT.Size = New System.Drawing.Size(75, 23)
        Me.CancelBT.TabIndex = 2
        Me.CancelBT.Text = "Cancel"
        Me.CancelBT.UseVisualStyleBackColor = True
        '
        'UcsChooser
        '
        Me.AcceptButton = Me.ImportBt
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.CancelButton = Me.CancelBT
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.Add(Me.CancelBT)
        Me.Controls.Add(Me.ImportBt)
        Me.Controls.Add(Me.ListBox1)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.MaximizeBox = False
        Me.MinimizeBox = False
        Me.Name = "UcsChooser"
        Me.ShowIcon = False
        Me.ShowInTaskbar = False
        Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
        Me.Text = "UCS Import"
        Me.ResumeLayout(False)

    End Sub
    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
    Friend WithEvents ImportBt As System.Windows.Forms.Button
    Friend WithEvents CancelBT As System.Windows.Forms.Button
End Class


Viel Spass damit

Holger

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2014
Plateia, Canalis
Visual Basic

erstellt am: 25. Apr. 2013 13:06    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 oscarr 10 Unities + Antwort hilfreich

Da hast Du Dir ja eine Menge Arbeit gemacht.
Danke fürs Veröffentlichen, kann man bestimmt irgendwann mal brauchen.

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