Rekomendowane odpowiedzi

Opublikowano (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 przez piotrb
Opublikowano

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.
Opublikowano

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ć?

Opublikowano

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.

Opublikowano
(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.

Opublikowano

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"))
Opublikowano
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 "))))

 

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się