piotrb Posted November 12, 2020 Report Posted November 12, 2020 (edited) Witam serdecznie, to mój pierwszy post - miejcie wyrozumiałość Chciałem przyspieszyć moją pracę i na początek chciałbym napisać proste polecenie. Mam już istniejący wymiar liniowy (np. A). Chciałbym zamienić tekst na tym wymiarze i uzależnić tekst od wartości wymiaru (chcę opisać ile prętów zbrojeniowych mam na danym odcinku): tekst powinien wyglądać: "#8 co X cm". Gdzie X=A/R (zaokrąglone w górę do całkowitych), gdzie R jest rozstawem. Na początek chciałbym wpisywać w wierszu Rozstaw. Albo, jeśli jest taka możliwość: rysując dany wymiar, chciałbym wprowadzać R i dostawać końcowy rezultat (wymiar z pożądanym tekstem). Pracuję na Arcadia Plus 12.0.109.0.x64.Release. Czy mogę prosić o pomoc? Edited November 12, 2020 by piotrb Quote
kruszynski Posted November 13, 2020 Report Posted November 13, 2020 Tak na szybko to mogłoby to być takie coś: (setq R (getdist "podaj rozstaw")) (setq dim (vlax-ename->vla-object (car(entsel "Wybierz wymiar")))) (setq A (vlax-get-property dim 'Measurement) ) (setq X (/ A R)) (vlax-put-property dim 'TextOverride (strcat "#8 co " (rtos X) " cm")) Nie ma jeszcze zaokrąglenia. Nie wiem czy zadziała w Arcadi. w ZWCAD działa. Quote
piotrb Posted November 13, 2020 Author Report Posted November 13, 2020 Dziękuje za szybką odpowiedź. Po wybraniu lini wymiarowej otrzymuje komunikat: "błąd: aplikacja jest zblokowana i nie można jej rozładować." Czyżby Arcadia nie chciała współpracować? Quote
kruszynski Posted November 13, 2020 Report Posted November 13, 2020 Nie wiem. Nie mam i nie znam Arcadi. Ale tak na czuja to skoro pozwala na wskazanie wymiaru to wygląda na to że LISPy obsługuje. Może nie ma albo nie ładuje z automatu środowiska Visual LISP, spróbuj na początku skryptu dodać linię (vl-load-com) A jak nie łyknie to spróbujemy jeszcze czegoś innego. Quote
piotrb Posted November 13, 2020 Author Report Posted November 13, 2020 Po dodaniu: Cytuj (vl-load-com) 1. wskazuje (wpisuje) rozstaw 2. wskazuje wymiar komunikat: błąd: zbyt mało argumentów Quote
kruszynski Posted November 16, 2020 Report Posted November 16, 2020 W pasku poleceń wklej kolej linie i napisz w której jest problem. Quote
piotrb Posted November 16, 2020 Author Report Posted November 16, 2020 (vl-load-com) (setq R (getdist "podaj rozstaw")) (setq dim (vlax-ename->vla-object (car(entsel "Wybierz wymiar")))) (setq A (vlax-get-property dim 'Measurement) ) (setq X (/ A R)) (vlax-put-property dim 'TextOverride (strcat "#8 co " (rtos X) " cm")) wiersz2: podaje rozstaw wiersz3: wybieram linie wymiarową, po zaakceptowaniu (Enter/spacja) pojawia się komunikat: "błąd: zbyt mało argumentów" --------------------------------- pytanie 2: gdzie i jak mogę sprawdzić parametry linii wymiarowej (np 'Measurement) itd. Chodzi mi o to, żeby poznać nazwy parameterów danych obiektów. Quote
kruszynski Posted November 16, 2020 Report Posted November 16, 2020 Tą linię (setq dim (vlax-ename->vla-object (car(entsel "Wybierz wymiar")))) Możesz rozbić na (setq selected(entsel "Wybierz wymiar")) (setq dim (vlax-ename->vla-object (car selected ) ) ) I sprawdź co zwraca (setq selected (entsel "Wybierz wymiar")) Quote
kruszynski Posted November 16, 2020 Report Posted November 16, 2020 56 minut temu, piotrb napisał: pytanie 2: gdzie i jak mogę sprawdzić parametry linii wymiarowej (np 'Measurement) itd. Chodzi mi o to, żeby poznać nazwy parameterów danych obiektów. Jeśli dobrze rozumiem pytanie to będzie to (vlax-dump-object dim t ) gdzie (setq dim (vlax-ename->vla-object (car(entsel "Wybierz ")))) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.