kaminki Posted November 14, 2017 Report Share Posted November 14, 2017 Mam okrąg w kilku egzemplarzach na rysunku. Gdy modyfikuję jeden dowolny to pozostałe również zmieniają się. Czy jest inny sposób niż przez bloki? Czy zadziałałoby to poprzez użycie "event handle"? - utworzyć nod do przechowywania informacji o nazwie np. "my_circle" - narysowanie okręgu o promieniu r - dodanie jego ObjectId do my_circle - kopiowanie okręgu oraz dla każdej kopi dodanie Objectid do tego samego my_circle - każdy okrąg w xdate będzie zawierał tekst "my_circle" -> potrzebne do identyfikacji wszystkich okręgów powiązanych z nod o takiej samej nazwie - każdy okrąg będzie posiadał załadowany event handle do metody analizuj() (handle wrażliwe na modyfikację obiektu) - a w metodzie analizuj(): * gdy zostanie wywołane to znak, że obiekt został zmodyfikowany. Zapamiętanie zmienionego obiektu. Pobranie z xdata jego nazwy, przejście do nod -> my_circle i w pętli po wszystkich obiektach odczyt ObjectId -> pobranie każdego rzeczywistego obiektu, usunięcie go i podstawienie w to miejsce zmodyfikowanego okręgu. Jeżeli oczywiście można bezproblemowo użyć zapisu o ObjectId jako string do odszukania na rysunku obiektu okręgu. Czy jest to dobra droga do rozwiązania problemu? Jeszcze nie pisałem tego, a chciałbym dowiedzieć się czy jest możliwe takie rozwiązanie lub może istnieje lepsze podejście. kruszynski 1 Quote Link to comment Share on other sites More sharing options...
kruszynski Posted November 15, 2017 Report Share Posted November 15, 2017 Na C# się nie znam , więc się wypowiem, co mi zależy Teoretycznie powinno to zadziałać. - Gdyby to był LISP należałoby utworzyć reaktor :vlr-modified który wykonywałby operacje po modyfikacji okręgu. Podejrzewam, że tą rolę w C# pełni nod 16 godzin temu, kaminki napisał: - kopiowanie okręgu oraz dla każdej kopi dodanie Objectid do tego samego my_circle - Proszę zwrócić uwagę, żeby ObjectId dodawąć do reaktora nie tylko przy poleceniu _copy, ale też _mirror, _offset, _array, _pasteclip , _copym i wszystkie inne podobne A może lepiej użyć reaktora na dodanie elementu do bazy danych w LISP byłoby to coś jak to: (setq appobjvlr (vlr-acdb-reactor nil '((:vlr-objectAppended . objectAppended)))) 16 godzin temu, kaminki napisał: - każdy okrąg w xdate będzie zawierał tekst "my_circle" -> potrzebne do identyfikacji wszystkich okręgów powiązanych z nod o takiej samej nazwie Nie jestem pewien, ale może listę elementów podpiętych pod reaktor można pozyskać bezpośrednio z reaktora ( w LISP jest to funkcja vlr-owners) , w takim przypadku nie byłoby potrzeby tworzyć dodatkowej XDaty. Ciekawy temat. Proszę dać znać czy udało się uzyskać zamierzony efekt . Quote Link to comment Share on other sites More sharing options...
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.