Rekomendowane odpowiedzi

Opublikowano (edytowane)

Po aktualizacji do 2020 Sp1 jeden z moich programów przestał działać. Wyskakuje błąd eRegisteredAplicationidnotfound. Prawdopodobnie w tej wersji przestaje wykonywać się następujący kod.

// Open the Registered Application table for read
                    RegAppTable acRegAppTbl;
                    acRegAppTbl = tr.GetObject(db.RegAppTableId, OpenMode.ForRead) as RegAppTable;

                    // Check to see if the app "ACAD_DSTYLE_DIMJAG_POSITION" is
                    // registered and if not add it to the RegApp table
                    if (acRegAppTbl.Has("ZWCAD_DSTYLE_DIMJAG_POSITION") == false)
                    {
                        using (RegAppTableRecord acRegAppTblRec = new RegAppTableRecord())
                        {
                            acRegAppTblRec.Name = "ZWCAD_DSTYLE_DIMJAG_POSITION";
                            acRegAppTbl.UpgradeOpen();
                            acRegAppTbl.Add(acRegAppTblRec);
                            tr.AddNewlyCreatedDBObject(acRegAppTblRec, true);
                        }
                    }

 

Dalsza część kodu

// Create a result buffer to define the Xdata
                    ResultBuffer acResBuf = new ResultBuffer();
                    acResBuf.Add(new TypedValue((int)DxfCode.ExtendedDataRegAppName,
                                                             "ZWCAD_DSTYLE_DIMJAG_POSITION"));
                    acResBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 387));
                    acResBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 3));
                    acResBuf.Add(new TypedValue((int)DxfCode.ExtendedDataInteger16, 389));
                    acResBuf.Add(new TypedValue((int)DxfCode.ExtendedDataXCoordinate,
                                                             new zzg.Point3d(-1.26985, 3.91514, 0)));

                    zzd.ResultBuffer rb = new zzd.ResultBuffer(new zzd.TypedValue[10]

                           {new zzd.TypedValue((int)zzd.DxfCode.ExtendedDataRegAppName, "ZWCAD"),
                                new zzd.TypedValue((int)zzd.DxfCode.ExtendedDataAsciiString, "DSTYLE"),
                                new zzd.TypedValue((int)zzd.DxfCode.ExtendedDataControlString, "{"),
                                new TypedValue((int)DxfCode.ExtendedDataInteger16, 279 ), //DIMTMOVE
                                new TypedValue((int)DxfCode.ExtendedDataInteger16, 40 ), // DIMSCALE
                                new TypedValue((int)DxfCode.ExtendedDataInteger16, 271  ), // DIMDEC
                                new TypedValue((int)DxfCode.ExtendedDataInteger16, 41), // DIMASZ             
                                new TypedValue((int)DxfCode.ExtendedDataReal, 342 ),   // DIMBLK  
                                new TypedValue((int)DxfCode.ExtendedDataReal, 144 ),   // DIMLFAC
                                new TypedValue((int)DxfCode.ExtendedDataControlString, "}" )});

 

Edytowane przez Parikon
Opublikowano

Już wiem kiedy przestaje działać. Gdy chcę wywołać wcześniej zdefiniowany
zzd.ResultBuffer rb

tym kodem

// Set the XData on our object
                           //poniższej linijki już nie wykonuje tylko wypisuje komunikat błędu "eRegisteredAplicationidnotfound"
                            wymiar.XData = rb;
                           
                            wymiar.XData = acResBuf;
                           
                            wymiar.XDataTransformBy(mat);
                           
                            wymiar.Dispose();
                           
                            wymiar_start = koniec;
                         

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się