swazy Opublikowano 5 Kwietnia Zgłoś Udostępnij Opublikowano 5 Kwietnia Dobry wieczór, Mam pytanie programistyczne odnośnie szyków. Gdzie i w jaki sposób zapisane są dane poszczególnych elementów szyku? Czy da się uzyskać dane położenia poszczególnych jego elementów? Czy możliwa jest edycja zakresu szyku, liczby elementów czy rozstawu poprzez Lisp'a? I drugie pytanie z innej beczki: czy możliwe jest zaprogramowanie własnych osnapów? Przykładowo chciałbym uzyskać endpoint i middlepoint, ale tylko dla obiektów ze wskazanej warstwy. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 6 Kwietnia Zgłoś Udostępnij Opublikowano 6 Kwietnia Szyki jeśli mówimy o ich geometrycznej reprezentacji są (jak (powszechnie) wiadomo) blokami. Blokami anonimowymi. Ich struktura jest dwupoziomowa i wygląda tak: z obiektów które są powielane tworzone są bloki anonimowe. Następnie już w bloku szyku (również anonimowym) te bloki są układane w szyku prostokatnym, biegunowym lub po ścieżce, w odpowiedniej ilości. Progra(mistycznie) trzeba w pierwszej kolejności: wybrać blok, ma być on anonimowy, i reprezentować szyk (bo nie każdy blok anonimowy nim jest). Tu mozna skorzystać z mojej funkcji jk:BLK_getInsertType (którą znajdziesz TUTAJ). Następnie mając wybrany blok szyku trzeba zbadać jego wszystkie obiekty będą to (rzecz jasna) bloki anonimowe. Tu można skorzystać z funkcji CADPL_Pack-a, o nazwie cd:BLK_GetEntity. Tak na szybko ten proces wykonuje funkcja: ; getinsidearray - by kojacek (defun getinsidearray (Ename / %a) (if (and (setq %a (jk:BLK_getInsertType Ename)) (wcmatch %a "ACDBASSOC*ARRAY") ) (cd:BLK_GetEntity (cdr (assoc 2 (entget Ename))) nil ) (prompt "\nTo nie szyk.") ) ) To może wyglądać tak: Funkcję cd:BLK_GetEntity możesz użyć do zbadania każdego bloku anonimowego w szyku. Druga rzecz: Możliwe, acz (uważam) nie warte zachodu. Można tu wykorzystać taki sam mechanizm tworzenia osnap'ów jak dla funkcji grread. Jak wiadomo funkcja ta nie obsługuje trybów lokalizacji więc... jest w sieci kilka różnych rozwiązań (mniej lub bardziej skomplikowanych), które to symulują. swazy i dmatusz3 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
swazy Opublikowano 6 Kwietnia Autor Zgłoś Udostępnij Opublikowano 6 Kwietnia Dziękuję za odpowiedź. Muszę się z tym przespać i pewnie będę męczył pytaniami dalej A póki co to mam jeszcze jedno pytanie z kolejnej beczki. Jak mogę się dostać do tych danych? To jest point parameter, ale nie ma jego wartości w atrybutach, cd:BLK_GetEntity też tego nie pokazuje. Dodam jeszcze, że to nie jest blok dynamiczny (wg cd:BLK_IsDynamicInsert ). Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
swazy Opublikowano 13 Kwietnia Autor Zgłoś Udostępnij Opublikowano 13 Kwietnia Czy brak reakcji na pytanie oznacza, że w internecie było to wałkowane miliard razy i powinienem sobie to znaleźć (oczywiście próbowałem)? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 15 Kwietnia Zgłoś Udostępnij Opublikowano 15 Kwietnia W dniu 13.04.2024 o 15:37, swazy napisał: Czy brak reakcji na pytanie oznacza, że w internecie było to wałkowane miliard razy i powinienem sobie to znaleźć (oczywiście próbowałem)? Nie. Raczej znaczy że jest to skrajnie trudne. A tak trudno było mi przyznać się do własnej ignorancji. Znam dwa sposoby utworzenia właściwości dla elementu. W pierwszym cały element jest "Custom Entity" czyli właściwości i geometria wyświetlają się tylko jeśli aplikacja jest wczytana. Jeśli aplikacja nie jest wczytana element wyświetla sie jako obiekt typu proxy. W tym przypadku nie znam sposobu dostania się do parametrów elementu. W drugim sposobie jest to tylko element interfejsu, wiec dane dodatkowe mogą nie być nigdzie w nim zapisywane. A mogą mogą być zapisywane w XData, albo Dictionary, Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 15 Kwietnia Zgłoś Udostępnij Opublikowano 15 Kwietnia 36 minut temu, kruszynski napisał: Nie. Raczej znaczy że jest to skrajnie trudne. A tak trudno było mi przyznać się do własnej ignorancji. Znam dwa sposoby utworzenia właściwości dla elementu. W pierwszym cały element jest "Custom Entity" czyli właściwości i geometria wyświetlają się tylko jeśli aplikacja jest wczytana. Jeśli aplikacja nie jest wczytana element wyświetla sie jako obiekt typu proxy. W tym przypadku nie znam sposobu dostania się do parametrów elementu. W drugim sposobie jest to tylko element interfejsu, wiec dane dodatkowe mogą nie być nigdzie w nim zapisywane. A mogą mogą być zapisywane w XData, albo Dictionary, Błędnym założeniem jest że ktokolwiek będzie wiedział skąd się wzięły i jak są zbudowane bloki na komputerze swazy'ego, po zaprezentowaniu obrazka właściwości. Pewnie inaczej sprawy by się miały, gdyby został udostępniony plik dwg. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
swazy Opublikowano 17 Kwietnia Autor Zgłoś Udostępnij Opublikowano 17 Kwietnia W dniu 15.04.2024 o 06:18, kojacek napisał: Pewnie inaczej sprawy by się miały, gdyby został udostępniony plik dwg Wiem, tylko że nie mogę tego udostępnić bo to element sytemu, prawa autorskie, bla, bla, bla.... https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/get-list-of-parameters-being-used-in-block-without-vla-vlax/m-p/8461420#M378276 Wykopałem z czeluści internetów taki post - chodzi mi praktycznie o to samo co w przytoczonym trójkącie. Tylko z tego co rozumiem AutoCad ma (albo miał) wbudowaną funkcję getpropertyvalue. Sprawdzę to jutro (zaraz) w pracy. Czy ZWCAD ma coś analogicznego, albo czy da się takowe wydziobać? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
swazy Opublikowano 18 Kwietnia Autor Zgłoś Udostępnij Opublikowano 18 Kwietnia Przy pomocy: (getpropertyvalue blkEnt "AcDbDynBlockPropertyA1 X") ...udało mi się wyciągnąć współrzędne, które mnie interesują, ale ogrom niewiedzy pozostał... (dumpallproperties blkEnt) Co to właściwie jest i czy da się to w jakiś w miarę łopatologiczny sposób wyjaśnić laikowi co się tutaj wydarza? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 19 Kwietnia Zgłoś Udostępnij Opublikowano 19 Kwietnia @kojacek wytłumaczył tutaj: https://kojacek.wordpress.com/2016/12/01/visual-dumpallproperties/ Niestety na chwilę obecną w ZWCAD to nie jest jeszcze obsługiwane mamy do dyspozycji vlax-dump-object swazy 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ą.