RobS

Użytkownik forum
  • Postów

    30
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    4

Ostatnia wygrana RobS w dniu 30 Listopada

Użytkownicy przyznają RobS punkty reputacji!

Ostatnie wizyty

Blok z ostatnimi odwiedzającymi dany profil jest wyłączony i nie jest wyświetlany użytkownikom.

Osiągnięcia RobS

Początkujący

Początkujący (1/6)

12

Reputacja

  1. Hej, Ile znaków mają nazwy tych plików? Czy w nazwie rysunku lub ścieżce są polskie znaki? Spróbowałem z plikiem którego nazwa ma ponad 100 znaków i wgrał się bez przeszkód. Być może problem leży w czymś innym. Jeśli możesz to podeślij przykładowy plik który jest pomijany w wiadomości prywatnej.
  2. Tak, wybierając rysowanie polilinii w trybie łuku można określić kąt. Poniżej podpowiedź jak wygląda pasek poleceń w angielskiej wersji językowej. Edycję kodu zostawiam Tobie 🙂
  3. W takim razie musisz jak na nagraniu zrobić to w dwóch krokach, tj. z dwóch segmentów. Edytując Twój skrypt może to wyglądać na przykład: (defun c:kolko1 () (setq p1(getpoint "Wskaż początek łuku:")) (setq p2(getpoint "Wskaż koniec łuku:")) (setq p3 (list p1)) (command "_.pline" p1 "_a" p2 p3 "") (command "_.pline" p2 "_a" p1 p3 "") (prompt "Okrąg został narysowany") ) Wydaje mi się, że punkt p3 jest zbędny, wielkość łuku polilinii zależy od kąta pomiędzy punktami.
  4. Hej, @mili napisz co dokładnie ma robić twój skrypt. Dla wygody własnej i innych twórców warto dodawać komentarze do swoich programów. W języku LISP są poprzedzone średnikiem, np. ;Zapisanie współrzędnych pierwszego punktu w zmiennej p1 Skrypt z twojej wiadomości tworzy polilinię która jest łukiem. Jeśli dobrze rozumiem, że chcesz stworzyć okrąg pojedynczym segmentem polilinii to chyba nie da się tego zrobić.
  5. Żeby uściślić, chcesz najpierw określić kąt obrotu skopiowanego elementu i później go wkleić w we wskazanym punkcie? Kąt obrotu chcesz określić na ekranie czy wpisując w pasku poleceń?
  6. Hej, Chodzi o to, żeby skopiować element i w trakcie wklejania poza miejscem określić także kąt? W nakładce ZWToolbox jest funkcja Kopiuj poprzez obrót, może to jakoś ułatwi twoje zadanie. Działanie funkcji pokazałem na poniższym nagraniu.
  7. 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 )
  8. Hej, Spojrzałem na Twój skrypt i chcę się upewnić czy dobrze rozumiem zamysł. Chcesz, żeby pojedynczy moduł był blokiem? Blok można stworzyć funkcją command "_block", wstawić przy pomocy command "_insert". Ponadto skrypt można odrobinę uprościć. Kąt można wprowadzić używając "getangle". Przekształcenie na liczbę całkowitą pominąć używając "getint". Do odczytywania narysowanych elementów użyć "entlast". Rysowanie warto wstawić do osobnej funkcji.
  9. 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 😏
  10. Hej, Sprawdź poniższy skrypt, spełnia funkcjonalność o której piszesz 😁 Copy or Rename Block Reference
  11. Do liczenia bloków na rysunku możesz użyć skryptu Block Counter autorstwa Lee Mac. Skrypt uruchamia polecenie BLKCOUNT. Wynik wstawiany jest w formie tabeli z podglądem wyglądu, nazwą i ilością bloków na rysunku.
  12. Hej, Długości linii i polilinii możesz zsumować poleceniem LINESUM, wynik wyświetli się w pasku poleceń. Obiekty na tej samej warstwie najlepiej wybrać klikając Prawy przycisk myszy -> Szybki wybór i ustawiając odpowiednie filtry. Po wybraniu obiektów wpisz w pasku poleceń LINESUM. Następnie wpisz P i kliknij Enter, żeby wrócić do poprzedniego zbioru elementów który zniknął po wywołaniu funkcji sumowania. Całość sumowania widać na poniższym nagraniu.
  13. Hej, Czyli LISP ma automatycznie przejść po blokach NAME1 do NAME30 i zmienić wartość atrybutu SYMBOL na wartość atrybutu LPS, i vice versa? Czy możesz podesłać jakiś przykładowy rysunek z takimi blokami?
  14. Hej, Spróbuj wykonać reset profilu 1. Reset profilu wykonajć przy zamkniętym programie ZWCAD. 2. Otwórz dowolny folder i w pasku adresu (z lewej strony) wklej: %appdata%\ZWSOFT\ZWCAD\2025 3. Zmienić nazwę katalogu en-US na en-US_kopia lub analogicznie pl-PL.
  15. Hej, Widok z góry można ustawić jak na poniższych obrazach W obszarze modelu (bez względu na ustawiony interfejs) W interfejsie wstążkowym W interfejsie klasycznym