Recommended Posts

Posted (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 by piotrb
Posted

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

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

Posted

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.

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

Posted

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

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...