Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD ObjectARX und .NET
  .NET VB C#

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
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  .NET VB C# (3854 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: 20. Aug. 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

Hi all

habe ein VB.NET Programm das einen Block problemlos einfügt und dasselbe in C# nochmals erstellt. Leider funktioniert das C# nicht. Kann mir jemand sagen was ich hier falsch gemacht habe ? Besten Dank.

Das Block explode habe ich bis jetzt in VB sowie in C# nicht geschafft. Ware dankbar wenn ich einen Tip erhalten würde wie das funktioniert.

VB Code
-------
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 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)
      tr.Commit()
    Catch ex As Exception
      ed.WriteMessage(ex.ToString)
    End Try
  End Function

End Class


C# Code
-------
[CommandMethod("AsdkCmd1")]
static public void test()
{
string comp = "d:\temp\test.dwg";
Document doc = acadApp.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Transaction tr = doc.TransactionManager.StartTransaction();
try
{
string dwgName = HostApplicationServices.Current.FindFile(comp,acadApp.DocumentManager.MdiActiveDocument.Database,FindFileHint.Default);
Database db = new Database(false, false);
db.ReadDwgFile(dwgName,System.IO.FileShare.Read, true, "");
ObjectId NewBlkId = new ObjectId();
NewBlkId = doc.Database.Insert(dwgName, db, false);
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead,true);
BlockTableRecord btr =(BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);
BlockReference bref = new BlockReference(new Autodesk.AutoCAD.Geometry.Point3d(10,10,0), NewBlkId);
btr.AppendEntity(bref);
tr.AddNewlyCreatedDBObject(bref, true);
tr.Commit();
}
finally
{
tr.Dispose();
}
}

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



Anzeige:Infos zum Werbeplatz >>

GWB Get wooden beams CAD APP für Holzarbeiten, 3D, Tiefbau

An add-on for AUTOCAD wich identifies wooden beams from 3D DWG drawings of wooden houses. The result of the program is a drawing with the identified parts (numbered and dimensioned) and a file of quantities that can be loaded into EXCEL.

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:17    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

auch das C# Programm funktioniert nun auch 

using System;
using System.Runtime;
using System.Collections;
using System.ComponentModel;
using System.IO;
using System.Diagnostics;
using System.Globalization;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.EditorInput;
using acadApp = Autodesk.AutoCAD.ApplicationServices.Application;


[assembly: CommandClass(typeof(ClassLibrary.Class))]

namespace ClassLibrary
{
/// <summary>
/// Summary description for Class.
/// </summary>
public class Class
{
public Class()
{
//
// TODO: Add constructor logic here
//
}

// Define Command "AsdkCmd1"
[CommandMethod("AsdkCmd1")]
static public void test()
{
string comp = "D:\\Temp\\test.dwg";
Document doc = acadApp.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Transaction tr = doc.TransactionManager.StartTransaction();
try
{
string dwgName = HostApplicationServices.Current.FindFile(comp,acadApp.DocumentManager.MdiActiveDocument.Database,FindFileHint.Default);
Database db = new Database(false, false);
db.ReadDwgFile(dwgName,System.IO.FileShare.Read, true, "");
ObjectId BlkId;
BlkId = doc.Database.Insert(dwgName, db, false);
BlockTable bt = (BlockTable)tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead,true);
BlockTableRecord btr =(BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);
BlockReference bref = new BlockReference(new Autodesk.AutoCAD.Geometry.Point3d(10,10,0), BlkId);
btr.AppendEntity(bref);
tr.AddNewlyCreatedDBObject(bref, true);
bref.ExplodeToOwnerSpace();
bref.Erase();
tr.Commit();
}
finally
{
tr.Dispose();
}
}
}
}

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)2025 CAD.de | Impressum | Datenschutz