Ranking

Popularna zawartość

Zawartość, która uzyskała najwyższe oceny od 10/01/12 w Odpowiedzi

  1. Przygotowałem skrypt, który pomoże dzielić model na arkusze: Funkcja do uruchomienia: ww Działanie przedstawiłem na filmiku: Arkusze.zelx
    8 punktów
  2. pawmal

    Rebus piątkowy

    Dziesięć lat z ZWCAD ;) albo Dekada z ZWCAD
    7 punktów
  3. W ZWCAD 2025 zostało dodane nowe polecenie sizedrive Pozwala ona na dopasowanie geometrii do wymiaru. Działa w 3 krokach: Wskazujemy wymiar, który chcemy zmienić. Wpisujemy nową wartość wymiaru. Zaznaczamy oknem, które elementy mają być przesunięte lub rozciągnięte. Działanie pokazaliśmy na filmie poniżej.
    6 punktów
  4. dmatusz3

    Wstawianie map WMS z serwerów gov.pl

    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl. Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej. Biblioteki do pobrania ZWMS.zip Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
    6 punktów
  5. Proszę na zniekształconym tekście spróbować wywołać polecenie jak na obrazku poniżej. U mnie działa to w taki sposób:
    5 punktów
  6. montek

    Import danych z Excela do SMath

    Widziałem , gdzieś na forum pytanie czy da się wstawić tabele z Excela do SMatha. Bezpośrednio przez schowek się nie da :( Jednak jakiś czas temu znalazłem na to sposób. Trzeba zainstalować dwie wtyczki Jedna do tworzenia tabeli druga do importu danych z Excela Następnie tworzymy zmienną ala Macierz funkcją importData.XLSX(4) np. DANE:=importData.XLSX ("ścieżka do pliku.xlsx"; "nazwa arkusza / zakładki w pliku" ; "D5"; "F16") "D5" - początek zakresu F16 - koniec zakresu pobieranych danych - jest kilka importów ja stosuję (4). Już mamy dostęp do danych zmiennej aby odczytać dane robimy tak RzG:= DANE[7;2= ! nie zamykamy nawiasu ] to dopiero pierwszy etap czyli pobranie danych - niestety trzeba pilnować ścieżki musi być pełna parametry wpisujemy w " " Wstawiamy tabelę i mamy tabele odznaczamy wyświetl ... - aby nie było widać opisu pod tabelą aby usunąć Table 4 - klikamy (dwuklik) lewym na tabeli i pojawi się okno odznaczamy show caption i gotowe aby dodać np. kolumnę z tytułami wierszy, trzeba stworzyć nowy zbiór danych pobieranych z excela np. Lewa określając zakres w jednej kolumnie np. ;"DANE" ; "C5" ; C16" lub macierz bezpośrednio w SMatch i przypisać tzn. wybieramy miejsce gdzie będą wyświetlane dane dla lewej kolumny w kolejnej zakładce możemy formatować wygląd Body to zakres tabeli za danymi, a Left stub to nasza kolumna z opisami Uff i to było na tyle - dane z Excela w tabeli w SMath - zabawy trochę jest, ale się da SMath to naprawdę fajne narzędzie - z mojego doświadczenia jak trzeba przenieść obliczenia do edytora to lepiej skorzystać z OpenOffice . Dane z Calc też można pobrać funkcja importData przyjemnej zabawy
    5 punktów
  7. Hej, Napisałem skrypt PunktyNaKoncach.lsp według pomysłu @dmatusz3 Plik należy wczytać poleceniem AP. Instrukcja użycia wyświetla się w pasku poleceń. Wystarczy tylko wpisać polecenie PunktyNaKoncach, zaznaczyć obiekty i kliknąć Enter. Pomarańczowe punkty zostaną wstawione na warstwie Punkty na końcach, jeśli takiej warstwy nie ma to skrypt automatycznie ją utworzy. Wszystko działa jak na nagraniu 😏
    4 punkty
  8. Martin_S

    Jak narysować wieżę Eiffla?

    dokładam od siebie koła olimpijskie do twojej wieży Mateusz flaga wygląda tak koła: przygotowany blok dwg 3d do wykorzystania dwg: IO-2024.dwg
    4 punkty
  9. Można także jednorazowo przed wpisaniem wartości wpisać #, co oznacza, że będziemy wprowadzać współrzędne bezwzględne.
    4 punkty
  10. Kolega @kojacek mnie zainspirował i mam 5 kliknięć bez pisania niczego na klawiaturze :
    4 punkty
  11. ode mnie (zwarch15+ & artisan)
    4 punkty
  12. Blok z atrybutem dostosowującym pozycję podczas obrotu można przygotować tak: - tworzymy opisowy styl tekstu, gdzie zaznaczymy "Dopasuj orientację tekstu..." - tworzymy atrybut z tym stylem tekstu Atrybut wraz z narysowanymi obiektami definiujemy jako blok - i mamy:
    4 punkty
  13. Adam Klaczek

    Rzutnia w rzutni

    Taka metoda na utworzenie rzutni w rzutni, aby obiekty się nie nakładały:
    4 punkty
  14. Adam Klaczek

    ZWCAD 2021 - scalanie warstw

    W ZWCAD 2021 można scalić warstwy, zaznaczając je w oknie menadżera. Jeżeli na warstwach znajdują się obiekty, można je przenieść na inną, wskazaną warstwę.
    4 punkty
  15. Ustawienie zmiennej LAYEROVERRIDEHIGHLIGHT na 1 podświetli nam warstwy i pozycje w nich, które w bieżącej rzutni zmieniliśmy (nadpisaliśmy)
    4 punkty
  16. perlon

    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)
    4 punkty
  17. perlon

    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 😉
    4 punkty
  18. s1016

    Program Kota

    Chciałbym podzielić się swoim pierwszym programikiem w c#. Jestem drogowcem, przy projektowaniu np parkingu bardzo dużo czasu traciłem na przeliczanie rzędnych i spadków. Napisałem (oczywiście z pomocą wujka google) prosty programik, bardzo mi pomaga, jeśli ktoś chętny, chętnie się podzielę Rzędne na projekcie opisuję blokami "kota2" z atrybutem. pierwsze polecenie "kkk" wstawia kotę pomiędzy dwie wskazane drugie polecenie "ksk" po wskazaniu pierwszej koty wstawia drugą wyliczoną na podstawie podanego spadku trzecie polecenie kks wstawia blok ze strzałką i opisem pomiędzy dwoma kotami. Oczywiście jak widać na filmiku pewne niedokładności wynikają z zaokrągleń do 2 miejsc po przecinku. kota 2018-11-12 21-43-25-444.mp4
    4 punkty
  19. I jeszcze taki przykład
    4 punkty
  20. pawmal

    analiza wersji 2018 beta

    Witam Potrzeba wpisać _units, nacisnąć lewy ALT+SPACJA, następnie ENTER, kliknąć klawisz strzałki kursora na klawiaturze np. -> "w prawo" i poruszać myszą, aby sprowadzić okno na monitor widoczny ;) Pozdrawiam
    4 punkty
  21. Hania

    ZWTextile

    Nie smutaj Mayster, może następnym razem będzie bliżej
    4 punkty
  22. Szeroka rozpiętość tematyczna nakładek. Gwoli ścisłości dodam, że pewne pozycje z tej listy nie są nakładkami na ZWCAD. Natomiast te, które są nakładkami działają praktycznie w każdej wersji ZWCAD, zaczynając od najstarszej 2012, poprzez wersję+, aż do Classica. Doceniam Twoją rzekomą troskę o przyszłość ZWCAD, ale z tego co piszesz wynika bardziej, że Twoim zmartwieniem jest obecny tutaj brak zmartwień. Powtarzasz chórem z innymi nowymi użytkownikami, że ZWSOFT ukradł kod źródłowy. Proponuję się nieco zastanowić. W jaki sposób ZWSOFT mógł wejść w posiadanie kodu źródłowego? Przecież to są najpilniej strzeżone tajemnice. ZWSOFT wygrał proces sądowy. Gdyby ZWCAD był oparty na kodzie z AC, to ciężko mi uwierzyć, że sprawa zakończona zostałaby przez ugodę. Po ZWSOFT nie byłoby już śladu. W oficjalnej informacji o zawartej ugodzie upublicznionej przez obie firmy, nie ma żadnej wzmianki o kradzieży lub skopiowaniu kodu. Temat tego wątku brzmi: Czy to prawda, że jest proces przeciwko ZWSOFT (ZWCAD)? Odpowiedź: Nieprawda. Wobec powyższego wątek zamykam. Gdyby ktoś miał zastrzeżenia, proszę o wiadomość poprzez forum. Wątek przenoszę także do innego działu, ponieważ cała sprawa Classica to chyba już najmniej dotyczy. Pozdrawiam
    4 punkty
  23. Praktyczne wykorzystanie ZWCAD ARCHITECTURE + ARTISAN, i realna realizacja budynku w Lubinie, dzielnica MAŁOMICE (51.4114993N 16.2226385E) maj 2014 kwiecień 2015 p.s. Budowa jeszcze trwa :D a poczatki były takie koncepcja ze Sketchupa przeniesienie rozwiązania do ZWCAD ARCHITECTURE (listopad 2013r.)
    4 punkty
  24. JustynaDrd

    Rebus piątkowy

    Albo opona letnia :P
    4 punkty
  25. Witam W ZW3D elementy AcDbSubDMesh są przedstawione w formie prętowej, ale nie nadają się do wizualizacji. W ZW3D stosuje się przede wszystkim powierzchnie i bryły. Elementy AcDbSubDMesh można stosować do jakiś powierzchni mocno zmiennych, może roślin, drzew, ludzi, terenu..., ale w mechanice czy motoryzacji takie elementy nie mają racji bytu, dlatego, że nie są ze sobą połączone stycznie. Zresztą, proszę zwrócić uwagę jak wygląda koło w tym Audi Q7- jest po prostu kwadratowe. Nie spotkałem się jeszcze, aby jakiś projektant dostarczał geometrię w postaci siatki. Przede wszystkim geometria jest oparta na powierzchniach i bryłach (solidach). Pozdrawiam
    4 punkty
  26. Zmieniłem nazwę skryptu na WyrówajBlokiDoPoli. Uważam, że to lepiej opisuje jego funkcjonalność. W poprawionej wersji bloki które wykraczają poza zakres polilinii są pomijane. Ponadto po wykonaniu polecenia w pasku poleceń wyświetla się krótkie podsumowanie ile bloków zostało wyrównanych i czy zostały pominięte. Co do punktu styku to bazuje na punkcie bazowym bloku i taka będzie natura jego wyrównania do polilinii. WyrownajBlokiDoPoli.lsp
    3 punkty
  27. Potwierdzam, problem, który u mnie występował został rozwiązany, a przynajmniej u mnie już nie występuje. Obecnie korzystam z programu w wersji ZWCAD PRO 2024 ENG i nie mam żadnych problemów z powiększaniem okna na różnych monitorach (korzystam z dwóch monitorów: laptop i monitor zewnętrzny). @olgierd odnosi się Pan do zupełnie innego programu (GStar), na tym forum w większości poruszane są tematy dotyczące ZWCADa. Przesiadłem się na ZWCADA z AC koło 2012roku i początki były dość 'trudne' (jeśli tak to mogę ująć). Obecnie nie żałuję decyzji, program przez ostatnie lata mocno rozwinął się i nadal się rozwija. Obecny ZWCAD to już inny program CAD niż to co było 10-12 lat temu. Dodatkowo dużym plusem jest to forum oraz dział techniczny/pomoc techniczna ZWCADA na Polskę. Wiele problemów, które zostały zgłoszone zostało dość szybko rozwiązane.
    3 punkty
  28. dmatusz3

    Wektoryzacja rastrów

    Pełna wersja ZWVectorization (ta, którą obecnie dodajemy do ZWCAD Pro) umożliwia obsługę obrazów rastrowych o rozdzielczości do 20 000 pikseli x 20 000 pikseli. Powyższa animacja z lokomotywą powstała przy użyciu rastra o 15 tys. x 6 tys. pikseli.
    3 punkty
  29. RobS

    Zamykanie obiektów w bloku

    Dodałem kilka linijek do twojego programu które tworzą blok. Można podejść do sprawy na kilka sposobów, ja wybrałem dość podstawowy. Współrzędne lewego dolnego rogu zapisałem w zmiennej PU0. Po stworzeniu konstrukcji w zmiennej BlkName zostaje zapisana nazwa nowo utworzonego bloku według twojego opisu. Tutaj warto dodać jakieś wyróżnienie, w przypadku duplikatu program jest przerwany komunikatem. Później blok zostaje stworzony ze zbioru wybranego funkcją ssget. "_W" zaznacza obiekty w oknie opisanym podobniej jak prostokąt, lewy dolny róg PU0 i prawy górny róg PU2. Po utworzeniu blok jest wstawiony poleceniem _insert, ponieważ znika on z rysunku. Kod programu poniżej (DEFUN C:KONS (/ W H K O L R PU H_NEW X0 Y0 X_START Y_START PU0 PU2 BlkName) (SETQ W (GETREAL "\nPodaj szerokosc modulu: ")) (SETQ H (GETREAL "\nPodaj wysokosc modulu: ")) (SETQ K (GETREAL "\nPodaj kat nachylenia konstrukcji (w stopniach): ")) (SETQ O (GETREAL "\nPodaj odstep miedzy modulami: ")) (SETQ L (fix (GETREAL "\nPodaj ilosc modulow w poziomie: "))) ; Konwersja na typ całkowity (SETQ R (fix (GETREAL "\nPodaj ilosc modulow w pionie: "))) ; Konwersja na typ całkowity (SETQ PU (GETPOINT "\nPodaj naroznik konstrukcji PV: ")) ;; Obliczenie nowej wysokości (SETQ H_NEW (* H (COS (* K (/ PI 180.0))))) ; Konwersja kąta na radiany ;; WYZNACZENIE PRZECIWLEGŁEGO NAROŻNIKA MODUŁU (SETQ X0 (CAR PU)) (SETQ Y0 (CADR PU)) (SETQ X_START X0) ; Zapisanie początkowego X (SETQ Y_START Y0) ; Zapisanie początkowego Y (SETQ PU0 (list X_START Y_START )) ;Zapisanie współrzędnych lewego dolnego rogu konstrukcji w zmiannej PU0 ;; RYSOWANIE MODUŁÓW (repeat L (progn (repeat R (progn (SETQ PU2 (list (+ X0 W) (+ Y0 H_NEW))) ;; RYSOWANIE PROSTOKĄTA (COMMAND "_RECTANG" PU PU2) ;; Przesunięcie w dół o wysokość i odstępu modułu (SETQ Y0 (+ Y0 H_NEW O)) ; Y0 zwiększamy o nową wysokość i odstęp (SETQ PU (list X0 Y0)) ; Nowy punkt startowy ) ) ;; Przesunięcie w prawo o szerokość modułu i zadany odstęp (SETQ X0 (+ X0 W O)) ; X0 zwiększamy o szerokość i odstęp (SETQ Y0 Y_START) ; Resetowanie Y0 do początkowej wartości (SETQ PU (list X0 Y0)) ; Nowy punkt startowy ) ) (setq BlkName (strcat "Konstrukcja " (itoa L) " x " (itoa R))) ;Stworzenie nazwy nowego bloku i zapisanie jej w zmiennej BlkName (command "_Block" BlkName PU0 (ssget "_W" PU0 PU2) "") ;Stworzenie Bloku nazwanego BlkName z punktem bazowym w lewym dolnym rogu konstrukcji (command "_Insert" BlkName PU0 "" "" "") ;Wstawienie bloku który znika po utworzeniu )
    3 punkty
  30. dmatusz3

    Platforma szkoleniowa ZWCAD

    Dziękuję za opinie. Mam jednak nieco inne spojrzenie na ten temat. Stworzenie pierwszego z serii kursów na tej platformie szkoleniowej zajęło nam kilkaset godzin z pełną dbałością i troską o szczegóły. Osoba szkoląca się podczas kursu ma dostęp do komunikatora i forum wewnętrznego gdzie może wyjaśnić ewentualne wątpliwości. Po ukończeniu kursu otrzymuje certyfikat. Zawsze jednak pozostają materiały edukacyjne dostępnie bezpłatnie na naszych stronach, np.: Kurs wideo składający się obecnie z 50 filmów https://www.zwcad.pl/materialy-edukacyjne/kurs-zwcad-2022.html, Przewodnik użytkownika z tekstem i obrazkami oraz wplecionymi filmami z YT https://www.zwcad.pl/materialy-edukacyjne/podrecznik-do-zwcad-online/spis-rozdzialow-podrecznika.html Na nieco starszej wersji ZWCAD jest także samouczek https://www.zwcad.pl/materialy-edukacyjne/samouczek-zwcad.html Kurs LISP z przykładami np. https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/181-linia-o-dlugosci-rownej-dlugosci-zaznaczonego-elementu.html Bazę wiedzy z bardziej złożonymi tematami https://www.zwcad.pl/wyszukiwanie-w-bazie-wiedzy.html Zachęcam również do zapoznania się z naszą listą filmów na YT Tips & Tricks https://www.youtube.com/playlist?list=PLfJRflF7NyqlbwcnrEQlKXzNe8Qx5rBbV
    3 punkty
  31. Witam, Proszę przestawić we właściwościach na dolnych ikonach pod prawym przyciskiem myszy na wprowadzanie współrzędnych bezwzględnych. Zmienna DYNPICOORDS na 1.
    3 punkty
  32. Witam, Jeśli chodzi o tabliczkę T-0 Piesi, to podczas wstawiania można dodać inny opis. Jeśli chodzi o inne tabliczki T-0, to jest do tego funkcja D_INFOTAB, gdzie można dodać własny opis. Jeśli chodzi o znak D-44, to występuje on w różnych konfiguracjach. Jeśli jest potrzebny inny opis, to po wstawieniu normalnie można edytować blok przez prawy przycisk myszy Edytuj blok lub Edytor bloków i usunąć zbędną cześć. Może być jeszcze potrzebna synchronizacja ATRSYN (_ATTSYNC). W razie potrzeby można znak z innym opisem dodać do biblioteki na stałe.
    3 punkty
  33. Jeżeli nie jest to zabronione, chciałbym zaproponować to miejsce do wymiany znaków drogowych, których nie znajdziemy w bibliotece ZWTraffic. Dawajcie znać jakich znaków szukacie. Np. nietypowe T-6. Ja na początek dam żabę A-18e.dwg
    3 punkty
  34. MLE

    Wymiana znaków między użytkownikami.

    Nikt się nie wychyla, to ja wrzucę. D-6 z tłem fluorescencyjnym żółtozielonym_aktywny.dwg D-6_aktywny.dwg
    3 punkty
  35. dmatusz3

    Kronika filmowa

    Bloki parametryczne - flexiblock Więcej informacji o blokach parametrycznych zamieściliśmy na naszej stronie.
    3 punkty
  36. kruszynski

    Jak wczytać plik SHP?

    Mamy nową wersję aplikacji. Tym razem możliwe stało się importowanie plików SHP do rysunków w różnych układach. https://cad.szansa.net.pl/ZWGis_2023/ZWGis_x64_v2023.exe
    3 punkty
  37. dmatusz3

    ZWCAD - addselected

    Napisaliśmy taki mały skrypt, który wykonuje podobną funkcję. Wystarczy go przeciągnąć na okno rysunku i będzie dostępne nowe polecenie addselected. Skrypt do pobrania AddSelected.zel
    3 punkty
  38. Pokażę jak przypisać własny skrót klawiaturowy w ZWCAD do funkcji w LISP. Zrobimy to na przykładzie programu LISP, który zmienia stan ustawień punktów charakterystycznych z końca, środka i centrum na wszystkie (czyli zmiennej OSMODE z wartości 7 na 13311). (defun c:przelaczsnapy nil (wszystko)) (defun wszystko nil (print "Teraz aktywne sa tylko wybrane snapy") (setvar "OSMODE" 7) (defun c:przelaczsnapy nil (malo)) (princ) ) (defun malo nil (print "Teraz aktywne sa wszystkie snapy") (setvar "OSMODE" 13311) (defun c:przelaczsnapy nil (wszystko)) (princ) ) Skrypt można pobrać również tutaj snapy.lsp W celu jego uruchomienia wystarczy przeciągnąć go na ekran rysunku, wtedy zostanie dodane nowe polecenie przelaczsnapy W celu dodania własnego skrótu na początku wywołujemy polecenie CUI W oknie konfiguracji jaki się otworzy rozwijamy pozycje "Skróty klawiaturowe" Następnie wybieramy dowolny skrót i klikamy na nim prawym klawiszem myszy. Z menu wybieramy "Klonuj" Edytujemy kopie polecenia. Klikając w pozycje 1 przypisujemy skrót klawiaturowy. W pozycji 2 wpisujemy jakie polecenie powinno się wykonać (^C^C_ przed poleceniem zostawiamy). Zatwierdzamy. Teraz wciśnięcie klawisza F4 spowoduje wywołanie programu LISP i zmianę ustawień punktów charakterystycznych.
    3 punkty
  39. dmatusz3

    ZWCAD 2022 - beta

    Opis jak wstawić swój skrypt pod klawisz skrótu wstawiliśmy tutaj
    3 punkty
  40. Byłoby dziwne gdyby wpółpracował. Lista z tblsearch nie jest poprawną listą dla entmod. Użyj tu formy entget + tblobjname. Zobacz: (setq e (tblobjname "layer" "zbrojenie_linie" )) (setq d (entget e)) (entmod (subst (cons 62 -8)(assoc 62 d) d)) a to prowadzić może do bardziej ogólnej funkcji: (defun LayOnOff (Lay / e d) (if (setq e (tblobjname "LAYER" Lay)) (progn (setq d (entget e)) (setq d (subst (cons 62 (* -1 (cdr (assoc 62 d))) ) (assoc 62 d) d) ) (entmod d) ) ) ) Funkcja steruje widocznością warstwy podanej jako jej argument tak jak przełącznik, wywołaj kolejno: (LayOnOff "zbrojenie_linie")
    3 punkty
  41. Ustawienie zmiennej COPYCLIPFORMATS na 193 powinno rozwiązać problem z kopiowaniem.
    3 punkty
  42. perlon

    Szablony i skrypty startowe ZWPack

    Moje rozwiązanie jest zbudowane na potrzeby innych lispów, tak aby mogły się odwoływać do warstw poprzez zmienne. Konkretne nazwy są zapisane w zewnętrznym pliku *.ini. Zaznaczam że kody pochodzą sprzed kilku(nastu) lat i dzisiaj pewnie napisałbym to trochę inaczej, ale lepsze jest wrogiem dobrego ;-). (defun SetLayers (/ temp systemEnv oHandle xName eObject IniList IniFile) (setq systemEnv (cd:ENV_SaveEnvVariable)) (setvar "cmdecho" 0) (setvar "regenmode" 0) (setq *layerKontur* "kontur" *layerOsie* "osie" *layerUkryte* "ukryte" *layerOpisy* "opisy" *layerWymiary* "wymiary" *layerStolarka* "stolarka" *layerCienkie* "cienkie" *layerHatche* "hatche" *layerPrety* "prety" *layerObok* "obok" *layerRzutnie* "rzutnie" *layer3DModel* "3D_model" IniFile (findfile "dodatki.ini") ) (setq IniList (if (not IniFile) (list) (cd:INI_Read IniFile))) (or IniFile (setq IniFile (strcat *cd-ApplicationPath* "dodatki.ini"))) (setq IniList (add_gr_ini IniList "[Layers]")) (if (setq temp (get_ini IniList "[Layers]" "kontur")) (setq *layerKontur* temp) (setq IniList (set_ini IniList "[Layers]" "kontur" *layerKontur*)) ) (if (setq temp (get_ini IniList "[Layers]" "osie")) (setq *layerOsie* temp) (setq IniList (set_ini IniList "[Layers]" "osie" *layerOsie*)) ) (if (setq temp (get_ini IniList "[Layers]" "ukryte")) (setq *layerUkryte* temp) (setq IniList (set_ini IniList "[Layers]" "ukryte" *layerUkryte*)) ) (if (setq temp (get_ini IniList "[Layers]" "opisy")) (setq *layerOpisy* temp) (setq IniList (set_ini IniList "[Layers]" "opisy" *layerOpisy*)) ) (if (setq temp (get_ini IniList "[Layers]" "wymiary")) (setq *layerWymiary* temp) (setq IniList (set_ini IniList "[Layers]" "wymiary" *layerWymiary*)) ) (if (setq temp (get_ini IniList "[Layers]" "stolarka")) (setq *layerStolarka* temp) (setq IniList (set_ini IniList "[Layers]" "stolarka" *layerStolarka*)) ) (if (setq temp (get_ini IniList "[Layers]" "cienkie")) (setq *layerCienkie* temp) (setq IniList (set_ini IniList "[Layers]" "cienkie" *layerCienkie*)) ) (if (setq temp (get_ini IniList "[Layers]" "hatche")) (setq *layerHatche* temp) (setq IniList (set_ini IniList "[Layers]" "hatche" *layerHatche*)) ) (if (setq temp (get_ini IniList "[Layers]" "prety")) (setq *layerPrety* temp) (setq IniList (set_ini IniList "[Layers]" "prety" *layerPrety*)) ) (if (setq temp (get_ini IniList "[Layers]" "obok")) (setq *layerObok* temp) (setq IniList (set_ini IniList "[Layers]" "obok" *layerObok*)) ) (if (setq temp (get_ini IniList "[Layers]" "rzutnie")) (setq *layerRzutnie* temp) (setq IniList (set_ini IniList "[Layers]" "rzutnie" *layerRzutnie*)) ) (if (setq temp (get_ini IniList "[Layers]" "3D_model")) (setq *layer3DModel* temp) (setq IniList (set_ini IniList "[Layers]" "3D_model" *layer3DModel*)) ) (cd:INI_Write IniList IniFile) (setq xName (cond ((= *cd-AppType* "ZWCAD") "zwcad.lin") (t "acad.lin") ) ) (cd:ACX_LoadLineType "dashed" xName) (cd:ACX_LoadLineType "dashdot" xName) (cd:ACX_LoadLineType "hidden2" xName) (cd:ACX_LoadLineType "center2" xName) (foreach xName (list (list *layerKontur* "continuous" 2 T) (list *layerOsie* "center2" 1 T) (list *layerUkryte* "hidden2" 1 T) (list *layerOpisy* "continuous" 7 T) (list *layerWymiary* "continuous" 1 T) (list *layerStolarka* "continuous" 3 T) (list *layerCienkie* "continuous" 1 T) (list *layerHatche* "continuous" 254 T) (list *layerPrety* "continuous" 5 T) (list *layerObok* "continuous" 9 T) (list *layerRzutnie* "continuous" 60 T) (list *layer3DModel* "continuous" 94 T) ) (setq eObject (cd:ACX_AddLayer (nth 0 xName))) (vla-put-linetype eObject (nth 1 xName)) (vla-put-color eObject (nth 2 xName)) (vla-put-plottable eObject (nth 3 xName)) ) (cd:ENV_RestEnvVariable systemEnv) ) Jak widać ja wczytuję linie z zwcad.lin ale jest to identyczny plik jak zwcadiso.lin. Nie wiem po co są dublowane. Sam plik ini jest banalny ale wydaje się, że użycie takiego sposobu jest łatwiejsze do użycia dla koleżanek i kolegów w biurze, którzy do LISPA trochę z pazurami podchodzą. [Layers] kontur=kontur osie=osie ukryte=ukryte opisy=opisy wymiary=wymiary stolarka=stolarka cienkie=cienkie hatche=hatche prety=prety obok=obok rzutnie=rzutnie 3D_model=3D_model Dzięki dmatusz3 za swoje rozwiązanie, bo chyba tym wzorem dorzucę sobie do ini również ustawienie linetype, color etc. Przy okazji, jak widać używam CADPL-Pack-v1, którego gorąco polecam. Na koniec jeszcze pokażę reaktora na komendy co zwalnia mnie z pamiętania o zmianach warstw w trakcie rysowania. Jest to z małymi poprawkami do ZwCAD'a kod Andrzeja Gumuły na co jest odpowiedni (c) w kodzie. Zdaje się, że na forum było pokazywane inne rozwiązanie chyba nieco mniej rozwlekłe, ale to mi działa i na razie tego nie zmieniam. ;;;* Funkcje ustanawia reaktor do zmiany warstwy dla wyszczególnionych komend (defun SetLayInCom (layer commandslist) (if (= (getvar "PRODUCT") "ZWCAD") (progn (vlr-remove-all :VLR-Command-Reactor) (vlr-command-reactor nil '((:vlr-commandwillstart . bylayer) (:vlr-commandended . previous) (:vlr-commandcancelled . previous) (:vlr-commandfailed . previous) ) ) ) (progn (if (not globalcommandslist) ; zabezpiecza przed ponowną deklaracją reaktora (vlr-command-reactor ; przy ponownym wczytaniu lisp'a nil '((:vlr-commandwillstart . bylayer) (:vlr-commandended . previous) (:vlr-commandcancelled . previous) (:vlr-commandfailed . previous) ) ) ) ) ) (mapcar '(lambda (x) (set x nil)) '(reactorlayer reactorcolor reactorltype reactorlweight) ) (mapcar '(lambda (x y) (set x y)) '(globalcommandslist globallayer) (list commandslist layer) ) (foreach x layer (if (not (tblsearch "LAYER" x)) (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 x) '(70 . 0) '(62 . 7) '(6 . "Continuous") '(370 . -3) ) ) ) ;end if ) ;end foreach (defun bylayer (idreactor namecommand / komendy licznik) (setq licznik 0) (foreach komendy globalcommandslist (if (member (strcase (car namecommand)) (mapcar 'strcase komendy) ) (progn (if (not (and reactorlayer reactorcolor reactorltype reactorlweight ) ) (mapcar '(lambda (x y) (set x (getvar y))) '(reactorlayer reactorcolor reactorltype reactorlweight) '("clayer" "cecolor" "celtype" "celweight") ) ) ; end if (mapcar '(lambda (x y) (setvar x y)) '("clayer" "cecolor" "celtype" "celweight") (list (nth licznik globallayer) "256" "Bylayer" -1) ) ) ) ;end If (setq licznik (1+ licznik)) ) ;end foreach ) ;end ByLayer (defun previous (idreactor namecommand / komendy licznik) (setq licznik 0) (foreach komendy globalcommandslist (if (member (strcase (car namecommand)) (mapcar 'strcase komendy ) ) (progn (if (and reactorlayer reactorcolor reactorltype reactorlweight) (mapcar '(lambda (x y) (setvar x y)) (list "clayer" "cecolor" "celtype" "celweight") (list reactorlayer reactorcolor reactorltype reactorlweight ) ) ) (mapcar '(lambda (x) (set x nil)) '(reactorlayer reactorcolor reactorltype reactorlweight) ) ) ) (setq licznik (1+ licznik)) ) ;end cond ) ;end Previous t (prompt "SetLayInCom (C)2003 Andrzej Gumuła.") (princ) ) ;end file Na koniec wywołanie w kodzie startowym i mamy piękny reaktor na dowolne komendy jakie sobie dopiszemy. (setlayincom (list *layerWymiary* *layerHatche* *layerOsie* *layerCienkie* *layerOpisy*) '( ("DIMLINEAR" "DIMALIGNED" "DIMRADIUS" "DIMDIAMETER" "DIMANGULAR" "DIMORDINATE" "DIMCONTINUE" "DIMBASELINE" "QDIM" "DIMJOGGED" "DIMARC") ("BHATCH") ("DIMCENTER") ("QLEADER") ("DTEXT" "TEXT") ) )
    3 punkty
  43. Przemek210

    błąd szrafury

    Pomaga zwykle przesunięcie UCS w okolice kreskowania i ponowne zakreskowanie. To samo dzieje się w AutoCad.
    3 punkty
  44. Żeby atrybut mógł być przesuwany niezależnie od punktu wstawienia bloku, to musi mieć ustawiony parametr 'Lock position' ustawiony na 'No' (wersja angielska ZWCAD 2018). Można ten parametr edytować poprzez REFEDIT. Ustawienie to będzie po zapisaniu dotyczyło wszystkich bloków z tą nazwą w danym rysunku. Przesunięte atrybuty wrócą do pierwotnej lokalizacji po synchronizacji atrybutów funkcją 'ATTSYNC'. Poniżej rysunek, na którym zaznaczyłem, która parametr odpowiada za pojawienie się uchwytu do przesuwania atrybutu w bloku.
    3 punkty
  45. pawmal

    Polecenie MKLTYPE

    A tu już linia zmodyfikowana tak, aby napis wyświetlał się nad linią i podążał za kierunkiem rysowania. 63_mod.lin
    3 punkty
  46. Witam Jest takie polecenie JEDN (_units). Można albo zwiększyć dokładność przy jednostkach dziesiętnych dla kąta albo w ogóle ustawić stopnie/minuty/sekundy. Pozdrawiam
    3 punkty
  47. Dzień dobry, Wydaje mi się, że wystarczy zastosować śledzenie biegunowe z przyrostem kąta = 90 i pomiarem względem ostatniego segmentu: Pozdrawiam.
    3 punkty
  48. dmatusz3

    Zamiana procentów na stopnie

    Nie jest moim celem eskalacja ilości rozwiązań, ale przy okazji innego projektu mimochodem wykorzystaliśmy nowe możliwości programistyczne w ZWCAD 2017. Dodaliśmy nowe polecenie "Pochylenie", który tworzy obiekt - linię, która ma 3 uchwyty. W zależności od wybranego uchwytu możemy osiągnąć różne rezultaty. W oknie właściwości możemy także zmieniać kąt nachylenia obiektu. Oto pliki do pobrania. Proszę je umieścić w jednym katalogu. Wymagany jest ZWCAD 2017 Pro. Pochylenie.zrx PochylenieCom.dll :hi:
    3 punkty
  49. tpaulina

    4. Narzędzia do wymiarowania

    1. Rozszerzony wymiar – pozwala na tworzenie wielu wymiarów w ramach pojedynczej sesji polecenia: w odniesieniu do bazy lub jako wymiar ciągły. 2. Wymiar Wiele – tworzy wiele wymiarów od wybranego punktu do wszystkich wierzchołków na konturze wybranego obiektu. Po wybraniu opcji wymiar Wiele pojawia się okno z możliwością wyboru typu wymiarowania. Do wyboru mamy wymiary równoległe, współrzędne oraz symetryczne. W każdym z tych typów wymiarowania mamy dodatkowe opcje do ustawienia przez użytkownika. Wymiarowanie równoległe: do wyboru typ bazowy lub ciągły, z możliwością wymiarowania w obu osiach. Wymiarowanie współrzędne: do wyboru typ aktualny standard, równa długość odcinka lub środek krzyża na krawędzi. Z możliwością obrotu tekstu oraz wyboru krótkich lini wymiarowych. Wymiarowanie wałek/symetria: do wyboru wałek (widok z przodu), wałek (widok z boku)oraz symetria. We wszystkich typach wymiarowania jest możliwość automatycznego wyświetlania edytora teksu dla każdego wymiaru, co pozwala na wprowadzenie od razu dodatkowych informacji dla danego wymiaru.
    3 punkty
  50. awarch

    Rebus tygodnia - bo bardzo trudny.

    Trzeba ostrzyc owce?
    3 punkty
Ten Ranking jest ustawiony na Warszawa/GMT+02:00