Ranking
Popularna zawartość
Zawartość, która uzyskała najwyższe oceny od 10/01/12 uwzględniając wszystkie działy
-
Automatyczny podział rysunku wykonanego w modelu na arkusze
przemkrzem i 7 innych przyznał(a) reputację kruszynski za temat
8 punktów -
Dziesięć lat z ZWCAD ;) albo Dekada z ZWCAD7 punktów
-
Sizedrive - dopasowanie geometrii do wymiaru
kruszynski i 5 innych przyznał(a) reputację dmatusz3 za temat
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 -
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
-
Hej, Przygotowałem skrypt NumerujArkusze, robi to czego potrzebujesz Zacznij od wgrania pliku Lisp poleceniem AP. Na arkuszach wstaw blok Numer Arkusza który znajduje się w dołączonym rysunku. Numerowanie strony wykonaj wywołując skrypt poleceniem NumerujArkusze. Blok może mieć inna formę, możesz go edytować. Ważne żeby nazywał się "Numer Arkusza" i posiadał atrybuty AktualnyArkusz oraz WszystkieArkusze w których będzie się wyświetlała numeracja. NumerujArkusze.lsp Blok Numer Arkusza.dwg5 punktów
-
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 zabawy5 punktów
-
Czy jest jakaś funkcja lub lisp który pozwoli zestawić listę layoutów?
pawmal i 3 innych przyznał(a) reputację ktomaszewski za temat
4 punkty -
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
-
4 punkty
-
Przeniesienie do punktu X, Y [Rozwiązany]
Stefan Wiatr i 3 innych przyznał(a) reputację dmatusz3 za temat
4 punkty -
Kolega @kojacek mnie zainspirował i mam 5 kliknięć bez pisania niczego na klawiaturze :4 punkty
-
ZWCAD 2022 - Blok z atrybutem dostosowującym pozycję podczas obrotu
s1016 i 3 innych przyznał(a) reputację Adam Klaczek za temat
4 punkty -
Rzutnia w rzutni
s1016 i 3 innych przyznał(a) reputację Adam Klaczek za temat
4 punkty -
ZWCAD 2021 - scalanie warstw
alf i 3 innych przyznał(a) reputację Adam Klaczek za temat
4 punkty -
ZWCAD 2021 - LAYEROVERRIDEHIGHLIGHT
s1016 i 3 innych przyznał(a) reputację Adam Klaczek za temat
4 punkty -
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
-
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
-
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.mp44 punkty
-
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 ;) Pozdrawiam4 punkty
-
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. Pozdrawiam4 punkty
-
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
-
4 punkty
-
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). Pozdrawiam4 punkty
-
Zestawienia stylów kreskowania z opisem
katarzyna.bober i 2 innych przyznał(a) reputację dmatusz3 za temat
Na naszej stronie zamieściliśmy w tabeli listę wzorów kreskowania dostępną w ZWCAD. Dodaliśmy również opisy do wzorów wraz z przykładami. Link do całego artykułu https://www.zwcad.pl/wyszukiwanie-w-bazie-wiedzy/1310-style-kreskowania-przekrojow.html#zestawieniewzorowkreskowania3 punkty -
Geoserwis - przechwytywanie mapy
MateuszJ i 2 innych przyznał(a) reputację Adam Klaczek za temat
Kilka razy w ostatnich dniach pojawiło się to pytanie, więc pokażę jak przechwycić mapę z podkładu ArcGis w narzędziu Geoserwis. 1. Ustalamy układ współrzędnych dla wymaganego obszaru z jednostkami rysunkowymi tożsamymi z układem (metry). 2. Ładujemy podkład z serwera ArcGis (podkład umożliwi rysowanie, ale nie będzie osadzony w rysunku) 3. Przechwytujemy obraz (osadzamy w rysunku) 4. Możemy wyłączyć mapę (resztę podkładu) Przechwycony obraz będzie miał rozdzielczość "Optymalną", czyli taką jak ustaliliśmy przy przechwytywaniu, ale może mieć rozdzielczość "Bardzo dokładną" czyli maksymalną, jak w samym nie przechwyconym podkładzie:3 punkty -
Seminarium branżowe online ZWCAD + ZWGeo I Serdecznie zapraszamy!
pklosowicz i 2 innych przyznał(a) reputację Mery za temat
🎯 Seminarium branżowe online ZWCAD + ZWGeo 📍 Platforma ZOOM 📅 30 października 2025 r. (czwartek) 🕘 Godz. 10:00–11:30 Wydarzenie będzie okazją do poznania najnowszej wersji programu ZWCAD 2026 i nakładki ZWGeo 2026 w praktyce oraz bezpośredniego spotkania z ekspertami – zarówno od strony technicznej, jak i handlowej. W programie: 10:00 – 10:05 Przywitanie Gości Rozpoczniemy warsztaty od powitania uczestników i krótkiego wprowadzenia do tematyki spotkania. 10:05 – 10:15 Wprowadzenie do ZWCAD i ZWGeo Omówimy podstawowe informacje i możliwości programu ZWCAD z nakładką ZWGeo, który stanowi wszechstronne narzędzie CAD, wykorzystywane w projektowaniu z różnych branż. 10:15 – 11:20 Praktyczne warsztaty z pracy na mapach Rozpoczniemy praktyczną część warsztatów, w której pokażemy, jak szybciej i sprawniej pracować na mapach z ZWCAD i ZWGeo: Tworzenie map zgodnie ze standardami tworzenia cyfrowych map topograficznych Profil terenu Praca z plikami w formacie SHP 11:20 – 11:30 Konsultacje i sesja pytań W tej części warsztatów przewidujemy czas na indywidualne konsultacje. Eksperci odpowiedzą na pytania oraz udzielą wskazówek dotyczących funkcji programów. 11:30 Zakończenie warsztatów Podsumujemy warsztaty, przedstawimy możliwości dalszych szkoleń z bardziej zaawansowanych funkcji ZWCAD i ZWGeo oraz omówimy ofertę specjalną dla uczestników! Serdecznie zapraszamy do aktywnego udziału – to doskonała okazja do zdobycia nowych umiejętności i wymiany wiedzy z innymi specjalistami w branży! To doskonała okazja, by nie tylko zapoznać się z nowościami, ale również zadać pytania i uzyskać konkretne wskazówki w kontekście Państwa pracy projektowej. Udział w wydarzeniu jest bezpłatny. Liczba miejsc ograniczona – obowiązuje rejestracja. 👉 [Kliknij tutaj, aby się zarejestrować] Do zobaczenia!3 punkty -
Kalkulator tekstów
alf i 2 innych przyznał(a) reputację ktomaszewski za temat
W tej wersji już da się zaznaczać wiele obiektów na raz calc.zelx3 punkty -
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
-
Potrzebujesz wykonać następujące czynności: 1) załadować CADPL-Pack'a. Znajdziesz go tutaj: https://kojacek.wordpress.com/2015/11/04/cadpl-pack/ 2) oraz poniższy kod definiujący polecenie ATR-ZMIANA: ; -------------------------------------------------------------------------- ; ; C:ATR-ZMIANA by kojacek 2024 (http://kojacek.wordpress.com) ; ; -------------------------------------------------------------------------- ; (defun C:ATR-ZMIANA ()(jk:140824_GetBklMask)(princ)) ; -------------------------------------------------------------------------- ; (defun jk:140824_GetBklMask ( / %m %s %l %a %b %r %e %i %o :t) (defun :t (i) (getstring (strcat "\nPodaj " (nth i (list "pierwszy" "drugi")) " tag atrybutu do zamiany: " ) ) ) (if (setq %m (getstring "\nPodaj początkowy fragment nazwy bloku: ") ) (if (member %m (list "" " ")) (princ "\nBłąd - zła nazwa.") (if (setq %s (ssget "_x" (list (cons 0 "INSERT") (cons 410 (getvar "CTAB")) (cons 2 (strcase (strcat %m "*"))) ) ) ) (progn (setq %l (cd:SSX_Convert %s 0)) (if (and (setq %a (strcase (:t 0))) (setq %b (strcase (:t 1))) ) (progn (setq %r (mapcar '(lambda (% / %1 %2 %3) (if (setq %1 (cd:BLK_GetAtts %)) (if (and (setq %2 (cdr (assoc %a %1))) (setq %3 (cdr (assoc %b %1))) ) (list % %2 %3) 1 ) 1 ) ) %l ) %e (vl-remove-if-not 'numberp %r) %r (mapcar 'car (vl-remove-if 'numberp %r)) ) (if %r (progn (cd:SYS_UndoBegin) (foreach % %r (setq %i (cd:BLK_GetAtts %) %o (vlax-ename->vla-object %) ) (cd:BLK_SetAttValueVLA %o %a (cdr (assoc %b %i)) ) (cd:BLK_SetAttValueVLA %o %b (cdr (assoc %a %i)) ) ) (princ (strcat "\nZmieniono atrybuty w " (itoa (length %r)) " blokach." (if %e (strcat " Odrzucono " (itoa (length %e)) " bloków." ) "" ) ) ) (cd:SYS_UndoEnd) ) (princ (strcat "\n" (itoa (length %l)) " bloków nie spełnia wymagań do zmiany atrybutów." ) ) ) ) (princ "\nBłąd. Wymagane nazwy atrybutów.") ) ) (princ "\nNie znaleziono odpowienich bloków.") ) ) (princ "\nBłąd. Brak nazwy") ) ) ; -------------------------------------------------------------------------- ; (princ) 3) wywołujesz polecenie ATR-ZMIANA, jak na poniższym ruchomym obrazie:3 punkty
-
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=PLfJRflF7NyqlbwcnrEQlKXzNe8Qx5rBbV3 punkty
-
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
-
3 punkty
-
Obrót widoku na rzutni
hose2001 i 2 innych przyznał(a) reputację Adam Klaczek za temat
3 punkty -
Rysowanie linii prostopadłej
Martin_S i 2 innych przyznał(a) reputację Adam Klaczek za temat
3 punkty -
3 punkty
-
hej. Zdecydowanie tutaj brakuje działu w którym będzie można dzielić się śmiesznymi rzeczami znalezionymi w sieci. Oczywiście związanymi z tematem forum. Wklejajcie śmieszne kawały. Ode mnie na początek: W raju spotykają się Newton, Pascal i Einstein. Trzej fizycy stwierdzili, że pobawią się w chowanego. Einstein zaczyna liczyć: 1, 2, 3, ... Pascal i Newton zastanawiają się gdzie tu się schować. Pascal chowa się za jakąś chmurką. Newton bierze kredę i rysuje na ziemi kwadrat metr na metr, po czym staje w nim. - ..., 99, 100. Szukam. Einstein odwraca się i widzi za sobą Newtona. - Ha! Mam cię Newton! - Nie, nie, nie - odpowiada Newton - Ja jestem jeden Newton na metr kwadrat, czyli Pascal.3 punkty
-
Ustawienie zmiennej COPYCLIPFORMATS na 193 powinno rozwiązać problem z kopiowaniem.3 punkty -
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
-
błąd szrafury
kruszynski i 2 innych przyznał(a) reputację Przemek210 za temat
Pomaga zwykle przesunięcie UCS w okolice kreskowania i ponowne zakreskowanie. To samo dzieje się w AutoCad.3 punkty -
Rzędne - przesuwanie tekstu w blokach z atrybutami [rozwiązany]
kruszynski i 2 innych przyznał(a) reputację Marek-M za temat
Ż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 -
Wyświetlanie etykiety z odległością i kątem - rozszerzenie funkcji [Wprowadzono w ZWCAD 2018]
pawmal i 2 innych przyznał(a) reputację Adam Klaczek za pytanie
3 punkty -
Wyszukiwanie tekstu w PDF
ipolanski i 2 innych przyznał(a) reputację Kamil Murański za temat
Witam Sugeruję drukować używając drukarki PDF Creator. W oknie drukowania należy kliknąć na Właściwości. W oknie, które się otworzy, w zakładce "Urządzenie i ustawienia dokumentu", należy rozwinąć drzewko "Grafika", wybrać "Czcionki True Type <Jako tekst>" i zaznaczyć "Czcionki TrueType jako tekst". Dołączam obrazek wraz ze strzałkami i numeracją co i gdzie należy po kolei klikać. Pozdrawiam3 punkty -
Trzeba ostrzyc owce?3 punkty