piotrb Opublikowano 12 Listopada 2020 Zgłoś Opublikowano 12 Listopada 2020 (edytowane) 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? Edytowane 12 Listopada 2020 przez piotrb Cytuj
kruszynski Opublikowano 13 Listopada 2020 Zgłoś Opublikowano 13 Listopada 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. Cytuj
piotrb Opublikowano 13 Listopada 2020 Autor Zgłoś Opublikowano 13 Listopada 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ć? Cytuj
kruszynski Opublikowano 13 Listopada 2020 Zgłoś Opublikowano 13 Listopada 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. Cytuj
piotrb Opublikowano 13 Listopada 2020 Autor Zgłoś Opublikowano 13 Listopada 2020 Po dodaniu: Cytuj (vl-load-com) 1. wskazuje (wpisuje) rozstaw 2. wskazuje wymiar komunikat: błąd: zbyt mało argumentów Cytuj
kruszynski Opublikowano 16 Listopada 2020 Zgłoś Opublikowano 16 Listopada 2020 W pasku poleceń wklej kolej linie i napisz w której jest problem. Cytuj
piotrb Opublikowano 16 Listopada 2020 Autor Zgłoś Opublikowano 16 Listopada 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. Cytuj
kruszynski Opublikowano 16 Listopada 2020 Zgłoś Opublikowano 16 Listopada 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")) Cytuj
kruszynski Opublikowano 16 Listopada 2020 Zgłoś Opublikowano 16 Listopada 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 ")))) Cytuj
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.