Recommended Posts

Posted (edited)

Witam wszystkich. Chciałbym się pochwalić pierwszą nakładką dedykowaną dla ZWCAD 2017, którą napisałem i udostępniam na stronie www.przybornik.parikon.pl. Wkrótce mam zamiar udostępnić następne. Osoby zainteresowane zapraszam do testowania. Niestety ograniczam się tylko do aplikacji 64 bitowych. Sam projekt nakładek jest swego rodzaju nauką programowania. Mam nadzieję, udostępniać coraz ciekawsze programy i liczę także na pomoc na tym forum w kwestii ich testowania i opinii co do ich przydatności.

Edited by Parikon
Posted

Również pobiorę i przetestuję - pod warunkiem, że uda mi się odpalić, bo w moim przypadku bywa z tym różnie. Bardzo fajnie, że bierzesz się za programowanie nakładem i że w ogóle idziesz w kierunku programowania. Z pewnością jest o potrzebne w tej branży.
 

Posted

Zapraszam w takim razie i dziękuję  za odzew. Przybornik to aktualnie 5 nowych komend i 3 okna dialogowe. Mam nadzieję, że pod  Windows 10 i ZWCAD 2017 Pro uruchomi się bez problemu.

Posted

Próbowałem uruchomić nakładkę, ale na Windows 7 i nie ruszyła.
Czyli faktycznie potrzeba Windows 10. Czym to jest spowodowane użyciem bibliotek, które są tylko pod Win 10?

Objaw jest taki, że znaleziono pliku skala.dll

parikon.png

 

Mała sugestia - często praktykuje się, że po wczytaniu nakładki, że wyświetla się w linii poleceń informacja jakie nowe polecenia są dostępne, czy jak uruchomić okno itp.

 

Posted

Funkcja przeszukująca, która jest  zawarta w lispie przybornik_start.lsp , przeszukuje tylko ścieżki wpisane w ZWCAD-zie jako ścieżki plików suportu. Najprawdopodobniej nie podałeś  ścieżki do katalogu z programem platformie ZWCAD 2017 Pro. Dlatego  ZWCAD nie znalazł pliku skala.dll.

Opis programu Skala

Jeśli w Windows 7 masz Net framework 4.6 to raczej Windows 10 nie musi być. Nie testowałem nakładki pod Windows 7. W zasadzie mogę nakładki kompilować pod niższe wersje jeśli w tym byłby problem. Nie używam w nich jakiś zaawansowanych metod czy też funkcji.

Posted

Także chętnie bym potestował, ale próg NET Framework 4.6 to problem.

Może rozważyłbys lekkie obniżenie wymagań? Zwiekszysz przez to szansę używalności.

Sam nie koduję w .NET ale za http://www.zwsoft.com/zwcad_forum/thread-2876-1-1.html  widac iż w kompilatorze .NET bez kłopotu mozna obniżyć Target Platform (do 4.0)  

ZWCAD 2017 instaluje właśnie  NET 4.0 

Poza tym (troche offtopic) : Mi ręce opadają jak dajemy sie bezkrytycznie mechanizmem Windows Update firmie M$ ubezwłasnowolnić instalując wszystkiego najświeższe wersje. To właśnie to w dużej mierze odpowiada za utratę mocy sprzetu nawet na najszybszych Intel I7. Takie praktyki pozwalają także Microsoftowi na bezkarnie dla mnie 'porażająco nieetyczne'  wciskanie w Windows Update automatycznej instalacji Windows 10 ... .  To będne kolo. Za parę miesięcy wjdzie przeciez .NET 4.7 ... co wtedy?

Pozdrawiam,
J.

Posted

Dobrze, że się uruchamia. A jak z funkcjami które spełnia? Działa wszystko! Aktualnie pracuję nad modułem generującym ramki. Mam nadzieję, że moduły, które udostępniłem działają bez zarzutów.

Posted

Witam

U mnie po uruchomieniu polecenia WG_DODAJWARSTWY, pojawia się komunikat "Brak danych o warstwach!" a po naciśnięciu OK, pojawia się błąd o wystąpieniu wyjątku jak niżej. Pozdrawiam

2016-12-22 15_04_43.png

Posted

Program odwołuje się do obiektu, który nie istnieje. Zasadniczo proponuje skasować plik ustawwartwy.pid w katalogu programu. Plik ten to baza danych warstw. Uruchomić najpierw program do wstawiania warstw. Wstawić sobie chociaż jedną warstwę do bazy i dopiero wywoływać komendę WG_DODAJWARSTWY.

Posted (edited)

@ Pawmal

Wydaje mi się, że już ten błąd poprawiłem. Po wykryciu braku danych o warstwach program nie będzie wywoływał kodu po informacji "Brak danych o warstwach". Dodatkowo zabezpieczyłem także możliwość wywołania kodu, kiedy użytkownik wywoła komendę WG_DODAJWARSTWY w sytuacji gdy nigdy nie wywołał okna programu warstwy i nie utworzył bazy. Wtedy także pojawi się komunikat przybornika zamiast komunikatu ZWCADA. Jedno jest fajne, że nawet teraz ZWCAD się nie wysypie tylko ładnie podaje co mu nie pasuje.

Przy następnej wersji PRZYBORNIKA, która pojawi się wraz dodatkowym programem generującym ramki ten błąd będzie już poprawiony.

P.S. Przepraszam że jedno pod drugim ale nie miałem opcji edytuj w poprzedzającym poście.

Edited by Parikon
Przeprosiny
Posted

Tak, właśnie WG_DODAJWARSTWY  powodowało wyświetlenie komunikatu.

Ale jak poprawione jest to fajnie.

Trzymam kciuki za rozwój programu.

PS. Edytować posta można chyba do 1 godziny po wpisie lub do momentu, gdy ktoś wpisze następny post.

Posted

Witam.

Programy są pisane w VB czy może w C#? Od jakiegoś czasu trochę ćwiczę C# ale w zasadzie jako ogólne programowanie aplikacji desktop.  Chętnie bym coś podpatrzył jak zaprząc c# do aplikacji pod zwcd'a bo też mi chodzi parę pomysłów po głowie. Chętnie bym się czegoś nauczył lub wymienił doświadczenia (moje są niewielkie lub wręcz żadne w programowaniu c# pod cad'a ale co nieco napisałem w lispie jak również w innych językach w zastosowaniach ogólnych) lub wziął bym udział w tworzeniu wspólnie narzędzi. Na forum był zapowiadany kurs programowania w c# pod ZwCad'a ale zdaje się nie wystartował :( Może warto taki wątek na forum założyć?

Posted

Ciekawy pomysł z ramką.

Działa fajnie ale nie mogę rozgryźć obrotu ramki. Czy ta opcja nie powinna zamieniać szerokości z wysokością?

Mam dwie ramki, jedną zdefiniowałem jako obróconą a wstawia je jednakowo (chyba, że coś źle robię).

 

Posted (edited)

Obrót zamienia długość z szerokością jednakże działa od określonej długości. Od formatu A3 już powinno zamieniać. Dla formatki A4 zamiana nie miałaby sensu lub inaczej mówiąc trzeba by było pisać dużo więcej kodu. To co jest powinno wystarczyć. Do wyboru mamy najczęściej sprzedawane szerokości rolek. Długość możemy ustalić od 210 do 2500mm. Dodatkowo na dole mamy n-znaczników od lewej co 190mm oraz od prawej jeden znacznik 210mm.

Edited by Parikon
Dodatkowe informacje
Posted

Definiując ramki trzeba myśleć w kategoriach szerokości rolki. Mając zakupiony lub założony w ploterze papier o szerokości 914mm tworzę ramkę szerokość 914razy długość 1189. Mam więc coś w rodzaju A0+ oraz nie muszę docinać potem rysunku do A0. Jeśli nie potrzebuję całego A0+ to skracam długość ramki, którą mogę wygenerować w pionie i w poziomie natomiast przy plotowaniu zawsze mam możliwość ustawienia tak aby plotować jak najekonomiczniej.

Posted (edited)
2 godziny temu, Parikon napisał:

Pojawił się nowy program w zakresie PI o nazwie OZNACZ PRZEKRÓJ.

Oznacz przekrój

Dodałem także możliwość wyboru w programie RAMKA szerokości papieru 841mm, której zabrakło w pierwszym wydaniu tego programu.

 

Widzę ciągły progress :-)

Dorzuciłbym do okna dialogowego obok textboxa z numerem koloru buttona z podpiętym dialogiem wyboru coloru. W lispie to (acad_truecolordlg ...).

2017-01-02 13_07_59-Select Color.png

W c# zdaje się jest to coś około: 

ColorDialog dlg = new ColorDialog();
                dlg.ShowDialog();

Ale mi w ZwCAD 2015 wyskakuje inne okno niż to wołane przez (acad_truecolordlg) a mianowicie

2017-01-02 13_09_40-Kolor.png

Wiesz może jak w NET.API wywołuje się ten pierwszy dialog?

 

Już znalazłem. Trzeba wskazać pełny Namespace

ZwSoft.ZwCAD.Windows.ColorDialog dlg = new ZwSoft.ZwCAD.Windows.ColorDialog();

 

Edited by perlon
Uzupełnienie
Posted (edited)

Aktualnie zależy mi na dodawaniu nowych możliwości do PI. Z czasem trzeba będzie nauczyć  się korzystać z tych okienek.

Tutaj jest strona programisty, który podaje dużo ciekawych przykładów w C# i .net dla AUTOCADA i podany link chyba rozwiązuje ten problem.

oczywiście Autodesk.AutoCAD = ZwSoft.ZwCAD

 

 

 

 

Edited by Parikon
poprawka
Posted (edited)
using zzd = ZwSoft.ZwCAD.DatabaseServices;
using zza = ZwSoft.ZwCAD.ApplicationServices;
using zzr = ZwSoft.ZwCAD.Runtime;
using zze = ZwSoft.ZwCAD.EditorInput;
using zzg = ZwSoft.ZwCAD.Geometry;
using zzc = ZwSoft.ZwCAD.Colors;
using zzw = ZwSoft.ZwCAD.Windows;

 private void button1_Click(object sender, RoutedEventArgs e)
        {
            zza.Document doc = zza.Application.DocumentManager.MdiActiveDocument;
            zzd.Database db = doc.Database;
            zze.Editor ed = doc.Editor;
            zzw.ColorDialog cd = new zzw.ColorDialog();

            System.Windows.Forms.DialogResult dr = cd.ShowDialog();            

            if (dr == System.Windows.Forms.DialogResult.OK)

            {
                zzc.Color color = new zzc.Color();
                color = cd.Color;
                coloroznaczenia = color.ColorIndex;               
            }
        }

Taki kod powinien zawsze, niezależnie od tego z której zakładki okna z kolorami korzystam nadać zmiennej coloroznaczenia odpowiedni Colorindex. Jeszcze raz dzięki za naprowadzenie dla @perlon. Oczywiście doc, db, ed, w tym przypadku są niepotrzebne.

Edited by Parikon

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...