-
Postów
1 427 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
83
Aktywność reputacji
- Poprzednia
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Dalej
- Strona 4 z 7
-
kruszynski przyznał(a) reputację dla perlon w Wymiar z podziałem na "n" cześci
A co mi tam. Napisałem rybę. Mi się też przyda
(defun c:ww1 ( / ent) (while (= nil ent) (progn (prompt "\nWskaz wymiar do zmiany: ") (setq ent (car (entsel))) ) ) (if (= (cdr (assoc 0 (entget ent))) "DIMENSION") (multipledimsection (entget ent)) ) ) (defun c:ww2 ( / ) (command "_dimlinear" pause pause pause) (multipledimsection (entget (entlast))) ) (defun multipledimsection ( entlist / n section newtext) (setq n (getint "\nPodaj liczbe odcinkow: ") section (/ (cdr (assoc 42 entlist)) n) newtext (strcat "<>\\X(" (itoa n) "x" (rtos section 2 2) ")") entlist (subst (cons 1 newtext) (assoc 42 entlist) entlist) ) (entmod entlist) (princ) ) (princ)
-
kruszynski przyznał(a) reputację dla Parikon w Dostosuj interfejs użytkownika.
Tutaj można pobrać pusty "częściowy plik ustawień" (ang. partial cuix) i wypełnić w oknie "Dostosuj interfejs użytkownika". Wcześniej zalecam zmienić nazwę.
-
kruszynski przyznał(a) reputację dla perlon w LISP - rysowanie części/kontury.
Pisanie lispa bezpośrednio do okna komend to raczej słabe jest. Żadnych szans na poprawki. Zrób kolego tak:
1. Otwórz jakiś edytor tekstowy (notatnik, notepad++, cokolwiek)
2, Wpisz coś takiego
(command "Line" (getpoint) (getpoint) (getpoint) (getpoint) "c") 3. Zapisz jako : d:\moj_lisp.lsp
d:\ jest przykładową lokalizacją ty wybierz sobie jaką tam chcesz, moj_lisp.lsp jest nazwą pliku LSP który należy wczytać do zwcad'a. Też możesz wybrać cokolwiek byle miało rozszerzenie .LSP
4. W linii komend w zwcad'zie wpisz
(load "d:\moj_lisp.lsp") 5. Wskaż cztery punkty zgodnie z podpowiedzią w linii komend
6. Masz swój pierwszy program w LISP'ie rysujący czworokąt z obiektów typu linia o wskazanych wierzchołkach
7. Wpisz do powyższego pliku taką sekwencję
(setq p1 (getpoint "Wskaz punkt:")) (setq p2 (polar p1 0 100)) (setq p3 (polar p2 (/ PI 2) 100)) (setq p4 (polar p3 PI 100)) (command "Line" p1 p2 p3 p4 "c") 8. Zapisz i załaduj ponownie do zwcad'a
Masz lispa który rysuje kwadrat.
W pliku moj_lisp.lsp możesz dopisywać kolejne komendy, polecenia, funkcje które złożą się na jakąś sekwencję dającą oczekiwany efekt. Możesz na forum wrzucić co masz już napisane, to dasz szansę, żeby ci pomóc.
-
kruszynski przyznał(a) reputację dla perlon w [LISP] Tworzenie własnego menu
Należałoby najpierw uściślić czy chodzi ci o wstążkę czyli z angielska ribbon w stylu wstążkowym interfejsu,
Czy może jednak menu rozwijanie z interfejsu klasycznego to co pokazałeś na własnym zrzucie ekranu. Kwestia semantyki.
Jeżeli to pierwsze to trzeba się bawić edytorem plików .cui (Tools->Customize->Customize interface)
Jeżeli to drugie to poszukaj w googlu hasła autocad custom menu pull-down; i polecenia menuload
Tutaj masz co nieco o tworzeniu własnego menu.
https://www.afralisp.net/archive/lispa/menu1.htm
http://www.thirdistudio.com.au/AutoCADmenu1.html
no i oficjalna strona autodesku
https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-90B274D0-C750-4ADA-9D3E-2C07B157F6A3-htm.html
Większość nakładek ma jakieś swoje menu. Można podejrzeć jak to jest zrobione np. w Profilku naszego kolegi forumowego Gruzin albo w nakładkach e-cad. Każde takie menu siedzi w pliku *.mnu
Zdaje się, że nowe wersje zwcada nie mają już tego pliku ale w wersji 2015+ taki plik jest w kartotece
{user}\AppData\Roaming\ZWSOFT\ZWCAD\2015\en-US\Support
Można go sobie pooglądać i zrobić coś a'la w podobie.
-
kruszynski przyznał(a) reputację dla perlon w C# Hatch
Wygląda na to, że hund begraben jest w kodzie DXF 92. Po wstawieniu hatcha z .NET API kod wynosi 0. Sprawdziłem że dla kodu 1 jest liczona powierzchnia. Dla innych nie sprawdzałem.
Wyciąg z dokumentacji kodów DXF
Boundary Path Data
The boundary of each hatch object is defined by a path (or loop) that consists
of one or more segments. Path segment data varies depending on the entity
type (or types) that make up the path. Each path segment is defined by its
own set of group codes. For information about abbreviations and formatting
used in this table, see Formatting Conventions in This Reference on page 2.
Hatch boundary path data group codes
Description Group code
Boundary path type flag (bit coded): 92
0 = Default; 1 = External; 2 = Polyline
4 = Derived; 8 = Textbox; 16 = Outermost
Lekarstwo w lisp'ie.
(defun c:hatchfix ( / entity dxfdata old-dxf new-dxf dxfdata ) (setq entity (car (entsel)) dxfdata (entget entity) old-dxf (assoc 92 dxfdata) new-dxf '(92 . 1) dxfdata (subst new-dxf old-dxf dxfdata) ) (entmod dxfdata) ) W C# jeszcze nie znalazłem co i jak trzeba zafiksować żeby DXF 92 był 1.
-
kruszynski otrzymał(a) reputację od perlon w [C#] zdarzenie przy komendzie CANNOSCALE
Może Eventhandler SystemVariableChanged ?
-
kruszynski otrzymał(a) reputację od alf w odtworzenie obwiedni kreskowania_problem
Jak na razie przygotowałem taką wersję minimalną.
Działa tak, że klikamy w kolejne obszary w wyniku powstaje sumaryczny obrys.
zlewnia.lsp
-
kruszynski przyznał(a) reputację dla perlon w Przybornik PARIKON
Jakiś czas temu wpadła mi w ręce taka pozycja:
https://helion.pl/ksiazki/refaktoryzacja-ulepszanie-struktury-istniejacego-kodu-martin-fowler-kent-beck-john-brant-william-opdy,refukv.htm#format/d
Trochę już lat od wydania ale mi osobiście zmieniła spojrzenie na sporo rzeczy jeżeli chodzi o optymalizacje kodu.
W przypadku kot wysokościowych są duże fragmenty powtórzonego kodu np. tego związanego z pobieraniem od użytkownika punktów, obsługą warstw czy rysowaniem tekstu. Dla każdej z kot jest on identyczny. Może warto wydzielić go do osobnej metody tym bardziej, że jak przyjdzie pomysł na inne koty to ten kod będzie potrzebny po raz kolejny. Krótszy kod łatwiej się zarządza i ewentualne poprawki robi się w jednym miejscu a nie w wielu powtórzeniach.
-
kruszynski otrzymał(a) reputację od Adam Klaczek w Wyświetlanie etykiety z odległością i kątem - rozszerzenie funkcji [Wprowadzono w ZWCAD 2018]
Po niewielkim dostosowaniu, teraz powinno być OK
PowerDraw_2018.zelx
-
kruszynski przyznał(a) reputację dla perlon w projekt_forum.dll
Można nieco przyspieszyć pracę z kodem i umożliwić debugowanie kodu. Szczegóły na filmiku. Z góry przepraszam za słaby warsztat w nagrywaniu bo to mój pierwszy raz 😉
-
kruszynski przyznał(a) reputację dla Parikon w projekt_forum.dll
Polecam ten kurs do przerobienia. Przyda się w dalszej pracy nad projekt forum.
-
kruszynski otrzymał(a) reputację od perlon w [DCL] Walidacja wartości edit-box'a
NIezupełnie wyszło tak jak chciałem, ale może wystarczy.
Blokuje inny element okna. ale nie przy każdej zmianie, ale przy zatwierdzaniu wartości, np przechodząc do innej komórki,albo [enter] na koniec.
plik DCL wygląda tak:
EditCheck : dialog { label = ""; :edit_box{ key="path"; label="Ścieżka"; edit_width=6; fixed_width=true; action = "(DCL:Edit:IsValid)"; } : button { action = "(done_dialog 0)"; key = "accept"; label = "Zapisz"; } : button { action = "(done_dialog 0)"; key = "cancel"; label = "Anuluj"; is_cancel = true; } } plik LSP tak:
(defun DCL:Edit:IsValid ( / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nDCL:Edit:IsValid :*error*: " ) (princ msg ) (princ "\n") ) ) ) (print (strcat "wartość wpisana do okna: " $key " to: " $value ) ) (if (= "" $value) (mode_tile "accept" 1) (mode_tile "accept" 0) ) ) (defun c:testEdit ( / dcl_id RunDialogResult coords LastPath *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nc:testEdit:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq DCL_Path "C:\\<< TWOJA ŚCIEŻKA >>\\edit_check.DCL") (setq dcl_id (load_dialog DCL_Path)) (setq RunDialogResult t ) (setq LastPath "" ) (while RunDialogResult (if(not(new_dialog "EditCheck" dcl_id))(exit)) (action_tile "cancel" "(done_dialog -1)") (setq RunDialogResult(start_dialog)) (cond ((= RunDialogResult 0) (progn (setq RunDialogResult nil ))) ; ESC pressed (t (print RunDialogResult)) ) ) (unload_dialog dcl_id) (princ) )
-
kruszynski otrzymał(a) reputację od Parikon w [C#] Detekcja środowiska
Znalazłem:
namespace test { public class Class1 : ZwSoft.ZwCAD.Runtime.IExtensionApplication { public void Initialize() { MessageBox.Show("Initialize!"); } public void Terminate() { Console.WriteLine("Cleaning up..."); } [CommandMethod("test2492")] public static void test2492() { MessageBox.Show("Hello World!"); } } } Ale jestem z siebie dumny
-
kruszynski przyznał(a) reputację dla Adam Klaczek w Szablony i skrypty startowe ZWPack
No to proszę: DWidok_Skrecenie.lsp
Polecenie: DWS
-
kruszynski przyznał(a) reputację dla 2P w wipeout obwiednia
Od wielu lat korzystam z wipeoutów w dość specyficzny i myślę oryginalny sposób. Dzięki wipeoutom rysując otwory w ścianach (okna, drzwi, przejścia itp.) nie rozcinam kresek rysunku ścian i ich haczowania, tylko przykrywam je odpowiednimi blokami drzwi i okien zawierającymi wipeout. Do poprawnego działania potrzebuję właśnie wipeouty nie tyle bez obwiedni, co z obwiednią w kolorze tła (i o określonej grubości). Czyli to o czym jest tutaj mowa. (Ale powyższe pomysły tego nie załatwiają).
Mój sposób jest taki, że mam specjalną warstwę na wipeouty o kolorze .... TrueColor 255,255,255. Czyli białym. Bo pracuję na białym ekranie roboczym. W przypadku osób pracujących na ciemnych ekranach, warstwa ta powinna mieć kolor odpowiadający tłu. ALE! przed wydrukiem należy przestawić jej kolor zawsze na RGB 255.255,255, żeby osiągnąć pożądany efekt na wydruku. Ja mam do tego specjalnego LISPa, który załatwia sprawę za mnie.
Ogólnie mówiąc wipeouty mają potężne możliwości i umożliwiają zupełnie inne podejście do rysowania. Szkoda, że są tak mało znanym elementem i wykorzystywanym jedynie sporadycznie. Nie rozumiem czemu. A o wykorzystaniu wipeoutów z obwiednią w kolorze tła, to właściwie oprócz mojego rozwiązania nie słyszałem nigdy wcześniej. A to naprawdę daje duże nowe możliwości. U mnie w biurze technikę takiego wrysowywania okien, drzwi, barierek, detalu na elewacjach i mnóstwa innych rzeczy przyjęli już wszyscy i bez tego nie ma życia. Nie ma efektywnego rysowania bez wipeoutów.
Dlatego zachęcam do wipeoutów. Jakby ktoś był bardziej zainteresowany moją techniką obiektowego rysowania rysunków budowlanych to chętnie opowiem.
-
kruszynski przyznał(a) reputację dla 2P w Blok ze współrzędnymi X i Y
Akurat w tym przypadku to nie jest takie trudne do zrobienia. Wystarczy, że zapisując w pliku DWG dla niższej wersji atrybut z field zostanie zapisany jako zwykły atrybut z tekstem na stałe. Dzięki temu treść rysunku pozostanie taka sama, a nie będzie działać tylko automatyzacja.
-
kruszynski przyznał(a) reputację dla dmatusz3 w Blok ze współrzędnymi X i Y
Powyższa funkcjonalność z fieldami w atrybutach bloku będzie dostępna od wersji ZWCAD 2019.
Poniżej film jak tego dokonać.
-
kruszynski przyznał(a) reputację dla Adam Klaczek w Blok ze współrzędnymi X i Y
Dzień dobry,
Można to zrobić za pomocą _mleader i _field, ale wydaje się, że najprościej byłoby to zautomatyzować lispem, np. załączonym.
Po wczytaniu, funkcję wywołuje się przez XY.
(lisp na podstawie kodu z www.cad-notes.com)
xy.lsp
-
kruszynski przyznał(a) reputację dla kojacek w [ssget]
Ja tam jestem zwolennikiem minimalizmu w kodzie:
(ssget "_x" '((0 . "hatch")(-4 . "/=")(62 . 1)(-4 . "/=")(62 . 105))) 😉
-
kruszynski przyznał(a) reputację dla Marek-M w Przechowywanie informacji w bazie danych
Bardziej miałem na myśli, że @Parikon w swojej aplikacji wykorzystuje właśnie bazę danych SQLite i sposób jej wykorzystania może być podobny do Twojego pomysłu (nie zagłębiałem się w szczegóły techniczne jego rozwiązania i mogę z tego powodu się mylić). Myślę, że dotychczasowa praca Parikona może być dla Ciebie pomocna. Życzę powodzenia w Tworzeniu własnej aplikacji Aplikacji nigdy za wiele
-
-
kruszynski otrzymał(a) reputację od dmatusz3 w Błąd: zły typ funkcji - nil, źle umiejscowiony prawy nawias
Taki komunikat świadczy o problemie jaki wystąpił w jakimś LISPie. Być może jest załadowany w inny sposób niż lista startowa:
Wczytane z automatu są pliki: W opcjach może być dodany katalog. Jeśli w nim jest plik ZWCADdoc.lsp zostanie wczytany przy otwieraniu plików Jeśli jest wczytane menu (plik mnu) , odpowiadający mu plik MNL zostanie wczytany %AppData%\Roaming\ZWSOFT\ZWCAD\2018\pl-PL\Support\ZWCAD2018doc.lsp c:\Program Files\ZWSOFT\ZWCAD 2018\Support\ZWCAD2018.lsp Aplikację możemy wczytać przez rejestr HKEY_CURRENT_USER\Software\ZWSOFT\ZWCAD\2018\pl-PL\Applications\MojaAplikacja choć to raczej arx niż LISP Jeśli w skrócie w użyjemy parametru /ld albo /b wczytany będzie skrypt, (scr), ale on też może ładować LISPa. Mamy jeszcze plik acad.rx , ale to też raczej do ARX niż LISP a treść komunikatu wskazuje jednak na LISP ( plik ZRX też może ładować plik LISP) Część funkcjonalności ZWCADa zwłaszcza narzędzia ExpressTools są opracowane w LISP i ładowane na starcie. Być może problem jest jakoś związany z rysunkiem a raczej z parą rysunków skoro problem występuje przy otwarciu drugiego rysunku przez 2xclick.
Proszę obserwować program, ważne by udało się ustalić zasadę - powtarzalność występowania problemu, leśli to się uda być może będzie łatwiej uniknąć problemu w przyszłości.
-
kruszynski przyznał(a) reputację dla Marek-M w Polecenie cofnij podczas wyłączania warstw
Heh, szkoda, że ZWCAD tak intensywnie nie pracuje nad funkcjonalnością swojego programu jak Wy. Wasz starający się support mocno podnosi wartość tego oprogramowania z Chin Dzięki za Wasz trud, łatwiej mi będzie namówić kierownictwo do odświeżenia licencji ZWCAD jak już wyjdzie porządna wersja alfa np. ZWCAD 2021. 😉
Póki co ZWCAD 2015+ jest naszym podstawowym narzędziem pracy.
-
kruszynski otrzymał(a) reputację od jacnightingale w ZWTraffic
Możliwe to jest, tylko potencjalnie narażone na komplikacje. Bo jak odróżnić blok opisowy od innych? Można w programie zapisać na stałe nazwę bloku opisowego. Ale jeśli ktoś chciałby użyć tego narzędzia w innym przypadku to nie zadziała. zaznaczenie jednego bloku wzorca chyba nie jest zbyt kłopotliwe a daje nam dużą elastyczność.
-
kruszynski otrzymał(a) reputację od tolosek w Tworzenie znaków F-6
Możemy wprowadzić w zasadzie dowolną funkcjonalność do naszych nakładek, potrzebujemy na to tylko pomysłu i czasu.
Czy może Pan opisać szczegółowo jak chciałby Pan korzystać z programu? Może przygotuje Pan jakąś "makietę" okna dialogowego choćby na kartce długopisem i prześle Pan zdjęcie?
- Poprzednia
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- Dalej
- Strona 4 z 7