Ranking

  1. dmatusz3

    dmatusz3

    Administratorzy


    • Punkty

      537

    • Postów

      3972


  2. icholewa

    icholewa

    Użytkownik forum


    • Punkty

      292

    • Postów

      602


  3. pawmal

    pawmal

    Użytkownik forum


    • Punkty

      220

    • Postów

      1718


  4. Dżoana

    Dżoana

    Moderatorzy


    • Punkty

      212

    • Postów

      552


Popularna zawartość

Zawartość, która uzyskała najwyższe oceny od 10/01/12 uwzględniając wszystkie działy

  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. 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.dwg
    5 punktów
  6. 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
  7. 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
  8. 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
  9. 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
  10. Można także jednorazowo przed wpisaniem wartości wpisać #, co oznacza, że będziemy wprowadzać współrzędne bezwzględne.
    4 punkty
  11. Kolega @kojacek mnie zainspirował i mam 5 kliknięć bez pisania niczego na klawiaturze :
    4 punkty
  12. ode mnie (zwarch15+ & artisan)
    4 punkty
  13. 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
  14. Adam Klaczek

    Rzutnia w rzutni

    Taka metoda na utworzenie rzutni w rzutni, aby obiekty się nie nakładały:
    4 punkty
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. I jeszcze taki przykład
    4 punkty
  21. 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
  22. Hania

    ZWTextile

    Nie smutaj Mayster, może następnym razem będzie bliżej
    4 punkty
  23. 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
  24. 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
  25. JustynaDrd

    Rebus piątkowy

    Albo opona letnia :P
    4 punkty
  26. 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
  27. kontom

    Kalkulator tekstów

    W tej wersji już da się zaznaczać wiele obiektów na raz calc.zelx
    3 punkty
  28. 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
  29. Mogę pokazać krok po kroku jakieś trudniejsze działania z ARCHITECTURE, lubię wyzwania, ktoś jest zainteresowany jak "coś" wykonać lub jak to "obejść" by mieć finalnie dany cel? możliwości wersji 2024 są mocne nawet beta 2025 że można w środowisko dwg wykonywać nawet obiekty zabytkowe. interaktywny przykład w PDF 3D ("edytor revitopodobny" w acrobacie readerze) PDF 3D SKLADOWICE_3D.pdf
    3 punkty
  30. Na razie mamy coś takiego. Zostało jeszcze zapamiętanie i przeliczenie początkowych przesunięć widoków w rzutni.
    3 punkty
  31. Być może przyczyną jest funkcja entmod. Wprawdzie może ona modyfikować obiekty niegraficzne (tutaj LAYER), ale gdzieś czytałem że są wyjątki dla kodu 70 - nie pamiętam jednak czego dotyczyły. W autocadowskich "antycznychch" czasach (przed ActiveX (czyli przed 1999 )), pewnie bym użył command zamiast entmod… ale pewnie dlatego że byłoby łatwiej. Na marginesie - Twoje warunkowanie kodu 70 jest błędne - działa tylko w wyjątkowych sytuacjach. Kod 70 jest wartością bitową, więc na przykład 1 jest prawdziwe nie tylko dla 1, ale też 3 (2+1)... 5 (4+1)... 7 (2+4+1)... 9... etc. Teraz przykład z użyciem ActiveX (i CADPack'a). Krótko (i co ważniejsze) działa: (defun C:ODMROZWAR () (vlax-for % (cd:ACX_Layers) (if (and (= :vlax-true (vla-get-freeze %)) (wcmatch (vla-get-name %) "LS*") ; <- moj testowy filtr ) (vla-put-freeze % :vlax-false) ) ) (vla-regen (cd:ACX_ADoc) 0) (princ) )
    3 punkty
  32. 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
  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. Adam Klaczek

    Edycja polilinii z CTRL

    W ZWCAD 2022 po zaznaczeniu punktu lokalizacji, można zmieniać tryby edycji naciskając klawisz CTRL:
    3 punkty
  35. 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
  36. W nawiązaniu do lekcji o szykach Adama Klaczka w 2021 przykład ode mnie praktyczne zastosowanie do więźb w 3D dach-j1.dwg
    3 punkty
  37. McStolarz

    Pośmiejmy się - humor

    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
  38. WItam. Niedawno zakupiłem najnowszą wersję ZwCada i udało mi się stworzyć dość fajny programik w C# do generowania ustrojów kratowych. Filmik z działania programu napisanego w C# poniżej. https://www.youtube.com/embed/8d7KAzrGsZI Generalnie dziwnie jest bo skrypt napisany w VBA o wiele szybciej mi działa aniżeli ten z C#. Ale tam nieco inne podejście do tematu zrobiłem bo jest możliwość dynamicznego modyfikowania utworzonego zespołu obiektów. Oznacza to, że jeżeli mam taki ustrój kratowy utworzony to program do czasu jego zamknięcia jest w stanie usuwać stary i generować nowy model po podaniu podstawowych danych. A to dopiero początek mojej zabawy.
    3 punkty
  39. Ustawienie zmiennej COPYCLIPFORMATS na 193 powinno rozwiązać problem z kopiowaniem.
    3 punkty
  40. Adam Klaczek

    Agnieszka

    Dzień dobry, A łatwiej, używając tylko jednej funkcji _CIRCLE z opcją _tan, czyli okrąg styczny do 3 obiektów:
    3 punkty
  41. perlon

    Wymiar z podziałem na "n" cześci

    Trzeba jeszcze było uodpornić lispa na DIMRND=0 bo wywalał dzielenie przez 0. I jeszcze zamiana kropki na znak oddzielenia części dziesiętnej wg stylu wymiarowego. Wersja po poprawkach: (vl-load-com) (defun c:dimagregatemod ( / ent) (while (= nil ent) (progn (prompt "\nWskaz wymiar do zmiany: ") (setq ent (car (entsel))) ) ) (if (= (cdr (assoc 0 (entget ent))) "DIMENSION") (pr:multipledimsection (entget ent)) (princ "\nBlad: Wskazany obiekt nie jest wymiarem liniowym") ) (princ) ) (defun c:dimagregate ( / ) (command "_dimlinear" pause pause pause) (pr:multipledimsection (entget (entlast))) (princ) ) (defun pr:multipledimsection ( entlist / n section newtext rnd) (setq n (getint "\nPodaj liczbe odcinkow: ") section (/ (float (cdr (assoc 42 entlist))) (float n)) rnd (getvar "DIMRND") ) (if (not (= rnd 0)) (setq section (* rnd (atoi (rtos (/ section rnd) 2 0)))) ) (setq newtext (strcat "<>\\X(" (itoa n) "x" (vl-string-translate "." (getvar "DIMDSEP") (rtos section 2 (getvar "DIMDEC"))) ")") entlist (subst (cons 1 newtext) (assoc 42 entlist) entlist) ) (entmod entlist) ) (princ)
    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. Miło jest nam poinformować, że nasi programiści znaleźli przyczynę opisanej przez Pana niestabilności ZWCAD 2017/2018 w momencie rysowania słupa z przekrojem w którym występują strzemiona romboidalne. Przyczyną okazały się tzw. zbiory wskazań obsługiwane przez ZWCAD. Zmodyfikowaliśmy już kod programu pod kątem ZWCAD 2017/2018 i nową zmienioną wersję (e-CAD Żelbet 12.81) zamieściliśmy już na naszej stronie internetowej www.e-cad.pl w zakładce Aktualizacje.
    3 punkty
  44. 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
  45. Dzień dobry, Wydaje mi się, że wystarczy zastosować śledzenie biegunowe z przyrostem kąta = 90 i pomiarem względem ostatniego segmentu: Pozdrawiam.
    3 punkty
  46. dmatusz3

    Koniec sporu ZWSOFT - Autodesk

    Witam, mam dobre wiadomości. Porozumienie ZWSOFTu z Autodeskiem zostało podpisane. Tym samym wszelkie spory o własności intelektualne zostały zakończone. Wygasają wszelkie roszczenia względem ZWCAD+ i wersji branżowych. Spór rozpoczął się niecałe 2 lata temu, kiedy to odbyła się rozprawa w sądzie w Hadze. Pisałem o tej sprawie więcej tutaj. Wyrok sądu był korzystny dla ZWSOFTu. Niemniej "niesnaski" pozostały i ZWSOFT starał się porozumieć z drugą firmą w celu zakończenia konfliktu. W lipcu tego roku firmy odbyły kolejne negocjacje. W celu zakończenia sporu ZWSOFT zaproponował, że zakończy sprzedaż ZWCAD+ 2015 w ciągu 3 miesięcy (czyli zakończy sprzedaż programu o który trwa spór). Po kilku dniach osiągnięto porozumienie, oraz podpisano wstępną ugodę. 6 listopada 2015 roku podpisano ostateczną ugodę, która kończy wszelkie spory. W tym tygodniu opublikowany zostanie prawdopodobnie oficjalny dokument obu firm. Cały proces negocjacji był ściśle tajny, nie mogliśmy także przekazywać żadnych informacji, za co przepraszam. W ugodzie ZWSOFT zobowiązał się do zmiany pewnych mechanizmów działania programu ZWCAD, co spowodowało przesunięcie terminu wydania oficjalnej ZWCAD 2017 (pierwsza beta powinna się ukazać w grudniu tego roku). Właściciel ZWSOFTu przyznał, że doszło do naruszenia własności intelektualnej (IP) Autodesku, oraz obiecał wypłacić odszkodowanie. Autodesk oficjalnie docenił starania ZWSOFTu zmierzające do zakończenia konfliktu. Zacytuję przetłumaczone słowa, które powiedział Pattrick Williams (Autodesk's Senior Vice President for the Asia Pacific Region): Kilka słów wyjaśnienia. Co to jest własność intelektualna (IP)? Mówiąc ogólnie jest to pewien zbiór zastrzeżeń prawnych. Obejmują dobra niematerialne, własności przemysłowe, jak np. patenty, znaki towarowe. W naszym przypadku może to być wygląd programu, mechanizmy wywoływania i działania funkcji itp. Zastrzeżenia odnośnie ZWCAD+ dotyczyły np. wyglądu interfejsu. Proszę zobaczyć na jak zmienił się wygląd 2015 w stosunku do 2014. Wiele osób zastanawiało się w jakim celu był zmieniony wygląd ikon. Natomiast zmiana ta wynikała właśnie z zarzutów naruszenia własności intelektualnej. Zastrzeżone są także pewne mechanizmy działania funkcji, np. ściśle opatentowany jest edytor bloków dynamicznych http://www.google.com/patents/US7860691?hl=pl Blisko dwa lata temu słyszeliśmy także o "Black Box", nazwiemy to sobie "pułapki". W żadnym przypadku nie polega to na sprawdzania kodu (niestety z takimi stwierdzeniami można się spotkać). Wytłumaczę to na przykładzie, nieco przerysowanym. Weźmy do ręki kalkulator: Jeśli wciśniemy klawisz "1" to na wyświetlaczu pojawi się "1". Jeśli wciśniemy klawisz "2" to pojawi się "2". Ale teraz wyobraźmy sobie, że ktoś zastawił pułapkę. Jeśli wciśniemy "5" to na wyświetlaczu pojawi się cyfra "7" zamiast "5". Więc bez żadnej analizy kodu możemy stwierdzić, czy inny kalkulator działa podobnie. Jeśli na innym kalkulatorze innej firmy wciśniemy "5", a na wyświetlaczu wyświetli się "7", to znaczy, że inny kalkulator działa tak samo, choć z błędem. No tak, ale takie działanie można również zaprogramować w innym kalkulatorze. Tylko trzeba wiedzieć, że taki błąd występuje. Natomiast zastrzeżenia może budzić sam fakt sprawdzania innego kalkulatora na występowanie tego typu błędów i powielania ich. Działania takie mają swoją nazwę - Inżynierowa odwrotna (ang. reverse engineering). W wielu krajach jest ona dozwolona, ale w kilku zakazana). Inżynieria odwrotna nie polega na analizie kodu, lecz na sprawdzaniu sposobu zachowania w różnych warunkach, przy różnych danych wejściowych. Często sami użytkownicy chcieliby, aby błędy były powielone. Cóż z tego, że na logikę działa błędnie, ważne, że jednakowo. Cieszę się, że konflikt został całkowicie zażegnany, myślę że ZWSOFT wyciągnął wnioski na przyszłość. Przepraszam wszystkich użytkowników, za całą sytuację. Są pewne rzeczy, które przyjmujemy całkowicie domyślnie i naturalnie, ponieważ jest nie do pomyślenia, że może być inaczej. Ja jednak napiszę jeszcze kilka zdań, aby dobitnie rozwiać wszelkie wątpliwości: Czy ZWCAD+ jest legalnym programem? Tak. ZWCAD+ to całkowicie legalny program. Można go używać dowolnie długo, lub w przyszłości można go "podnieść" do wyższej wersji. Czy będzie możliwość aktywacji lub dezaktywacji licencji ZWCAD+ np. w celu przeniesienia go na inny komputer? Tak. Sposoby aktywacji, dezaktywacji pozostają bez zmian. Czy użytkownicy mogą się czegoś obawiać? Absolutnie niczego. ZWCAD+ jest legalnym programem. Wszelkie waśnie zostały zakończone na poziomie producentów oprogramowania. Czy powstanie kolejna wersja programu ZWCAD+? Tak, program z tej linii produktowej (jak szacujemy) ukaże się na wiosnę 2016. Będzie to ZWCAD 2017. Nieco później zostaną wydane wersje branżowe. Pozdrawiam EDIT: Oficjalna wiadomość o porozumieniu na stronie ZWSOFT http://www.zwsoft.com/zwcad/press-release/20151118/A%20letter_to_ZWCAD_customers%20.html EDIT 2. Na mocy porozumienia musieliśmy usunąć linki do wersji ZWCAD+ z publicznego widoku. Są one dostępne na stronie https://licencja.zwcad.pl/ gdzie po wpisaniu kodu licencyjnego wyświetlą się linki do pobrania programów zgodnych z posiadaną licencją.
    3 punkty
  47. 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
  48. W mojej opinii nie. Mało tego, uważam że nie jest to dobry pomysł, w żadnej formie, a ten przedstawiony na obrazkach jest przykładem wręcz, jak tego nie robić. Uważam że powielanie tych samych danych, jest niepotrzebne a nawet szkodliwe. Domyślam się że "szpilki" mają osobne atrybuty na warstwie niedrukowalnej, wypełnione tymi danymi. Zastanówmy się co się będzie dziać gdy takich samych okiem mamy 100, i (nadal jednakowych) drzwi 200? Ano - mamy do każdego takiego samego (powtarzam) elementu dodatkowych 8 linii tekstu o takiej samej treści. Czas zadać pytanie - po co? Zasadą powinno być jedynie odwołanie do jednego miejsca (np. Xrecord, w danych niegraficznych). Tych danych w rysunku (dla mojego przykładu) byłyby wtedy 2 typy 1 x okno + 1 x drzwi... zamiast 300 (100 okien + 200 drzwi)... Wystarczy zdefiniować polecenie do "odpytania" wymiaru/okna/drzwi/czegokolwiek...
    3 punkty
  49. 1. Brak uprawnień Administratora jest częstym problemem przy aktywacji. Ze względu na wbudowaną w systemach Kontrolę Konta Użytkownika (UAC), na systemie Vista, 7 lub 8 potrzeba uruchomić program lub Menadżer licencji przez prawy przycisk myszy Uruchom jako Administrator. 2. Zapora systemu - Firewall lub program antywirusowy mogą być powodem braku możliwości pobrania licencji przez program ZWCAD. Na czas aktywacji, zalecane jest wyłączenie zapory, a później dodanie wyjątku. Komunikacja z serwerem producenta odbywa się na porcie 8888. 3. Jeśli zainstalowana jest nieodpowiednia wersja programu, to również możemy napotkać na problem przy aktywacji. Np. jeśli mamy kod licencyjny do wersji ZWCAD+2012, to nie uda się nim aktywować wersji ZWCAD+2014. Do każdej wersji rocznikowej jest potrzebny inny kod licencyjny. Informację o zainstalowanej wersji, można sprawdzić po uruchomieniu programu w wersji testowej w menu Pomoc->O programie lub wpisując vernum lub _about w pasku poleceń. Również na pulpicie powinien być utworzony skrót z wersją rocznikową programu. Kody licencyjne można sprawdzić na stronie http://www.licencja.zwcad.pl/ 4. Aktywacja nie jest możliwa, jeśli jest wprowadzony błędny kod. Proszę się upewnić czy nie została popełniona jakaś literówka. Najlepszą metodą jest przekopiowanie kodu przez Ctrl+C oraz Ctrl+V z maila lub certyfikatu. Poprawny kod programowy jest 24 znakowy i jest oddzielony myślnikami co 4 znak np. XXXX-XXXX-XXXX-XXXX-XXXX-XXXX. 5. Jeśli licencja została już aktywowana na innym komputerze i nie została zwrócona z poziomu Menadżera licencji lub nie została zwrócona przed formatowaniem dysku, to również pojawi się problem z aktywacją.
    3 punkty
  50. Poniżej rozwiązanie: Witam Przesyłam rozwiązanie do przeinstalowania VBA wersji ZWCAD2012/2011. 1. Uruchomić wiersz poleceń Start->Uruchom->CMD i odinstalować VBA ZWCAD2012/2011 przez wklejenie linków: MsiExec.exe /X{1727CD47-A408-11d2-AFAD-00C04F72FB3E} MsiExec.exe /X{17E27C03-BD58-11d2-AFC1-00C04F72FB3E} MsiExec.exe /x{17E27C04-BD58-11d2-AFC1-00C04F72FB3E} Przy wklejeniu drugiego i trzeciego linku może pojawić się informacja, że deinstalacja wymaga zainstalowanego produktu. Informację tę można zignorować. 2. Proszę pobrać VBA i zainstalować z poniższego linku: http://jakprojektowac.pl/ftp/zwcad/Nakladki/vba6eng.rar pozdrawiam
    3 punkty
Ten Ranking jest ustawiony na Warszawa/GMT+02:00