-
Postów
257 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
41
Osiągnięcia kojacek
Nowicjusz (2/6)
72
Reputacja
-
dmatusz3 zareagował(a) na odpowiedź w temacie:
Rysowanie linii równoległych pod kątem
-
MateuszJ zareagował(a) na odpowiedź w temacie:
Rysowanie linii równoległych pod kątem
-
Martin_S zareagował(a) na odpowiedź w temacie:
Rysowanie linii równoległych pod kątem
-
Rysowanie linii równoległych pod kątem
kojacek odpowiedział(a) na dmatusz3 temat w ZWCAD Standard i Professional
-
Rysowanie linii równoległych pod kątem
kojacek odpowiedział(a) na dmatusz3 temat w ZWCAD Standard i Professional
-
dmatusz3 zareagował(a) na odpowiedź na pytanie:
Łączenie polyline „narożników” wymiarów - czy jest na to jakaś funkcja polecenie CAD?
-
RobS zareagował(a) na odpowiedź na pytanie:
Łączenie polyline „narożników” wymiarów - czy jest na to jakaś funkcja polecenie CAD?
-
Łączenie polyline „narożników” wymiarów - czy jest na to jakaś funkcja polecenie CAD?
kojacek odpowiedział(a) na Shindu pytanie w Propozycje nowych funkcji
Propozycja rozwiązania: https://kojacek.wordpress.com/2025/10/14/naroznik-wymiarow -
Martin_S zareagował(a) na odpowiedź w temacie:
Problematyczne przesuwanie obiektów
-
Adam Klaczek zareagował(a) na odpowiedź w temacie:
Problematyczne przesuwanie obiektów
-
dmatusz3 zareagował(a) na odpowiedź w temacie:
Problematyczne przesuwanie obiektów
-
Problematyczne przesuwanie obiektów
kojacek odpowiedział(a) na dmatusz3 temat w ZWCAD Standard i Professional
2 x przesuń. Jednak jeśli POLARANG nie jest ustawiony, to ustawienie będzie dodatkową (trzecią) operacją: -
dmatusz3 zareagował(a) na odpowiedź w temacie:
Numerowanie arkuszy - Zmienne lisp - brak na liście zmiennych [Rozwiązany]
-
Numerowanie arkuszy - Zmienne lisp - brak na liście zmiennych [Rozwiązany]
kojacek odpowiedział(a) na MPJ temat w ZWCAD Standard i Professional
-
W AC działa w dwie strony. Bez zarzutu. Jak przełącznik radiowy. Albo 0 albo 1.
-
Zatem... Załaduj poniższych parę nieci innych nawiasów. Polecenie L-ANNO2 . Pack musi być. Przetestuj proszę. ; -------------------------------------------------------------------------------------------- ; ; Polecenie C:L-ANNO2 zmienia zmienna ANNOALLVISIBLE dla kazdego layoutu na wartosc przeciwna ; ; operujac na XDATA ; ; by kojacek 2024 ; ; -------------------------------------------------------------------------------------------- ; (defun C:L-ANNO2 (/ %n %i %l) (setq %n "AcadAnnoAV") (foreach % (layoutlist) (setq %i (vlax-vla-object->ename (vla-item (cd:ACX_Layouts) %) ) ) (setq %l (length (if (not (cd:XDT_GetXData %i %n) ) (cd:XDT_PutXData %i %n '((1070 . 1))) (cd:XDT_RemoveXData %i %n) ) ) ) (princ (strcat "\nDla układu " % " zmieniono ustawienie ANNOALLVISIBLE na " (if (< 10 %l) "1" "0") ) ) ) (princ) ) ; -------------------------------------------------------------------------------------------- ;
-
GETPROPERTYVALUE, SETPROPERTYVALUE oraz DUMPALLPROPERTIES są w AC pewnie już z 10 lat. Zatem z rzekomą zgodnością różnie bywa.
-
Tych parę nawiasów wraz z treścią umieszczoną pomiędzi nimi, zmienia wartosc tej zmiennej dla kazdego layoutu (bez modelu) na przeciwną. Potrzeba CADPL-Pack'a załadowanego wcześniej. ; -------------------------------------------------------------------------------------------- ; ; Polecenie C:L-ANNO zmienia zmienna ANNOALLVISIBLE dla kazdego layoutu na wartosc przeciwna ; ; by kojacek 2024 ; ; -------------------------------------------------------------------------------------------- ; (defun C:L-ANNO (/ %i :a) (defun :a (x)(getpropertyvalue x "AnnoAllVisible")) (foreach % (layoutlist) (setq %i (vlax-vla-object->ename (vla-item (cd:ACX_Layouts) %) ) ) (setpropertyvalue %i "AnnoAllVisible" (abs (1- (:a %i))) ) (princ (strcat "\nDla układu " % " zmieniono ustawienie ANNOALLVISIBLE na " (itoa (:a %i)) ) ) ) (princ) ) ; -------------------------------------------------------------------------------------------- ; W AC działa, nie wiem jak w jemu podobnych. kojacek
-
kruszynski zareagował(a) na odpowiedź w temacie:
Prostokąt obejmujący MTEXT i transformacje układów współrzędnych
-
Prostokąt obejmujący MTEXT i transformacje układów współrzędnych
kojacek odpowiedział(a) na perlon temat w Wsparcie programistyczne LISP i VisualLISP
WIdzę teraz, że odsunięcie ramki nie jest wyrażone w jednostkach, tylko jako jako współczynnik wysokości. Wartość 1 daje odsunięcie o wartości Height MTEXT-u. -
Prostokąt obejmujący MTEXT i transformacje układów współrzędnych
kojacek odpowiedział(a) na perlon temat w Wsparcie programistyczne LISP i VisualLISP
Potrzebujesz: 1) (załadowanego) CADPL-Pack'a (wiadomo) 2) funkcji z Express Tools: acet-geom-mtxtbox (oprócz AutoCAD-a jest w BricsCAD-zie i GStar'ze. Nie wiem jak jest w ZwCAD-ie) 3) Poniższego kawałka kodu: ;;; ramka MTEXTu (2024 by kojacek) (defun C:MTEST (/ %e %d %p %o %z) (if (and (setq %e (car (entsel "\Wybierz MTEXT:"))) (= "MTEXT" (cdr (assoc 0 (setq %d (entget %e))))) ) (progn (setq %p (acet-geom-mtxtbox %d 0.0) %z (cdr (assoc 210 %d)) %p (mapcar '(lambda (%) (trans % 1 %z) ) %p ) ) (setq %o (cd:ACX_AddLWPolyline (cd:ACX_ASpace) %p t)) (vla-TransformBy %o (cd:CON_TransMatrix 0)) ) (princ "\nZły wybór.") ) ) Z tego co na szybko przetestowałem, maluje prostokąt dla wskazanego MTEXT-u, niezależnie od aktywnego układu współrzednych. Funkcja acet-geom-mtxtbox, zwraca współrzędne prostokata opisującego rzeczywisty obszar MTEXT-u (porównaj z ramką MTEXT-u). Swego czasu poruszałem to tu: https://kojacek.wordpress.com/2017/10/08/wielkosc-obszaru-mtext-u/. Drugi argument funkcji (tutaj 0.0), to odsunięcie prostokąta. Pozwala to na rysowanie większego obramowania. -
[LISP] Odmrażanie warstw za pomocą kodu.
kojacek odpowiedział(a) na swazy temat w Wsparcie programistyczne LISP i VisualLISP
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) ) -
Zamykanie obiektów w bloku
kojacek odpowiedział(a) na Pawel.G temat w Wsparcie programistyczne LISP i VisualLISP
Jeszcze: 1) sprawdzić czy trzeba cokolwiek robić (bo blok który chcemy stworzyć już istnieje) 2) deklarować zmienne lokalne (zawsze) 3) poznać funkcję initget dla getreal / getint / getangle / getpoint (ilość modułów = 0, a kąt 666...) 4) blok można tworzyć przez command / entmake / activeX (https://kojacek.wordpress.com/2017/11/22/programowe-tworzenie-bloku/) 5) alternatywnie pomysleć o szykach (https://kojacek.wordpress.com/2024/05/26/dostep-do-elementow-szyku/) albo MINSERT (https://kojacek.wordpress.com/2019/06/23/blok-5-rzeczy-o-ktorych-byc-moze-nie-wiesz/)