-
Postów
33 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
7
Ostatnia wygrana RobS w dniu 10 Stycznia
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 (1/6)
15
Reputacja
-
RobS zareagował(a) na odpowiedź w temacie: znaki istniejące a projektowane
-
Geede zareagował(a) na odpowiedź w temacie: Rozmieszczenie punktów na polilinii
-
Rozmieszczenie punktów na polilinii
RobS odpowiedział(a) na Szyszmar temat w Wsparcie programistyczne LISP i VisualLISP
Skrypt ma rozszerzenie zelx także jest zaszyfrowany dla programów z rodziny ZWCAD. -
pawmal zareagował(a) na odpowiedź w temacie: LISP - przepisanie wartości atrybutu do hyperlink'a w AC2010 lub ZWCAD2022
-
dmatusz3 zareagował(a) na odpowiedź w temacie: LISP - przepisanie wartości atrybutu do hyperlink'a w AC2010 lub ZWCAD2022
-
Hej, Napisałem skrypt który przepisuje wartość atrybutu o wskazanej nazwie do hiperłącza w wybranych blokach. Zwróć uwagę na wielkość liter w nazwach, ponieważ ma ona znaczenie. Skrypt uruchamia polecenie PrzepiszDoHiperlinku. (vl-load-com) (princ (strcat " Copyright © 2000 — 2025 Usługi Informatyczne Szansa www.zwcad.pl Dostępne polecenia: PRZEPISZDOHIPERLINKU - skrypt automatycznie przepisuje wartość wskazanego atrybutu do hiperłącza w wybranych blokach ") ) (defun LM:vl-getattributevalue ( blk tag ) (setq tag (strcase tag)) (vl-some '(lambda ( att ) (if (= tag (strcase (vla-get-tagstring att))) (vla-get-textstring att))) (vlax-invoke blk 'getattributes)) ) (defun C:PRZEPISZDOHIPERLINKU (/ blockName przepiszVal ss i ent val) (setq blockName (getstring t "\nWpisz nazwę bloku: ")) (setq attName (getstring t "\nWpisz nazwę atrybutu: ")) (setq ss (ssget "_X" (list (cons 2 blockName)))) (setq i 0) (repeat (sslength ss) (setq ent (ssname ss i)) (setq obj (vlax-ename->vla-object ent)) (setq val (LM:vl-getattributevalue obj attName)) (vla-add (vla-get-hyperlinks obj) val (vl-filename-base val)) (setq i (+ i 1)) ) (princ) ) PrzepiszDoHiperlinku.lsp
-
Hej, Warto naprawić rysunek poleceniem TEST, skopiować całość skrótem Ctrl + A -> Ctrl + C i wkleić w nowym rysunku z oryginalnymi współrzędnymi poleceniem _PASTEORIG. Dla bezpieczeństwa rysunek warto zapisać pod nową nazwą. Możesz też podesłać rysunek w wiadomości prywatnej, sprawdzę zachowanie u siebie.
-
RobS zareagował(a) na odpowiedź w temacie: Szkic ZW3D - Rysunek - Funkcje
-
ZWCAD 2020 // łączenie wielu plików DWG w jeden
RobS odpowiedział(a) na adamstef temat w ZWCAD Standard i Professional
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. -
RobS zareagował(a) na odpowiedź w temacie: Kronika filmowa
-
Martin_S zareagował(a) na odpowiedź w temacie: Sumowanie linii i bloków
-
RobS zareagował(a) na odpowiedź w temacie: Co dzisiaj robiłem w lispie?
-
Co dzisiaj robiłem w lispie?
RobS odpowiedział(a) na wedzik temat w Wsparcie programistyczne LISP i VisualLISP
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 🙂 -
Co dzisiaj robiłem w lispie?
RobS odpowiedział(a) na wedzik temat w Wsparcie programistyczne LISP i VisualLISP
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. -
Co dzisiaj robiłem w lispie?
RobS odpowiedział(a) na wedzik temat w Wsparcie programistyczne LISP i VisualLISP
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ć. -
RobS zareagował(a) na odpowiedź w temacie: ZWCad 2025 ortofotomapa
-
RobS zareagował(a) na odpowiedź w temacie: SPCAD - Geodezja i GIS
-
RobS zareagował(a) na odpowiedź w temacie: Co zrobić, gdy importujemy arkusz blachy w postaci pliku STEP?
-
dmatusz3 zareagował(a) na odpowiedź w temacie: Kopiowanie wraz z obracaniem
-
RobS zmienił(a) swoje zdjęcie profilowe
-
Kopiowanie wraz z obracaniem
RobS odpowiedział(a) na PiotrI temat w Wsparcie programistyczne LISP i VisualLISP
Ż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ń? -
Kopiowanie wraz z obracaniem
RobS odpowiedział(a) na PiotrI temat w Wsparcie programistyczne LISP i VisualLISP
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. -
RobS zareagował(a) na odpowiedź w temacie: Lisp do ucinania
-
dmatusz3 zareagował(a) na odpowiedź w temacie: Zamykanie obiektów w bloku
-
kruszynski zareagował(a) na odpowiedź w temacie: Zamykanie obiektów w bloku
-
Pawel.G zareagował(a) na odpowiedź w temacie: Zamykanie obiektów w bloku
-
Zamykanie obiektów w bloku
RobS odpowiedział(a) na Pawel.G temat w Wsparcie programistyczne LISP i VisualLISP
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 ) -
Zamykanie obiektów w bloku
RobS odpowiedział(a) na Pawel.G temat w Wsparcie programistyczne LISP i VisualLISP
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. -
Chris zareagował(a) na odpowiedź w temacie: wyświetlanie punktów (koniec) na linii lub polilinii [Rozwiązany]
-
dmatusz3 zareagował(a) na odpowiedź w temacie: wyświetlanie punktów (koniec) na linii lub polilinii [Rozwiązany]
-
wyświetlanie punktów (koniec) na linii lub polilinii [Rozwiązany]
RobS odpowiedział(a) na ESPESA temat w ZWCAD Standard i Professional
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 😏 -
[LISP] Kopia definicji bloku pod inną nazwą
RobS odpowiedział(a) na swazy temat w Wsparcie programistyczne LISP i VisualLISP
Hej, Sprawdź poniższy skrypt, spełnia funkcjonalność o której piszesz 😁 Copy or Rename Block Reference -
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.
-
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.