wedzik
-
Postów
42 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Aktywność reputacji
-
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ę.
-
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.
-
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.
-
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.
-
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.
-
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
-
-
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ąć?
-
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ń.
-
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:
-
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ć.
-
wedzik przyznał(a) reputację dla pawmal w ZwCAD 2023 beta
Wystarczy skorzystać z funkcji blok po zaznaczeniu komórki tabeli. Blok wybieramy z listy.
-
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).
-
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).
-
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ą.
-
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) )
-
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
-
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))) )
-
wedzik przyznał(a) reputację dla dmatusz3 w Szyk manualny
Nagrałem krótki film pokazujący jak działa skrypt.
-
wedzik przyznał(a) reputację dla kruszynski w Szyk manualny
W załączniku aktualizacja pozwalająca wskazywać wiele elementów
Szyk.lsp
-
wedzik przyznał(a) reputację dla Adam Klaczek w Szyk manualny
Również polecenie MEASURE... Jeżeli okrąg zapisać jako blok, zadziała tak:
-
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
-