_

pobranie parametrów obiektu po jego zmianie w trakcie lisp

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

pobranie parametrów obiektu po jego zmianie w trakcie lisp

Postprzez Mariusz-MK » lip 26, 2018 16:27

Witam, w trakcie lispa zmieniam długość linii poprzez zmianę współrzędnych jej końca. Po tej modyfikacji potrzebuje pobrać jej parametry (w trakcie działania programu lisp). Problem w tym że modyfikacja następuje po zakończeniu programu a nie w trakcie. Czy jest na to jakiś sposób?
Mariusz-MK
 
Posty: 88
Dołączył(a): lip 11, 2008 07:38

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez andkal » lip 26, 2018 17:51

Nie wiem jak wygląda ten lisp więc ciężko stwierdzić przyczynę, ale dla sprawdzenia napisałem testowy programik ktory zmienia punkt koncowy wybranej linii i podaje długosc przed i po. Może znajdzie Pan w nim podpowiedź

Kod: Zaznacz cały
(defun c:test ( / len1 EndPt line1)
    (setq line1 (vlax-ename->vla-object (car (entsel)))
            len1 (vlax-get line1 'Length)
            EndPt (vlax-3D-point  (list 200 0 0))
    );setq
    (terpri) (princ len1)
    (vla-put-endpoint line1 EndPt)
    (setq len1 (vlax-get line1 'Length))
    (terpri) (princ len1)
    (princ)
);defun
www.autolisps.blogspot.com - Lisp routines for Autocad and Autocad MEP
andkal
 
Posty: 22
Dołączył(a): paź 01, 2017 22:10
Lokalizacja: Kraków

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez Mariusz-MK » lip 26, 2018 20:20

Może dlatego że połączyłem tą linię z inna linią węzłem?
Mariusz-MK
 
Posty: 88
Dołączył(a): lip 11, 2008 07:38

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez Mariusz-MK » lip 27, 2018 14:03

OK, chyba nie do końca dobrze to opisałem, ale chciałem jak najkrócej i wyszło słabo.
Dwie linie połączone końcami - węzłem „pokrywanie się”. Zmieniam współrzędne punktu (pierwszej linii), w którym obie linie są połączone i po zakończeniu programu pierwsza linia ciągnie za sobą tą drugą. Potrzebuję pobrać parametry tej drugiej linii po zmianie, ale w trakcie programu, który zmienia współrzędne tej pierwszej. Czy to w ogóle możliwe w trakcie jednego programu?
Mariusz-MK
 
Posty: 88
Dołączył(a): lip 11, 2008 07:38

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez kojacek » lip 27, 2018 17:25

Mariusz-MK napisał(a):OK, chyba nie do końca dobrze to opisałem, ale chciałem jak najkrócej i wyszło słabo.
Dwie linie połączone końcami - węzłem „pokrywanie się”. Zmieniam współrzędne punktu (pierwszej linii), w którym obie linie są połączone i po zakończeniu programu pierwsza linia ciągnie za sobą tą drugą. Potrzebuję pobrać parametry tej drugiej linii po zmianie, ale w trakcie programu, który zmienia współrzędne tej pierwszej. Czy to w ogóle możliwe w trakcie jednego programu?

Tak, użyj metod ActiveX:
- zapisanie wskaźnika obiektu jako zmienna <vObj> i np
- każdorazowe (w dowolnym miejscu programu) "odpytanie" typu:
Kod: Zaznacz cały
(vla-get-StartPoint vObj)

zwróci aktualną wartość.
Avatar użytkownika
kojacek
 
Posty: 5450
Dołączył(a): paź 03, 2005 20:17

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez andkal » lip 27, 2018 17:45

W jaki sposób Pan modyfikuje pierwszą linię? poprzez ręczne przesunięcie końca czy poprzez nadanie już zdefiniowanych w jakiejś zmiennej współrzędnych? Czy w programie wskazuje się jedną i drugą linię?
www.autolisps.blogspot.com - Lisp routines for Autocad and Autocad MEP
andkal
 
Posty: 22
Dołączył(a): paź 01, 2017 22:10
Lokalizacja: Kraków

Re: pobranie parametrów obiektu po jego zmianie w trakcie li

Postprzez Mariusz-MK » lip 27, 2018 22:28

Wszystko dzieje się w jednym programie, linię wybieram przez ssget, zamieniam obiekt na vObj i dalej pobieram lub zmieniam parametry przez vl.
Mariusz-MK
 
Posty: 88
Dołączył(a): lip 11, 2008 07:38


Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników