wedzik

Użytkownik forum
  • Postów

    42
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Aktywność reputacji

  1. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w ZWCAD 2025 brak brył 3d [Rozwiązany]   
    W ZWCAD 2025 funkcje 3D zostały umieszczone w osobnej wstążce.
    Wystarczy kliknąć i z rozwijanej listy wybrać potrzebną wstążkę.

     

  2. Upvote
    wedzik otrzymał(a) reputację od Pawel.G w Przesuń równolegle / Dopasuj bez obracania [Rozwiązany]   
    W ramach ćwiczeń zrobię Ci blok dynamiczny. Podeślij zwykły blok.
  3. Like
    wedzik otrzymał(a) reputację od alf w ZWCad 2024 problem z płynności funkcji PAN przy 4K   
    Ja pracuję w 4k - 3840  2160, ale mam inny monitor -Samsung 43"  https://www.morele.net/monitor-samsung-smart-m70b-ls43bm700upxen-12768216/
    Nie używam skalowania, wszystkie napisy i ikony są czytelne bez powiększania.
    Praca płynna, żadnych zacięć. 
    Praca na takiej wielkości monitorze to bajka, jakbym dostał drugie życie.
    Monitor 27" jest trochę większy od kartki papieru A3 (w poziomie).
    Na moim mieszczą się 3 formatki A3 obok siebie (w pionie) i jeszcze pod dołem zostaje pas 10cm. Dzięki temu mogę mieć ekran ZWCAD wielkości 2 formatek A3, obok tego Worda i arkusz kalkulacyjny, komunikator itd, bez zasłania sobie nawzajem okien. Wygoda nieporównywalna i nie męczy mi wzroku.
  4. Upvote
    wedzik otrzymał(a) reputację od pawmal w ZWCad 2024 problem z płynności funkcji PAN przy 4K   
    Ja pracuję w 4k - 3840  2160, ale mam inny monitor -Samsung 43"  https://www.morele.net/monitor-samsung-smart-m70b-ls43bm700upxen-12768216/
    Nie używam skalowania, wszystkie napisy i ikony są czytelne bez powiększania.
    Praca płynna, żadnych zacięć. 
    Praca na takiej wielkości monitorze to bajka, jakbym dostał drugie życie.
    Monitor 27" jest trochę większy od kartki papieru A3 (w poziomie).
    Na moim mieszczą się 3 formatki A3 obok siebie (w pionie) i jeszcze pod dołem zostaje pas 10cm. Dzięki temu mogę mieć ekran ZWCAD wielkości 2 formatek A3, obok tego Worda i arkusz kalkulacyjny, komunikator itd, bez zasłania sobie nawzajem okien. Wygoda nieporównywalna i nie męczy mi wzroku.
  5. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Powierzchnia prostokreślna w ZW3D   
    Zdecydowanie lepiej będzie utworzyć łatę za pomocą funkcji n-granice.

     
    Do tego narzędzia potrzebujemy co najmniej 3 krawędzi. Sposób działania pokazałem na filmie poniżej.

  6. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Jak uprościć polilinię?   
    Opracowaliśmy skrypt, za pomocą którego możemy uprościć polilinię z zadaną dokładnością.
    Cały opis algorytmu upraszczania oraz skrypt znajduje się na naszej stronie https://www.zwcad.pl/wyszukiwanie-w-bazie-wiedzy/jak-to-zrobic/1061-jak-uproscic-polilinie.html
     

     

  7. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Kronika filmowa   
    Jak używać gestów myszy?
     
  8. Upvote
    wedzik przyznał(a) reputację dla zwonko w Rozciąganie na grubość   
    nie łatwiej niż bawic sie w "streczowanie", narysować prostokąt o wymiarach axb, a potem zaczynajac od naroża narysować a*18, b*18 i powstale w ten psosob prostokąty przesunąć?

     
  9. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Rozciąganie na grubość   
    Można też użyć ewentualnie polecenia TK będąc wewnątrz polecenia do rozciągania.
    Polecenie TK pozwala na przesunięcie punktu bazowego, za pomocą którego trzymamy rozciągany obiekt. TK działa również wewnątrz innych poleceń.

  10. Upvote
    wedzik przyznał(a) reputację dla Adam Klaczek w Rozciąganie na grubość   
    Może z wprowadzanie dynamicznym?
    Pierwszy wierzchołek na wymiar, drugi do punktu prostopadłości:

  11. Upvote
    wedzik otrzymał(a) reputację od pawmal w ZwCAD 2023 beta   
    Działa, dzięki.
    W klasycznym można też przez prawy klawisz myszy.

     
    Fajnie że można wstawić kilka bloków do jednej komórki i je skalować i obracać.
  12. Upvote
    wedzik przyznał(a) reputację dla pawmal w ZwCAD 2023 beta   
    Wystarczy skorzystać z funkcji blok po zaznaczeniu komórki tabeli. Blok wybieramy z listy.


  13. Upvote
    wedzik otrzymał(a) reputację od Martin_S w ZwCAD2021 długość łuku   
    Chyba bardziej czytelnie jest jak przy małych kątach i dużych promieniach linie pomocnicze są równoległe.
    Przykład z książki - Poradnik Mechanika tom II.

     
    Zresztą w Autocadzie też tak jest (a przynajmniej było z tego co pamiętam).
     
     
  14. Upvote
    wedzik otrzymał(a) reputację od pawmal w ZwCAD2021 długość łuku   
    Chyba bardziej czytelnie jest jak przy małych kątach i dużych promieniach linie pomocnicze są równoległe.
    Przykład z książki - Poradnik Mechanika tom II.

     
    Zresztą w Autocadzie też tak jest (a przynajmniej było z tego co pamiętam).
     
     
  15. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Nie działa zmienna w filtrze przy zaznaczaniu ssget   
    Działa pięknie. I jest też sprawdzenie czy lista nie jest pusta.

     
    Apostrof (albo quote) przed nawiasem powoduje utworzenie listy bez obliczania jej wartości.

     
    Aby obliczyć wartość można użyć funkcji list.

     
    Czyli linię
    (setq zbior (ssget "X" '( (0 . "CIRCLE") (410 . "Model")(-4 . ">=") (40 . malypromien ) ) )) można zamienić na
    (setq zbior (ssget "X" (list (cons 0 "CIRCLE") (cons 410 "Model")(cons -4 ">=") (cons 40 malypromien ) ) )) jeśli się nie mylę.
    PS. cons tworzy parę z kropką.
  16. Upvote
    wedzik przyznał(a) reputację dla perlon w Nie działa zmienna w filtrze przy zaznaczaniu ssget   
    Może to pomoże :
    (defun c:okregi (/) (setq malypromien (getreal "Podaj maly promien: ")) (setq aaa '( (0 . "CIRCLE") (410 . "Model") (-4 . ">=")) ) (setq bbb (append aaa (list (cons 40 malypromien)))) (setq zbior (ssget "X" bbb)) (if zbior (princ (setq ile (sslength zbior))) (princ "\nBrak elementow")) (princ) )  
  17. Upvote
    wedzik otrzymał(a) reputację od dmatusz3 w Co dzisiaj robiłem w lispie?   
    Kolejna wersja programu: rysuje osie i grupuje elementy otworu.
    Przed

    Po

    (defun c:krawedzieotworux () (princ "Zaznacz okregi do rzutownia: \n") (setq okrag (ssget '((0 . "CIRCLE")) )) ;prosimy o wskazanie obiektów oknem. Pozwalamy na wybor tylko okregow (setq ile (sslength okrag)) ;liczymy ile obiektow zaznaczylismy (setq i 0) ;ustawiamy zmienna i zeby sobie odliczac (setq pt1 (getpoint "Wskaz poczatek linii: ")) (setq pt2 (getpoint "Wskaz koniec linii: ")) (setq przedluzenieosi (* (- (car pt2) (car pt1) ) 0.1 )) (setq aktualnawarstwa (getvar "CLAYER")) (command "_-LAYER" "_M" "osie" "_C" "red" "" "_L" "CENTER" "" "") ; Tworze warstwe dla osi (repeat ile ; powtarzamy tyle razy ile jest obiektow (setq nazwyobiektow (ssname okrag i)) ;ustalamy nazwe kolejnych obiektow (setq listaobiektu (entget nazwyobiektow)) ;pobieramy wlasciwosci obiektu o nazwie jak w lini wyzej (setq promien (assoc 40 listaobiektu)) ;odczytujemy promień aktualnego okregu np. (40 . 27.7815) (setq srodek (assoc 10 listaobiektu)) ;odczytujemy srodek okregu np. (10 310.596 514.272 0.0) (setq r (cdr promien)) ;przypisuje do r promien np. 27.7815 (setq y (cadr(cdr srodek))) ;przypisuje do y wspolrzedna Y np. 514.272 (setq x (cadr srodek)) ;przypisuje do x wspolrzedna Y np. 310.596 (setq grupa (ssadd)) (command "_-LAYER" "_S" aktualnawarstwa "") (command "_line" (list (car pt1) (+ y r)) (list (car pt2) (+ y r)) "") ;rysuje linie car pobiera wspolrzedna X z kliknietych punktow (ssadd (entlast) grupa) (command "_line" (list (car pt1) (- y r)) (list (car pt2) (- y r)) "") (ssadd (entlast) grupa) (command "_-LAYER" "_S" "osie" "") (command "_line" (list (- (car pt1) przedluzenieosi) y ) (list (+ (car pt2) przedluzenieosi) y) "") ;rysujemy osie symetrii otworów z boku (ssadd (entlast) grupa) ;osie na otworach w widoku z góry, na początku os X potem Y (command "_line" (list (- x r przedluzenieosi) y) (list (+ x r przedluzenieosi) y) "" ) (ssadd (entlast) grupa) (command "_line" (list x (- y r przedluzenieosi) ) (list x (+ y r przedluzenieosi) ) "" ) (ssadd (entlast) grupa) (command "_group" "_c" "*" "opis" grupa "") (setq i (1+ i)) ;zwiekszamy zmienna i aby odczytac kolejny obiekt ) (command "_-LAYER" "_S" aktualnawarstwa "") )  
    krawedzieotworux1.lsp
  18. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Co dzisiaj robiłem w lispie?   
    Może coś takiego?
    (defun C:MPI (/) (initget "2 3 4") (setq k (cond ((getkword "\nPrzez ile pomnozyc liczbe PI? [2/3/4] <3>: ")) ("3"))) (prompt "Liczba PI pomnozona przez ") (prompt k) (prompt "= ") (prompt (* pi (atoi k))) )  
  19. Upvote
    wedzik przyznał(a) reputację dla dmatusz3 w Szyk manualny   
    Nagrałem krótki film pokazujący jak działa skrypt.
     
  20. Upvote
    wedzik przyznał(a) reputację dla kruszynski w Szyk manualny   
    W załączniku aktualizacja pozwalająca wskazywać wiele elementów
    Szyk.lsp
  21. Upvote
    wedzik przyznał(a) reputację dla Adam Klaczek w Szyk manualny   
    Również polecenie MEASURE... Jeżeli okrąg zapisać jako blok, zadziała tak:
     

  22. Upvote
    wedzik przyznał(a) reputację dla kruszynski w Szyk manualny   
    Taki skrypt mógłby wyglądać np tak:
    (defun C:SzykManualny ( / element odleglosc bazowy kierunek Koniec licznik kopiuj *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nC:SzykManualny:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq Koniec "" licznik 1 ) (defun kopiuj ( / v1 *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nkopiuj:*error*: " ) (princ msg ) (princ "\n") ) ) ) ( setq v1 ( Vector:Normalize ( Vector: kierunek bazowy ) ) ) ( setq v ( Vector:XScalar v1 (* odleglosc licznik ) ) ) ( setq clone (vlax-invoke-method element 'Copy) ) ( setq px (Vector+ bazowy v )) (vlax-invoke-method clone 'Move (vlax-3d-point bazowy) (vlax-3d-point px) ) (setq licznik (1+ licznik)) ) (setq element (SelSet:Entsel "Wskaż element" nil)) (if (null element) (*error* nil) ) (setq odleglosc (ZWCAD:GetDist "Podaj odległość" poprzedniaOdleglosc)) (if (null odleglosc) (*error* nil) ) (setq bazowy (ZWCAD:Getpoint "Wskaż punkt bazowy" nil nil ) ) (if (null bazowy) (*error* nil) ) (setq kierunek (ZWCAD:Getpoint "Wskaż kierunek" bazowy nil ) ) (if (null kierunek) (*error* nil) ) (while (equal Koniec "") ( kopiuj ) (setq Koniec ( ZWCAD:GetString "Czy wstawić kolejny" "" ) ) ) (setq poprzedniaOdleglosc odleglosc) (princ) ) (defun Vector: ( A B / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nVector::*error*: " ) (princ msg ) (princ "\n") ) ) ) (list (- (car A) (car B ) ) (- (cadr A) (cadr B ) ) (- (caddr A) (caddr B ) ) ) ) (defun Vector:Length (vec / s *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nVector:Length:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq s (+ (* (car vec) (car vec) ) (* (cadr vec) (cadr vec) ) (* (caddr vec) (caddr vec) ))) (if (< s 0.0000000000001 ) 0.0 (sqrt s )) ) (defun Vector:Normalize (v / len *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nVector:Normalize:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq len (Vector:Length v) ) (if (< len 0.00000001) (list 0.0 0.0 0.0 ) (progn (list (/ (car v ) len) (/ (cadr v ) len) (/ (caddr v ) len) ) ) ) ) (defun Vector:XScalar (v s / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nVector:XScalar :*error*: " ) (princ msg ) (princ "\n") ) ) ) (mapcar '(lambda (x) (* x s) ) v ) ) (defun Vector+ (A B / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\n Vector+ : *error*: " ) (princ msg ) (princ "\n") ) ) ) (if (null A) (setq A (list 0.0 0.0 0.0 ) )) (if (null B) (setq B (list 0.0 0.0 0.0 ) )) (list (+ (car A ) (car B) ) (+ (cadr A ) (cadr B) ) (+ (caddr A ) (caddr B ) ) ) ) (defun SelSet:Entsel (tresc filter / OldNoMutt MSel OutVal *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nSelSet:Entsel:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq tresc (strcat "\n" tresc ": ") ) (prompt tresc ) (setq OldNoMutt (getvar 'NOMUTT)) (setvar 'NOMUTT 1) (setq MSel (if (null filter) (vl-catch-all-apply 'ssget (list ":S:E" )) (vl-catch-all-apply 'ssget (list ":S:E" filter )) ) ) (setvar 'NOMUTT OldNoMutt ) (if (vl-catch-all-error-p MSel) (progn (prompt (vl-catch-all-error-message MSel)) ) (progn (if MSel (progn (setq OutVal (vlax-ename->vla-object (ssname MSel 0)) ) )) ) ) OutVal ) (defun ZWCAD:GetDist (tresc domyslny / Wynik trescformat liczba *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nZWCAD:GetDist:*error*: " ) (princ msg ) (princ "\n") ) ) ) (if domyslny (if (numberp domyslny) (setq tresc (strcat tresc "<" (rtos domyslny 2 4) ">") ))) (setq tresc (strcat "\n" tresc ": ")) (setq liczba(vl-catch-all-apply 'getdist (list tresc ))) (if (vl-catch-all-error-p liczba) (progn (prompt (vl-catch-all-error-message liczba)) (setq Wynik nil ) ) (progn (if (null liczba) (setq Wynik domyslny ) (setq Wynik liczba) ) ) ) Wynik ) (defun ZWCAD:Getpoint (tresc P0 domyslny / SelPt Wynik *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nZWCAD:Getpoint:*error*: " ) (princ msg ) (princ "\n") ) ) ) ;(ZWCAD:Getpoint tresc P0 domyslny ) (setq tresc (strcat "\n" tresc ": ")) (if (not(null P0)) (setq SelPt(vl-catch-all-apply 'getpoint (list P0 tresc ))) (setq SelPt(vl-catch-all-apply 'getpoint (list tresc ))) ) (if (vl-catch-all-error-p SelPt) (progn (prompt (vl-catch-all-error-message SelPt)) (setq Wynik nil ) ) (progn (if (null SelPt) (setq Wynik domyslny ) (setq Wynik SelPt) ) ) ) Wynik ) (defun ZWCAD:GetString (tresc domyslny / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nZWCAD:GetString:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq tresc (strcat "\n" tresc ": ")) (String:Get tresc domyslny) ) (defun String:Get (komunikat defVal / Wynik tekst *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nString:Get:*error*: " ) (princ msg ) (princ "\n") ) ) ) ; (setq komunikat "podaj tekst" ) ; (setq defVal "SLU" ) (if defVal (if (not(= defVal "")) (setq komunikat (strcat komunikat "<" defVal ">:" ) )) ) (setq tekst(vl-catch-all-apply 'getstring (list komunikat ))) (if (vl-catch-all-error-p tekst) (progn (prompt (vl-catch-all-error-message tekst)) (setq Wynik nil ) ) (progn (if (null tekst) (setq Wynik defVal ) (if (= tekst "") (setq Wynik defVal ) (if (= tekst ".") (setq Wynik "") (setq Wynik tekst) ) ) ) ) ) Wynik )  
    Szyk.lsp
  23. Upvote
    wedzik przyznał(a) reputację dla Adam Klaczek w Szyk manualny   
    Może kopiowanie z szykiem?