GrzegorzBe Opublikowano 28 Listopada 2014 Zgłoś Udostępnij Opublikowano 28 Listopada 2014 Witam Dzięki wpisowi: http://forum.cad.info.pl/blog/3/entry-81-jak-w-zwcad-doda%C4%87-polecenie-do-paska-narz%C4%99dzi-w-interfejsie-klasycznym/ wiem jak utworzyć swój przycisk. Prosiłbym jednak o odesłanie mnie do materiałów dzięki, którym mógłbym wiedziałbym co wpisać w polu "makro" w mojej sytuacji. Chciałbym aby mój przycisk zaznaczał mi wszystkie linie wybranego koloru (tu: niebieski) w określonym przeze mnie zakresie rysunku. Np: Zaznaczam cały rysunek, klikam mój przycisk i jedyne elementy, które są dalej zaznaczone to tylko linie w kolorze niebieskim - chodzi mi jedynie o odczytanie ich ilości. Powyższą sytuację mogę osiągnąć oczywiście używając polecenia "szybki wybór" następnie zaznaczając obszar, oraz to czego szukam. Jednak z racji, że do pewnych czynności potrzebne mi jest zliczenie linii tylko w kolorze niebieskim chciałbym stworzyć sobie taki przycisk. Dużo z tym roboty? Jak to wykonać? Proszę o poradę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
perlon Opublikowano 28 Listopada 2014 Zgłoś Udostępnij Opublikowano 28 Listopada 2014 Jeśli mogę dać rybę to w załączeniu kawałek zel'a który zlicza niebieskie linie. Podepnij pod przycisk c:countBlueLine załaduj lisp'a i używaj ;-) countBlueLine.zel dmatusz3 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 1 Grudnia 2014 Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 Nie tam żebym się wtrącał czy coś,... ale wystarczy w linii poleceń wpisać: (if (setq % (ssget "_x" '((0 . "LINE")(62 . 5)(410 . "Model"))))(sslength %) 0) i zaakceptować enterem... Takie proste (bezbajtowe wręcz) wklepanie z klawiaturki, ma tę przewagę nad skompilowanymi plikami *.zel (nic im nie ujmując), że można zawsze zmienić dowolnie albo rodzaj obiektu czy kolor, bez tworzenia nowego pliku, definicji polecenia i podpinania ikonek. Może to i mniej spektakularne rozwiązanie, ale w mojej opinii bardziej elastyczne... Jutro kolega będzie chciał wybrać czerwone łuki... i co będzie? dmatusz3 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Martin_S Opublikowano 1 Grudnia 2014 Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 Ok fajnie, ale o takim programowaniu ja nie mam pojęcia i nawet nie wiem jak się zabrać do nauki takich podstaw, mało kto tak potrafi. :) Ale każda pomoc cenna :hi: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
GrzegorzBe Opublikowano 1 Grudnia 2014 Autor Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 Witam Przede wszystkim dziękuję za szybką pomoc. I tak: @perlon: Zapisałem plik countBlueLine.zel na dysku. W ZWCADzie: Narzędzia > Wczytaj aplikację i wczytałem i otrzymałem: Polecenie: _appload C:\e-cad\e-cad wlasne aplikacje\countBlueLine.zel załadowane pomyślnie! Polecenie: Zliczanie niebieskich linii we wskazaniu Copyright (c)2014 by Perlon Ładowanie funkcji c:countBlueLine....... Załadowane.; błąd: źle odczytany znak (ósemkowy): 0 Pod przycisk wpisałem komendę: c:countBlueLine Przy próbie użycia mojego magicznego przycisku dostaję komunikat: Polecenie: c:countBlueLine Nieznane polecenie "C:COUNTBLUELINE". Jak to naprawić? @kojacek Twoje rozwiązanie faktycznie zwraca ilość linii w kolorze niebieskim. Brakuje mi tu jednak możliwości zaznaczania obszaru modelu. Dla przykładu mam 5 rysunków w modelu i chcę zliczyć niebieskie linie tylko na jednym z nich - nad którym aktualnie pracuję. Da się to jakoś poprawić? Warto dodać, że docelowo i tak komendę tę podepnę pod mój magiczny przycisk. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 1 Grudnia 2014 Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 To proste, z wymienionej wyżej linii usuń sekwencję znaków "_x" Wtedy wywołanie: (if (setq % (ssget '((0 . "LINE")(62 . 5)(410 . "Model"))))(sslength %) 0) poprosi Cię o wskazanie obiektów GrzegorzBe 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
GrzegorzBe Opublikowano 1 Grudnia 2014 Autor Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 (edytowane) Kojacek - wielkie dzięki, właśnie o to mi chodziło. Działa super. Powiedz mi jeszcze tylko co to za język programowania abym w przyszłości mógł sam coś kombinować. Edytowane 1 Grudnia 2014 przez GrzegorzBe Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 1 Grudnia 2014 Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 To jeszcze prostsze ;) Język ów nazywa się: AutoLISP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
perlon Opublikowano 1 Grudnia 2014 Zgłoś Udostępnij Opublikowano 1 Grudnia 2014 (edytowane) Witam Przede wszystkim dziękuję za szybką pomoc. I tak: @perlon: Zapisałem plik countBlueLine.zel na dysku. W ZWCADzie: Narzędzia > Wczytaj aplikację i wczytałem i otrzymałem: Polecenie: _appload C:\e-cad\e-cad wlasne aplikacje\countBlueLine.zel załadowane pomyślnie! Polecenie: Zliczanie niebieskich linii we wskazaniu Copyright (c)2014 by Perlon Ładowanie funkcji c:countBlueLine....... Załadowane.; błąd: źle odczytany znak (ósemkowy): 0 Pod przycisk wpisałem komendę: c:countBlueLine Przy próbie użycia mojego magicznego przycisku dostaję komunikat: Polecenie: c:countBlueLine Nieznane polecenie "C:COUNTBLUELINE". Jak to naprawić? Pod przyciskiem powinno być coś w tym stylu : ^C^C(if (not c:countBlueLine)(load"countBlueLine.zel")) countBlueLine plik zel powinien być na ścieżce przeszukiwania zwcad'a albo po load wpisać nazwę pliku z pełną ścieżką dostępu kol. kojcek podał bardzo proste rozwiązanie, moje w zel'u jest nieco bardziej skomplikowane (w tym przypadku gorsze bo dłuższe szacun dla kojacka :hi: ) ale w zasadzie robi dokładnie to samo - zlicza obiekty AcDbLine które mają kolor nr 5 ( dokładnie para z kropką (62 . 5) 62 oznacza kolor obiektu, 5 - kolor niebieski Edytowane 1 Grudnia 2014 przez perlon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi