Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD ObjectARX und .NET
  Letztes erzeugtes Objekt

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 präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Letztes erzeugtes Objekt (3273 mal gelesen)
RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

AutoCAD 2011/2012 (64Bit)
Advance Steel 2011
Intel i7 - 950
Win 7 Ultimate 64
6 GB Ram
ATI 6950

erstellt am: 16. Mai. 2011 15:40    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 Forum Gemeinde,
da ich seit neuestem in C# Programmiere (umstieg von Lisp) tue ich momentan noch schwer mit einigen Befehlen.
z.B. gab es unter Lisp die Möglichkeit via (entget (entlast)) das zuletzt erzeugte Objekt abzufragen und C# in AutoCAD
finde ich nur Codebeispiele wie dieses von der Internetseite "Through the Interface" Author: Kean Walmsley.

      PromptEntityOptions opt = new PromptEntityOptions("\nSelect entity: ");

      PromptEntityResult res = ed.GetEntity(opt);

Jedoch muss man hier die Linie von "hand" auswählen. Ich hätte gerne eine Lösung bei der das Objekt, das zu Letzt angelegt wurde "ausgelesen" wird.

Danke im voraus.
Thomas

Da

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


Ex-Mitglied

erstellt am: 16. Mai. 2011 16:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

In VB (weils für mich schneller geht, lass wissen, wenn Du die Übersetzung nach C# brauchst)

Code:
Dim tAcadDoc As Autodesk.AutoCAD.ApplicationServices.Document = _
             Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim tSelRes As Autodesk.AutoCAD.EditorInput.PromptSelectionResult = tAcadDoc.Editor.SelectLast()
If (tSelRes IsNot Nothing) AndAlso (tSelRes.Value IsNot Nothing) AndAlso (tSelRes.Value.Count > 0) Then
   'hier das LAST-Object
End If

- alfred -

------------------
www.hollaus.at

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9807
Registriert: 01.12.2003

AutoCAD 20xx, Civil 3D 201x, Inventor Prof 201x usw.

erstellt am: 16. Mai. 2011 16:13    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 RSt-Stahl 10 Unities + Antwort hilfreich

in c# einfach (passend zum obigen Code)
ed.SelectLast()

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

AutoCAD 2011/2012 (64Bit)
Advance Steel 2011
Intel i7 - 950
Win 7 Ultimate 64
6 GB Ram
ATI 6950

erstellt am: 16. Mai. 2011 16: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

Danke für die Hilfe. Us sind an euch beide unterwegs.

Gruß
Thomas

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

RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

AutoCAD 2011/2012 (64Bit)
Advance Steel 2011
Intel i7 - 950
Win 7 Ultimate 64
6 GB Ram
ATI 6950

erstellt am: 17. Mai. 2011 00:01    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

Guten Abend allerseits,

nachdem ich jetzt den ganzen Abend versucht habe meinen kleinen Test zum Laufen zu bringen und es nicht geschafft habe, wollte ich mal nachfragen wo hier mein Fehler sein könnte:

Code:

                // Erzeuge Polyrechteck

                Polyline acLine = new Polyline();

                acLine.SetDatabaseDefaults();

                acLine.AddVertexAt(0, new Point2d(ptStart.X + V0, ptStart.Y + V0), 0, 0, 0);

                acLine.AddVertexAt(1, new Point2d(ptStart.X + V1, ptStart.Y + V0), 0, 0, 0);

                acLine.AddVertexAt(2, new Point2d(ptStart.X + V1, ptStart.Y + V1), 0, 0, 0);

                acLine.AddVertexAt(3, new Point2d(ptStart.X + V0, ptStart.Y + V1), 0, 0, 0);

                acLine.AddVertexAt(4, new Point2d(ptStart.X + V0, ptStart.Y + V0), 0, 0, 0);

                // Add the line to the drawing

                acBlkTblRec.AppendEntity(acLine);

                acTrans.AddNewlyCreatedDBObject(acLine, true);

                Document doc = Application.DocumentManager.MdiActiveDocument;
                Editor ed = doc.Editor;


                PromptEntityOptions opt = ed.SelectLast();

             
                                                         
                PromptEntityResult res = ed.GetEntity(opt);

                if (res.Status == PromptStatus.OK)
                {

                    Transaction tr = doc.TransactionManager.StartTransaction();

                    using (tr)
                    {
                       
                        DBObject obj = tr.GetObject(res.ObjectId, OpenMode.ForWrite);



Das Programm soll ein Rechteckzeichnen und dieses dann direkt in einem Schritt mit Xdata "kennzeichnen". Ich habe aktuell eine Version bei der dies halbwegs funktioniert! Also das Rechteck wird gezeichnet aber man muss die XDATA per Klick ans das gezeichnet Objekt zuweisen. Diesen Schritt wollte ich einsparen.
Ich denke der Fehler liegt in dieser Zeile:

PromptEntityOptions opt = ed.SelectLast();

die Ursprüngliche und funktionierende Zeile war diese:

PromptEntityOptions opt = new PromptEntityOptions("\nSelect entity: ");

Ich habe versucht anstatt das letze Object das Handle zu übergeben aber das lief auch irgendwie schief.

Vielen Dank für die Hilfe im Voraus.
Thomas

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


Ex-Mitglied

erstellt am: 17. Mai. 2011 00:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

zum einen gibt es das Last-Object sicher erst nach acTrans.Commit, das sehe ich aber nicht.
Es kann sogar sein, dass das Last-Object erst nach gesamten Durchlauf des AutoCAD-Befehls zur Verfügung steht, das hab ich jetzt nicht probiert, ...

ABER:

Wozu brauchst Du das Last-Object neu selektiert, wenn Du es doch oben erzeugst, Du hast ja das Objekt namens  acLine  schon in der Hand, wozu also auslassen und dann per Selektion suchen lassen? Verwende die Referenz auf  acLine  einfach weiter!

- alfred -

------------------
www.hollaus.at

RSt-Stahl
Mitglied



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

Beiträge: 79
Registriert: 08.07.2005

AutoCAD 2011/2012 (64Bit)
Advance Steel 2011
Intel i7 - 950
Win 7 Ultimate 64
6 GB Ram
ATI 6950

erstellt am: 17. Mai. 2011 00:30    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

Danke! Also ich habe jetzt wirklich den ganzen Abend Versucht das Programm zum Laufen zu bringen. Durch den Tipp habe ich es jetzt geschafft. Ich habe einfach die 2 Reihen raus gelassen und den Variablen Namen weiter unten geändert. Ich dachte halt das man explizit wie in Lisp das Objekt abfragen muss und es erst dann bearbeiten kann. Es liegt wohl auch daran das ich momentan mir die verschiedensten Beispiele ansehe und teilweise versuche diese zu kombinieren.
Aber das Hauptproblem ist das ich in C# auch nur wenig Grundkenntnisse habe und es kaum Gute Anleitungen für C# mit ObjectARX im Netz für Einsteiger gibt. (Besser gesagt ich habe kaum etwas gefunden)
Mich würde auch ein Buch interessieren, aber da finde ich leider auch nichts. Alles was ich finde ist für VB.net aber ich wollte eigentlich C# benutzen.

Nochmals Danke für den Entscheidenden Tipp.
Gruß
Thomas

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Revit Structure 2011
Acad 2011-deutsch, Express Tools
3ds Max 2011
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 19. Mai. 2011 07:47    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 RSt-Stahl 10 Unities + Antwort hilfreich

Probier es mal damit. Vielleicht ist es ja mal ein Anfang der dir hilft. Der Blog von Kean ist übrigens eine der besten Hilfen und so gut wie immer in C#.Net.

------------------
Roland Feletic
PCD ZT-GmbH

Revit Structure 2011
Acad 2011-deutsch, Express Tools
3ds Max 2011
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

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