Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Fehlermeldung: Reentracy wurde erkannt

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:  Fehlermeldung: Reentracy wurde erkannt (1116 mal gelesen)
peterjacx
Mitglied
Software Entwickler


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

Beiträge: 14
Registriert: 08.02.2005

erstellt am: 12. Dez. 2006 14:51    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,

bekomme wenn ich mehrmals hintereinander ein Solid mit dem unter dargestellten Code einfüge folgende Fehlermeldung. Autocad stürzt danach ab. Hat einer eine Idee woran es liegen kann?

Fehlermeldung:

Reentracy wurde erkannt.

Es wurde versucht, einen Aufruf in den verwalteten Code durchzuführen,
ohne dass zunächst ein Übergang erfolgt ist. Versuchen Sie nicht,
verwalteten Code innerhalb von systemeigenen Erweiterungspunkten
auf niedriger Ebene auszuführen, z.B. im vektoriellen Ausnahmehandler,
da dies Datenbeschädigung und -verlust zur Folge haben kann.


Hier der Code:


public class Zylinder
    {

        public bool doit()
        {

                Point3dCollection points = new Point3dCollection();
                points.Add(new Point3d(10, 10, 0));
                points.Add(new Point3d(100, 10, 0));
                points.Add(new Point3d(150, 50, 0));

                Point3d center = new Point3d(10, 10, 0);
                //kreis senkrecht zum 1. Liniensegment
                Vector3d normal = points[1] - points[0];

                Circle dbkreis = new Circle(center, normal, 10);

                //Kreis in Liste schreiben
                DBObjectCollection curveSegments = new DBObjectCollection();
                curveSegments.Add(dbkreis);

                //Curve Segments in eine Region umwandeln
                DBObjectCollection regionColl = Region.CreateFromCurves(curveSegments);

                //Die Konvertierung kreis in Region darf nur ein Regionobjekt liefern
                if (regionColl.Count != 1)
                    return false;

                //Curve erzeugen
                Curve pline = new Polyline3d(Poly3dType.SimplePoly, points, false);


                Solid3d solid = new Solid3d();
                //Zylinder als Solid3d erzeugen
                solid.ExtrudeAlongPath((Region)regionColl[0], pline, 0);

                Database db = Application.DocumentManager.MdiActiveDocument.Database;
                DBTransMan tm = db.TransactionManager;

           
                Transaction ta = tm.StartTransaction();

                try
                {

                    BlockTable bt =    (BlockTable)ta.GetObject(db.BlockTableId, OpenMode.ForRead, false);
                    BlockTableRecord btr = (BlockTableRecord)ta.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false);


                    //Bauteil in DB schreiben und ID speichern
                    btr.AppendEntity(solid);

                    //Transaktion das neue Element zuweisen
                    ta.AddNewlyCreatedDBObject(solid, true);

                    ta.Commit();
                }
                catch
                {

                }
                finally
                {
                    ta.Dispose();
                }


            return true;
        }

    }

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

criecky
Mitglied
MENSCH


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

Beiträge: 251
Registriert: 13.01.2004

ACAD 2011- 2017
www.cbyte.eu

erstellt am: 12. Dez. 2006 15:36    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 peterjacx 10 Unities + Antwort hilfreich

hallo,

wo ist dein konstruktor für die ZylinderKlasse und von welcher Klasse leitest du sie ab....... also ich würde erst mal so anfangen. und du stellst den ganzen code mal rein... mit dem auszug kann ich noch nicht viel anfagen.
z.b.


class CZylinder : public AcDb.......  // z.b acdbentity o acdbobject
{
public:

Acad::ErrorStatus CZylinder (AcGePoint3d centerpoint&, double radius&, double  high&); // konstruktor
protected:

AcGePoint3d m_centerpoint;
double m_radis, m_high;

}


gruss criecky 

------------------

Softlan macht das Netzwerk weich!

www.cbyte.de

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

peterjacx
Mitglied
Software Entwickler


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

Beiträge: 14
Registriert: 08.02.2005

erstellt am: 12. Dez. 2006 16:21    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


ZylinderTest.zip

 
Hallo,

das Ganze ist in C# programmiert. Habe den Code zur besseren Übersicht und um auch andere Ursachen auszuschließen in eine Testdatei extrahiert.

Im Anhang mal die ganze Testdatei. Nach der ca. 20. Ausführung (unterschiedlich) des Befehls, kommt besagte Fehlermeldung.

Hast Du eine Idee was die Fehlermeldung bedeuten könnte?

Gruss
Peter

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

criecky
Mitglied
MENSCH


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

Beiträge: 251
Registriert: 13.01.2004

ACAD 2011- 2017
www.cbyte.eu

erstellt am: 12. Dez. 2006 16:32    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 peterjacx 10 Unities + Antwort hilfreich

habe mich leider noch nicht mit c# beschäftigt.... kann dir da leider nicht helfen .... kann nur c++


cruss criecky

------------------

Softlan macht das Netzwerk weich!

www.cbyte.de

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

peterjacx
Mitglied
Software Entwickler


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

Beiträge: 14
Registriert: 08.02.2005

erstellt am: 14. Dez. 2006 16: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

Hallo,

habe eine Lösung des Problems gefunden:

Wenn ich am Ende des Befehls den Garbage Collector aufrufe, habe ich keine Probleme mehr.

Hat jemand eine Erklärung dafür?

        [CommandMethod("TestZy")]
        static public void Test()
        {
            Zylinder test = new Zylinder();

            test.doit();

            //Garbage Collector aufrufen
            GC.Collect();
        }

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