Hot News:

Mit Unterstützung durch:

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

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:  .NET VB (1635 mal gelesen)
egug
Mitglied
 


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

Beiträge: 42
Registriert: 11.11.2001

erstellt am: 30. Jan. 2006 10:45    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 miteinander

habe mit VBA folgende Befehle in einem Programm verwendet die auch gut funktionieren.

Dim blockRefObj As AcadBlockReference
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPoint, Comp, 1, 1, 1, 0)
blockRefObj.Explode
blockRefObj.Delete


wollte nun das ganze VBA Programm dur .NET VBA ersetzen. Nun meine Frage, wie müssen obige VBA Befehle in VB .NET umgesetzt werden ?

Besten Dank

Ernst

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


Ex-Mitglied

erstellt am: 11. Aug. 2006 18:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Also in .NET gibts die Setzung von "Set" nicht mehr. Versuchs mal ohne...
Alle Variablen sind in .NET nun sg. Objekte, jedoch im Internen verschiedener Kategorie. Das heißt, dass die Referenzierung der Instanz (Objekterstellung) via dem Befehl "Set" nicht mehr nötig ist.

Grüße

------------------
-=es gibt nichts, was nicht geht=-


Ex-Mitglied

erstellt am: 11. Aug. 2006 18:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Aber ich überlege gerade. Ist ACAD eigentlich schon .NET fähig? Also die 2007er Version wohl noch nicht... Dort liegt die Visual Basic 6.0 zugrunde...

------------------
-=es gibt nichts, was nicht geht=-

J.Becker
Mitglied
Dipl.-Ing. Versorgungstechnik


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

Beiträge: 78
Registriert: 28.05.2003

ADT 2007, Windows XP, SP2, MAP, MCAD, Inventor

erstellt am: 14. Aug. 2006 13:58    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 egug 10 Unities + Antwort hilfreich

AutoCAD ist DotNet-fähig.
Ich schreibe z.Z. an einem Programm das in DotNet C# geschrieben ist und im AutoCAD läuft.
Jürgen

------------------
CAD-Administration
Softwareentwicklung
Schulung

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

egug
Mitglied
 


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

Beiträge: 42
Registriert: 11.11.2001

erstellt am: 14. Aug. 2006 20:10    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 Jürgen

das Programm funktioniert nun, bis auf eine Kleinigkeit wo ich nicht dahinterkomme. Kannst Du mir sagen wie ich den eingefügten Block in den Ursprung setzen kann ?

Besten Dank

hier mal den Code wo der Block eingefügt wird

        Try
          Dim dwgName As String = HostApplicationServices.Current.FindFile(Comp, acadApp.DocumentManager.MdiActiveDocument.Database, FindFileHint.Default)
          Dim db As Database = New Database(False, False)
          db.ReadDwgFile(dwgName, IO.FileShare.Read, True, "")
          Dim NewBlkId As ObjectId
          NewBlkId = doc.Database.Insert(dwgName, db, False)
          Dim bt As BlockTable = tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead, True)
          Dim btr As BlockTableRecord = tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, True)
            Dim bref As BlockReference = New BlockReference(New Autodesk.AutoCAD.Geometry.Point3d(insertionPoint), NewBlkId)
            btr.AppendEntity(bref)
            tr.AddNewlyCreatedDBObject(bref, True)
            If (smash = 1) Then
              'explode addierter block
            End If
            tr.Commit()
          Catch ex As Exception
          ed.WriteMessage(ex.ToString)
        End Try

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

J.Becker
Mitglied
Dipl.-Ing. Versorgungstechnik


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

Beiträge: 78
Registriert: 28.05.2003

ADT 2007, Windows XP, SP2, MAP, MCAD, Inventor

erstellt am: 15. Aug. 2006 15:16    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 egug 10 Unities + Antwort hilfreich

Hi,

versuche es mit
bref.Explode(); // hier C#
Das wird vielleicht helfen.

Jürgen

------------------
CAD-Administration
Softwareentwicklung
Schulung

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

egug
Mitglied
 


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

Beiträge: 42
Registriert: 11.11.2001

erstellt am: 17. Aug. 2006 20:07    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

bei bref.Explode() will aber noch einen Parameter ?

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

egug
Mitglied
 


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

Beiträge: 42
Registriert: 11.11.2001

erstellt am: 27. Aug. 2006 22:11    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

hab es nun geschafft, das Programm funktioniert :-)

Option Explicit On 
Imports System
Imports System.Type
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports acadApp = Autodesk.AutoCAD.ApplicationServices.Application
Imports Autodesk.AutoCAD.Geometry
Imports DBTransMan = Autodesk.AutoCAD.DatabaseServices.TransactionManager

Public Class AdskClass1
  <CommandMethod("Asdkcmd1")> _
  Public Function Asdkcmd1()
    Dim insertionPoint(2) As Double
    Dim Comp As String
    Comp = "d:\temp\test.dwg"
    insertionPoint(0) = 10 : insertionPoint(1) = 20 : insertionPoint(2) = 0
    Dim doc As Document = acadApp.DocumentManager.MdiActiveDocument
    Dim ed As Editor = doc.Editor
    Dim tr As Transaction = doc.TransactionManager.StartTransaction
    Try
      Dim dwgName As String = HostApplicationServices.Current.FindFile(Comp, acadApp.DocumentManager.MdiActiveDocument.Database, FindFileHint.Default)
      Dim db As Database = New Database(False, False)
      db.ReadDwgFile(dwgName, IO.FileShare.Read, True, "")
      Dim BlkId As ObjectId
      BlkId = doc.Database.Insert(dwgName, db, False)
      Dim bt As BlockTable = tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead, True)
      Dim btr As BlockTableRecord = tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, True)
      Dim bref As BlockReference = New BlockReference(New Autodesk.AutoCAD.Geometry.Point3d(insertionPoint), BlkId)
      btr.AppendEntity(bref)
      tr.AddNewlyCreatedDBObject(bref, True)
      bref.ExplodeToOwnerSpace()
      bref.Erase()
      tr.Commit()
    Catch ex As Exception
      ed.WriteMessage(ex.ToString)
    End Try
  End Function
End Class

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