Parikon

Użytkownik forum
  • Postów

    355
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    19

Odpowiedzi opublikowane przez Parikon

  1. 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;
                             

  2. 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, "}" )});

     

  3. Jest to jakieś rozwiązanie i działa. Jednakże dziwne, że nagle trzeba zmienić kod aby coś działało jak należy. Dla sprawnego oka widoczne jest, że paleta najpierw pojawia się obok, a potem dopiero jest dokowana. Przy czym objawia się to tylko po uruchomieniu ZwCAD-a. Dobrze by było to zgłosić do poprawki. Natomiast sam kod udało  mi się zaimplementować z powodzeniem.

    static void OnPaletteClose(object sender, zzw.PaletteSetStateEventArgs e)
            {
                if (e.NewState == zzw.StateEventIndex.Hide)
                {
                    if (_ps.Dock == zzw.DockSides.Left)
                    {
                        Settings1.Default._ps = "left";
                    }
                    else
                    {
                        Settings1.Default._ps = "right";
                    }
                }
            }

    Dziękuję za pomoc.

  4. Potrzebuje rozwiązania problemu braku automatycznego dokowania od wersji 2020. W 2019 po włączeniu ZwCAD panele automatycznie się dokują zgodnie z  kodem c#. A od wersji 2019.3 lub w wersji 2020 panel wyrzucony jest na bok.

    Nie chce zakładać oddzielnego tematu

    PaletaBazaZbrojenia.DockEnabled = (zzw.DockSides)((int)zzw.DockSides.Left + (int)zzw.DockSides.Right);

     

  5. 1 godzinę temu, dmatusz3 napisał:

    Już ładnych parę lat nie przenosiłem licencji AutoCADa, ale pamiętam, że razem z tym programem instalowało się narzędzie do tego celu, które "prowadziło za rączkę".

    Trzeba było również na nowym stanowisku zainstalować tą samą wersję programu i trochę pobiegać z pamięcią USB pomiędzy stanowiskami.

     

    Ale ja pytam poważnie. A odpowiedź brzmi humorystycznie? Mam oryginalnego Autocad-a. Z pobranym kodem aktywacyjnym przez internet. Twierdzi pan w jednym poście, że jeśli zrobię kopię zapasową systemu to i tak nie uruchomię AutoCAD-a na innej konfiguracji sprzętowej. Ale nie miał pan problemu aby taki kod aktywacyjny zapisany notabene gdzieś na dysku przenieś za pomocą USB na inny komputer gdzie oczywiście instaluje wcześniej Autocada o tym samym CD Key co na komputerze na którym ten USB pan stworzył. Bieganie pomiędzy stanowiskami do czego ma się przysłużyć? 😉

     

  6. Godzinę temu, dmatusz3 napisał:

    Z moich doświadczeń wynika, że odtwarzanie obrazu dysku systemowego na innym komputerze spowoduje potrzebę wprowadzenia innego kodu i ponownej aktywacji Windowsa.

    Programy, które trzeba aktywować online też poszły tym tropem.

    Odtworzenie systemu na tym samym komputerze ale innym dysku twardym nie wymagało ponownej aktywacji.

    Windows10  spokojnie się aktywuje na nowym komputerze, gdyż jest przypisany do mojego konta Microsoft i można go przenosi na nowe maszyny. Jak w takim razie dziala metoda z przenoszeniem za pomocą USB na inne komputery wieczystych starych licencji?

  7. Ale jak mam Win 10 przypisany do konta to mogę go aktualnie przenosić na inne komputery. Robię więc kopię zapasową dysku C na dysku, ale innego kompa (na serwerze danych chodzącym na LInux) . Mogę odtworzyć tę kopię na innej maszynie. Uaktualnić sterowniki, a AutoCad lub ZwCAD powinny działać na kluczu, który już jest. Polityka cenowa ZwSoft nie odstrasza od corocznych aktualizacji. Natomiast Autodesk to dodatkowy miesięczny ZUS. 😉

  8. W przypadku klucza tak jest. A w przypadku menedżera licencji, ten dodatkowy obowiązek narzuca licencjodawca. Przy czym oznacza to, że nie mam prawa przenieść programu na inną maszynę jak tylko za ich zgodą. To tak jakbym kupując fotelik do samochodu zgodził się że mogę go instalować w innym samochodzie po poinformowaniu firmy która mi go sprzedała. A jeśli firma mnie na rok wczesniej poinformuje że już się nie będzie zgadzać na przenoszenie fotelika to mogę go używać w tym samochodzie co mam do końca "życia" fotelika lub tego auta

     

  9. Licencja bezterminowa – cóż to takiego?

    Cytuj
    • licencje na czas nieoznaczony – licencję udzieloną na czas nieoznaczony można wypowiedzieć z zachowaniem terminów określonych w umowie bądź w ustawie;
    • licencje na czas oznaczony do 5 lat – umowa na czas oznaczony wiąże strony i przed upływem terminu, co do zasady, strony nie mogą jej wypowiedzieć;
    • licencje na czas oznaczony powyżej 5 lat – licencję udzieloną na czas oznaczony dłuższy niż 5 lat po upływie tego terminu uważa się za udzieloną na czas nieoznaczony; doktryna i orzecznictwo wyjaśniają, że wolą ustawodawcy było wskazanie, że po upływie 5 lat licencja wprawdzie nadal jest zawarta na czas oznaczony, ale może być wypowiedziana z zachowaniem terminów wypowiedzenia przewidzianych dla licencji udzielonych na czas nieoznaczony.
    Cytuj

    Innymi słowy licencjobiorca, który nie ureguluje w umowie licencji na czas nieoznaczony terminu wypowiedzenia, powinien się liczyć z ryzykiem jej wypowiedzenia przez licencjodawcę z zachowaniem ustawowego terminu, który – uwzględniając działalność licencjobiorcy – może okazać się stosunkowo krótki.

    Ten ustawowy termin to 1 rok chyba.

  10. Ja też nie mam żadnych problemów jeśli chodzi o ZwSoft a nawet Autodesk. Do tej pory zakładałem, że nie ma możliwości abym stracił możliwość aktywacji programu, no chyba ze firma upadnie. Ale teraz wynika z tego, że prawnie mogą zaprzestać wpierania licencji wieczystej poprzez wyłączenie serwera z kluczem. I to w każdym czasie, gdyż jest to niejako prawnie traktowane jako umowa bezterminowa, czyli z możliwością wypowiedzenia w każdej chwili, a nie w określonym w umowie czasie.  Wieczysta to w matematyce nieskończoność, czyli umowa nie ma określonego czasu. 😉

  11. Z tej strony Autodesku wynika, że licencja wieczysta nie jest wieczysta, gdyż firma może kiedyś przestać wspierać wydawanie kodu po jego zwrocie na serwer. Jak to wygląda w przypadku ZwCAD. Czy istnieje jakiś minimalny czas prawny, po którym firma ZwSoft, będzie mogła nie wspierać managera licencji? Być może, źle interpretuje to zdanie:

    Cytuj
    ...
    
    Jednak w przypadku nieobsługiwanych wersji nie można uzyskać nowego kodu aktywacyjnego, aby ponownie aktywować tę wersję na dowolnym urządzeniu. Nie wydamy również aktualizacji oprogramowania ani poprawek dla wersji, które osiągnęły koniec wsparcia.

     

  12. W c# mogłoby być tak:

     		/// <summary>
            /// Zamraża wszystkie warstwy oprócz aktywnej
            /// </summary>
            public static void Frezealllate()
            {
                try
                {
                    // Get the current document and database
                    zza.Document acDoc = zza.Application.DocumentManager.MdiActiveDocument;
                    zzd.Database db = acDoc.Database;
    
                    // Start a transaction
                    using (zzd.Transaction acTrans = db.TransactionManager.StartTransaction())
                    {
                        // Open the Layer table for read
                        zzd.LayerTable TablicaWarstw;
                        TablicaWarstw = acTrans.GetObject(db.LayerTableId,
                                                        zzd.OpenMode.ForRead) as zzd.LayerTable;                 
    
    
                        foreach (zzd.ObjectId warstwa in TablicaWarstw)
                        {
                            zzd.LayerTableRecord acLyrTblRec;
                            acLyrTblRec = acTrans.GetObject(warstwa, zzd.OpenMode.ForWrite) as zzd.LayerTableRecord;
                            if (warstwa != db.Clayer)
                            {                            
                                acLyrTblRec.IsFrozen = true;
                            }
                            
                        }
    
                        // Save the changes and dispose of the transaction
                        acTrans.Commit();
                    }
                }
                catch (System.Exception ex)
                {               
                    zza.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(ex.ToString());
                }
            }