swazy

Użytkownik forum
  • Postów

    28
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Ostatnia wygrana swazy w dniu 17 Grudnia 2022

Użytkownicy przyznają swazy punkty reputacji!

Ostatnie wizyty

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

Osiągnięcia swazy

Początkujący

Początkujący (1/6)

1

Reputacja

  1. Przy pomocy: (getpropertyvalue blkEnt "AcDbDynBlockPropertyA1 X") ...udało mi się wyciągnąć współrzędne, które mnie interesują, ale ogrom niewiedzy pozostał... (dumpallproperties blkEnt) Co to właściwie jest i czy da się to w jakiś w miarę łopatologiczny sposób wyjaśnić laikowi co się tutaj wydarza?
  2. Wiem, tylko że nie mogę tego udostępnić bo to element sytemu, prawa autorskie, bla, bla, bla.... https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/get-list-of-parameters-being-used-in-block-without-vla-vlax/m-p/8461420#M378276 Wykopałem z czeluści internetów taki post - chodzi mi praktycznie o to samo co w przytoczonym trójkącie. Tylko z tego co rozumiem AutoCad ma (albo miał) wbudowaną funkcję getpropertyvalue. Sprawdzę to jutro (zaraz) w pracy. Czy ZWCAD ma coś analogicznego, albo czy da się takowe wydziobać?
  3. Czy brak reakcji na pytanie oznacza, że w internecie było to wałkowane miliard razy i powinienem sobie to znaleźć (oczywiście próbowałem)?
  4. Dziękuję za odpowiedź. Muszę się z tym przespać i pewnie będę męczył pytaniami dalej A póki co to mam jeszcze jedno pytanie z kolejnej beczki. Jak mogę się dostać do tych danych? To jest point parameter, ale nie ma jego wartości w atrybutach, cd:BLK_GetEntity też tego nie pokazuje. Dodam jeszcze, że to nie jest blok dynamiczny (wg cd:BLK_IsDynamicInsert ).
  5. Dobry wieczór, Mam pytanie programistyczne odnośnie szyków. Gdzie i w jaki sposób zapisane są dane poszczególnych elementów szyku? Czy da się uzyskać dane położenia poszczególnych jego elementów? Czy możliwa jest edycja zakresu szyku, liczby elementów czy rozstawu poprzez Lisp'a? I drugie pytanie z innej beczki: czy możliwe jest zaprogramowanie własnych osnapów? Przykładowo chciałbym uzyskać endpoint i middlepoint, ale tylko dla obiektów ze wskazanej warstwy.
  6. A co dokładnie jest problemem? Wstawienie bloku? Zmiana atrybutu? Odczytanie pikietażu? Jest to jak najbardziej do zrobienia Lisp-em.
  7. Dziękuję za odpowiedź. Moją ideą było przeszukanie "m" razy (gdzie m to długość mojej listy) zbiór wszystkich bloków w rysunku i pisałem to pod jeden konkretny blok, dlatego brak filtrów na wejściu. Teraz widzę, że "(1+ m)" i (1+ n ) są w złych miejscach no i mam oczywiście świadomość, że działanie programu jest mało finezyjne....ale tak jakoś nauczyłem się kiedyś AutoLispa a Visual wydaje mi się mniej czytelny no i nie ma o tym książek (chyba 😄 ).
  8. Pozwolę sobie pociągnąć wątek dalej. Dlaczego nie chce mi działać coś takiego i gdzie tu jest błąd? (defun C:HL ( / ) (setq LISTA (cdr (cd:BLK_GetDynBlockNames "<nazwa mojego bloku>" ))) (setq BLOKI (ssget "x" '(( 0 . "INSERT" )))) (setq WYB nil ) (setq n 0 ) (repeat (length LISTA ) (setq m 0 ) ;(setq jeszcze T ) (repeat (sslength BLOKI ) (setq POM (ssname BLOKI m )) (if (= (cdr (assoc 2 (entget POM ))) (nth n LISTA )) (progn (if WYB (progn (setq WYB (ssadd (cdr (assoc -1 (entget POM ))) WYB )) );progn (progn (setq WYB (ssadd (cdr (assoc -1 (entget POM ))))) );progn );if (setq jeszcze nil ) (setq n (1+ n )) );progn );if ;(if (= m (- (sslength BLOKI) 1 ))(setq jeszcze nil )) (setq m (1+ m )) );repeat );repeat (command "hideobjects" WYB "" ) (princ (strcat "\n...ukrylem < " (rtos (sslength WYB ) 2 0 ) " > blok/i/ow..." )) (princ) );defun Kod działa częściowo, bo listę bloków anonimowych tworzy tak jak bym tego chciał, ale dalsza część wyłapuje i ukrywa tylko część z bloków z listy... Na przykład *U286 nie ukrywa.
  9. Ale czad! 🤩 Dziękuję! Na ZW-Cadzie 2024 działa bez zarzutów. A z ciekawości: czy da się to zrobić klasycznym AutoLispem ?
  10. Dobry wieczór, Mam problem z programistycznym okiełznaniem bloków dynamicznych - chodzi o blok belki prefabrykowanej występujący w kilku określonych długościach. Belka przedstawiona jest za pomocą bloku dynamicznego, który ma zdefiniowany kilka Visibility z Linear Parameter. Czy mogę prosić o nakierowanie w jaki sposób mogę się dowiedzieć, która długość belki jest aktualnie wybrana na rysunku? Obstawiam, że to siedzi gdzieś w słownikach. "(102 . {ACAD_XDICTIONARY) (360 . <ENTITY NAME: 2ba9f768>) (102 . })", Próbowałem googlować, ale nie za bardzo potrafię się połapać o co w tej technologyi chodzi... (niestety nie mam zgody na upublicznienie pliku z blokiem, więc muszę tak lakonicznie i opisowo) Będę dźwięczny za pomoc :)
  11. Cześć! Coś czuję że zadaję głupie pytanie, ale mój mały rozumek uważa że to powinno działać ale niestety nie działa. Dlaczego? 🧐 (setq qqq (entget (car (entsel )))) (setq qqq (subst (cons 50 0.25 )(assoc 50 qqq) qqq )) (setq entmod qqq )
  12. Dzięki wielkie! Brzmi jak weekend z Lispem bo zajeżdża mi to czarną magią 😛
  13. Chyba jestem cieńszy w uszach niż myślałem... 😞 (defun C:MODYFIKACJA_WARSTW ( / POM n ENT_POM BASE ) (setvar "cmdecho" 0 ) (setq BASE (list ;W tym miejscu uzupełniasz sobie listę interesujących Cię wartstw wg podanego klucza ;NAZWA WARSTWY || 1=widoczny / -1=wygaszony || KOLOR || STYL LINII '( "209-Opis konturu klasyfikacyjnego" 1 55 "sm05_500") '( "238-Punkt adresowy budynku" 1 161 "sm05_500") '( "219-Linia granicy" 1 1 "sm05_500") ));setq (foreach EL BASE (if (/= nil (tblobjname "layer" (nth 0 EL ))) (progn (setq POM (tblobjname "layer" (nth 0 EL))) (setq ENT_POM (entget POM )) (setq ENT_POM (subst (cons 62 (* (nth 1 EL )(nth 2 EL )))(assoc 62 ENT_POM ) ENT_POM )) (setq ENT_POM (subst (cons 6 (nth 3 EL ))(assoc 6 ENT_POM ) ENT_POM )) (entmod ENT_POM ) );progn (progn (princ (strcat "\n...barak warstwy: <<<" (nth 0 EL ) ">>> na rysunku...")) );progn );if );foreach (princ "\n<<< warstwy zmodyfikowane! >>>") (princ) );defun (defun C:MODYFIKACJA_OBIEKTOW ( / KOLOR WYSOKOSC WYB POM ENT_POM n ) (setvar "cmdecho" 0 ) (setq KOLOR 12 ;<<<<<<<<<<<<<<< TUTAJ WPISUJESZ NR KOLORU WYSOKOSC 2.40 ;<<<<<<<<<<<<<<< TUTAJ WPISUJESZ WYSOKOSC TEXTU );setq (setq WYB (ssget "x" '((-4 . "<AND")(0 . "TEXT")(8 . "211-Nr dzia*ki")(-4 . "AND>")))) ;<<<<<<< TUTAJ W NAWIASIE (8 . "xxx") WSTAWIASZ NAZWE WARSTWY (if (/= nil WYB) (progn (setq n 0 ) (repeat (sslength WYB ) (setq POM (ssname WYB n )) (setq ENT_POM (entget POM)) (setq ENT_POM (subst (cons 40 WYSOKOSC )(assoc 40 ENT_POM ) ENT_POM )) (if (assoc 62 ENT_POM) (progn (setq ENT_POM (subst (cons 62 KOLOR )(assoc 62 ENT_POM ) ENT_POM )) );progn (progn (setq ENT_POM (append '(cons 62 KOLOR ) ENT_POM )) );progn );if (entmod ENT_POM ) (setq n (1+ n )) );repeat (princ "\n<<< obiekty zmodyfikowane! >>>") );progn (progn (alert "\n<<< nie znalazłem tekstow o podanych kryteriach! >>>") );progn );if (princ) );defun Popełniłem coś takiego - proszę o krytykę tutejszych Gooru. Działa, ale nie sądzę że jest to najwyżej punktowana odpowiedź i trzeba by się było nad tym jeszcze chwilę popastwić. a) nie potrafię sobie poradzić z polskimi znakami w nazwach warstw b) nie wiem jak się zmienia kolory "truecolor")
  14. Piszesz o rzeczach podstawowych i niezbędnych jak prawo do edukacji na karcie praw człowieka 😄 Spróbuję zaraz coś pomocnego wyprodukować.
  15. Już bardziej, ale tak o poziom bezpieczniej 😛 Myślałem o czymś w stylu PIN-u (no bo zrobienie czegoś w stylu (if (not PIN)(exit)) , ale taki kod można udostępnić tak samo łatwo jak i sam skompilowany plik. Zastanawiam się jak swoje kody zabezpieczają ludzie, którzy odpłatnie zajmują się pisaniem skryptów do środowiska CAD. Czy też może jest to zbyt prymitywne środowisko i nikomu się nie chce bawić w takowe biznesy???