-
Postów
1457 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
87
Treść opublikowana przez kruszynski
-
Narzędzia do zestawień długości i powierzchni.
kruszynski odpowiedział(a) na kruszynski temat w Wsparcie programistyczne LISP i VisualLISP
Witam Program został dostosowany do ZWCada + 2015. Dopasowanie do wersji bazujących na jądrze IntelliCAD, do których należy ZWCAD 2011 może zająć trochę czasu. Postaram się tym zająć w najbliższym czasie, ale na chwilę obecną trudno jest mi oszacować ile może to potrwać. Pozdrawiam -
Witam Rzeczywiście znaki wstawiane są zawsze w przestrzeni modelu. Przy najbliższej aktualizacji postaram się rozwiązać ten problem.
-
wielolinia odniesienia - szukanie po tekście
kruszynski odpowiedział(a) na padon temat w ZWCAD Classic
Witam Napisałem małego LISPa, który wyszukuje teksty w odnośnikach wieloliniowych. Zapraszam do testowania. Po wczytaniu programu będzie dostępne nowe polecenie MFind , które prosi o wpisanie tekstu do wyszukania i zaznacza odnośniki wieloliniowe zawierające podany tekst. Pozdrawiam MFind.zel -
tak, w chwili obecnej można jedynie importować. podłączanie jak XRefa również ma być, ale jeszcze nie teraz.
-
Tematy, które nie były wcześniej poruszane oczywiście zgłoszę. Przypuszczam, że najtrudniej będzie przekonać ZWSOFT do pomysłu z blokowaniem gripów (temat szósty) ale kto wie, może to również uda się wprowadzić.
-
Zgłoszenie z fazowaniem wartością 0 i z shiftem zostało już zgłoszone i będzie poprawione
-
Tworzenie punktów z opisem według importowanych danych z tabeli
kruszynski odpowiedział(a) na pabloni89 temat w ZWCAD Classic
Wersję testową programu z funkcjonalnością jaką Pan przedstawił przesłałem w wiadomości prywatnej. Proszę o przetestowanie i informację czy funkcjonalność spełnia Pana oczekiwania. -
Tworzenie punktów z opisem według importowanych danych z tabeli
kruszynski odpowiedział(a) na pabloni89 temat w ZWCAD Classic
Na jutro powinno być gotowe. Funkcjonalność będzie dostępna w nakładce ZWGEO dostępnej na ZWCAD Classic. -
Tworzenie punktów z opisem według importowanych danych z tabeli
kruszynski odpowiedział(a) na pabloni89 temat w ZWCAD Classic
Funkcjonalność jaką obecnie posiadamy nie obejmuje wstawiania punktów na określoną warstwę. Oczywiście możemy to dodać. W obecnej wersji "punkty" to nie punkty w znaczeniu CADowym, ale bloki, dzięki temu mamy też łatwą obsługę numerów i nazw punktów. Czy może tak zostać? Jaką wersję ZWCADa Pan posiada? -
Tak. Potwierdzam. Pan Daniel mail otrzymał, i właśnie pisze odpowiedź, a może już nawet ją wysłał.
-
Witam Sprawdziłem temat przyciągania w blokach i potwierdzam wystąpienie problemu. Oczywiście przekażę to do ZWSOFT. Problem występuje tylko na elementach typu polilinie 2d w blokach. Zastanawia mnie jak zostały stworzone te polilinie w Pana rysunku. Funkcje _rectang i _pline tworzą elementy typu Polilinia a nie polilinia2d. Czy to powstało w jakieś nakładce albo jakiejś starej wersji CADa? Temat grup jest mi znany i został zgłoszony do ZWSOFT już jakiś czas temu. API wciąż jest rozwijane. Obecna wersja ma już coś (podstawowa funkcjonalność LISP, ZRX) , ale do osiągnięcia pełnej zgodności łatwości uruchomienia aplikacji dodatkowych, API wymaga jeszcze trochę pracy i czasu . Pozdrawiam
-
Korzystając z LISP spróbowałem odczytać nazwę bloku dynamicznego którego reprezentacją jest blok * Ux. Wymaga to kilku kroków. Może nie będę zanudzał szczegółami, ale w skrócie powiem, że informacja o oryginalnym bloku dynamicznym, nie jest zapisana bezpośrednio w bloku Ux, ale w bloku są odwołania do innych miejsc z bazy danych rysunku, przez które trzeba przejść żeby zidentyfikować bazowy blok dynamiczny. W ZWCAD+ 2015 udaje się to bez problemu, natomiast uruchamiając ten sam program na ZWCAD Classic w pewnym miejscu pojawia się tzw obiekt proxy. W tym przypadku jest to poważny problem, bo żeby móc przetłumaczyć proxy na blok dynamiczny sam ZWCAD musi mieć obsługę tych bloków. Niestety na chwilę obecną nie daje nam to możliwości odczytania nazwy oryginalnego bloku dynamicznego w ZWCAD Classic. Natomiast z deklaracji ZWSOFT wynika, że w ZWCAD 2017 obsługa bloków dynamicznych ma być analogiczna jak w ZWCAD+ 2015.
-
LISP - wielolinia odniesienia
kruszynski odpowiedział(a) na gruzin temat w Wsparcie programistyczne LISP i VisualLISP
W ZWCAD+ 2015 można utworzyć styl multilinii korzystając z funkcji entmakex: (defun AddMLeaderStyle ( stylename data / dict item ) (cond ( (not (setq dict (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_MLEADERSTYLE"))))) nil ) ( (setq item (dictsearch dict stylename)) (entmod (cons (assoc -1 item) data)) ) ( (setq item (entmakex data)) (dictadd dict stylename item) ) ) ) (AddMLeaderStyle "test" '( (0 . "MLEADERSTYLE") (100 . "AcDbMLeaderStyle") (179 . 2) (170 . 2) (171 . 1) (172 . 0) (90 . 2) (40 . 0.0) (41 . 0.0) (173 . 1) (91 . -1023410173) (92 . -2) (290 . 1) (42 . 1.0) (291 . 1) (43 . 1.0) (3 . "Standard") (44 . 1.0) (300 . "") (174 . 1) (178 . 1) (175 . 1) (176 . 0) (93 . -1073741824) (45 . 1.0) (292 . 0) (297 . 0) (46 . 0.18) (94 . -1056964608) (47 . 1.0) (49 . 1.0) (140 . 1.0) (293 . 1) (141 . 0.0) (294 . 1) (177 . 0) (142 . 1.0) (295 . 0) (296 . 0) (143 . 1.0) (271 . 0) (272 . 9) (273 . 9) ) ) Znaczenie poszczególnych kodów DXF opisane jest np tutaj: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-0E489B69-17A4-4439-8505-9DCE032100B4 Postaram się dowiedzieć jak dodać style w ZWCAD Classic i jakie są plany odnośnie ZWCAD 2017 AddMLeaderStyle.lsp -
Importowanie i eksportowanie właściwości rysunku
kruszynski odpowiedział(a) na Marek-M temat w ZWCAD+ 2015
Witam Przygotowałem program pozwalający wczytywać właściwości rysunku z pliku jaki Pan przesłał. Nazwy właściwości powinny być w pierwszym wierszu w kolejnych kolumnach, wartości w wierszu drugim, tak jak na Pana przykładzie w pierwszym arkuszu Pozdrawiam. ImportWlasciwosci.zel -
Importowanie i eksportowanie właściwości rysunku
kruszynski odpowiedział(a) na Marek-M temat w ZWCAD+ 2015
Witam Właściwości rysunku można czytać przez lisp . Author = "zxczxc" Comments = "zcxzxczxczcz" HyperlinkBase = "czc" Keywords = "zxcz" LastSavedBy = "kruszynski" RevisionNumber = "" Subject = "sddd" Title = "asd" Po świętach postaram się przygotować programik, który będzie zapisywał właściwości do pliku CSV i zapisywał właściwości z CSV do rysunku ZWCAD. Czy może Pan przesłać przykładowe dane w Excelu, jakie chce Pan importować? Pozdrawiam -
-
Witam. Ten format pliku shp który ja znam, to czcionki. Oczywiście nie zaprzeczam, że dane GIS można zapisywać w formacie, który ma taką samą nazwę. Sam ZWCAD nie posiada funkcjonalności, pozwalającej bezpośrednio wczytać taki plik. Pozdrawiam
-
ZWCAD 2017 - propozycje nowych funkcji lub usprawnienia istniejących.
kruszynski odpowiedział(a) na Chris temat w ZWCAD Standard i Professional
W tej wersji nie ma jeszcze VBA. -
Proszę o pomoc w przerobieniu pliku Lispa
kruszynski odpowiedział(a) na maciejmar111 temat w Wsparcie programistyczne LISP i VisualLISP
Pod względem składni LISP do ZWCADa i do AutoCADa jest taki sam. Natomiast ze względu na ochronę praw autorskich programy LISP zwykle są kompilowane (AutoCAD) lub szyfrowane (ZWCAD). Jeśli się nie mylę to zaszyfrowanego w ZWCAD plik LSP lub ZEL nie można wczytać w AutoCadzie. -
Wybieranie elementów, Visual Lisp, edycja bloku
kruszynski odpowiedział(a) na 2P temat w Wsparcie programistyczne LISP i VisualLISP
Proszę zobaczyć jak działa program z załącznika. Cały trik oparty jest na takiej sztuczce, że uruchamiając polecenie refedit zapisujemy uchwyt elementu ostatnio zapisanego do bazy, następnie w funkcji odfiltrowujemy wszystkie elementy, których uchwyty, zostały dodane przed rozpoczęciem działania funkcji refedit. (setq g_lastHandle nil g_tmpHandel nil) (defun callbackStart(obj lst) (if (= "REFEDIT" (car lst)) (setq g_lastHandle (cdr (assoc 5 (entget (entlast))))) ) ) (defun callbackEnd(obj lst) (if (= "REFCLOSE" (car lst)) (progn (setq g_tmpHandel g_lastHandle) (setq g_lastHandle nil) ) ) ) (defun callbackAbort(obj lst) (if (= "REFEDIT" (car lst)) (setq g_lastHandle nil) ) (if (= "REFCLOSE" (car lst)) (setq g_lastHandle g_tmpHandel) ) ) (if (null refeditDetect) (setq refeditDetect (vlr-command-reactor nil '((:vlr-commandWillStart . callbackStart) (:vlr-commandEnded . callbackEnd) (:vlr-commandCancelled . callbackAbort) (:vlr-commandFailed . callbackAbort))))) (defun getRefeditSS( / elst en i len ss) (setq ss (ssget)) (if g_lastHandle (progn (setq i 0 len (sslength ss)) (setq elst nil) (while (< i len) (setq en (ssname ss i)) (setq elst (cons en elst)) (setq i (1+ i)) ) (foreach en elst (if (<= (cdr (assoc 5 (entget en))) g_lastHandle) (ssdel en ss) ) ) ) ) ss ) (defun c:foo() (print (sslength (getRefeditSS) )) (princ) ) ssget_refedit.lsp -
Wybieranie elementów, Visual Lisp, edycja bloku
kruszynski odpowiedział(a) na 2P temat w Wsparcie programistyczne LISP i VisualLISP
Witam Nie znam jakiegoś prostego , oczywistego sposobu ograniczenia wyboru elementów w edytowanym bloku Proszę powiedzieć coś więcej. może przykład użycia ssget jaki Pan stosuje ? postaram się coś wymyślić albo dowiedzieć. Pozdarawiam -
OK, teraz rozumiem. Przekazałem temat do ZWSOFT
-
Dzień dobry Staram się powtórzyć takie działanie programu, ale na ZWCAD+ 2015 i ZWCAD Classic przy domyślnych ustawieniach takie objawy nie powtórzyły się. Czy może Pan przesłać przykładowy plik, na którym można to sprawdzić? Być może jest to kwestia ustawień np wyrównanie tekstu, a może coś ze stylem tekstu. Jaka jest rola LISP w tym zagadnieniu? czy chodzi tylko o to, że LISPem odczytuje Pan punkt wstawienia tekstu? czy jest różnica kiedy mirror wykonywany jest przez polecenie ZWCADa? czy LISPem? Pozdrawiam
-
ZWCAD 2017 - propozycje nowych funkcji lub usprawnienia istniejących.
kruszynski odpowiedział(a) na Chris temat w ZWCAD Standard i Professional
Dzisiaj otrzymałem informacje z pierwszej ręki. Poza tym co powyżej (siatka AutoCADowa , praca na platformach Max, Linux, Apple, Render ) w wersji 2017 ma być - Annotation Scale - Selection preview - Współpraca ze stylami STB Może nie wszystko uda się w pierwszej oficjalnej wersji, ale w wersji 2017 powinno być. Być może uda się opracować jeszcze coś więcej. -
Najmniejszy opisany prostokąt - LISP
kruszynski odpowiedział(a) na Iskra temat w Wsparcie programistyczne LISP i VisualLISP
Użyłem tego sposobu bo z niego korzystam i sprawdza się. Skoro są inne nie zabraniam ich przedstawienia. Chce natomiast wskazać na to że jakoś to trzeba ogarnąć. Można użyć entsel i musieć pamiętać, że w przyszłości trzeba będzie tą wisienkę na tort położyć albo użyć Biblioteka:Entsel i mieć temat załatwiony. A w kwestii czytelności to właśnie o to chodzi że tylko w drugim przypadku trzeba prześledzić kod i na jego podstawie wyciągać wnioski. Korzystając z nazwanej funkcji można śledzić ten kod jeśli to właśnie jego dotyczy zmiana, którą chcemy wprowadzić, albo szukać innej części kodu, gdzie chcemy coś zmienić. Na początku powołałem się na Roberta C. Martina. Jakiś czas temu czytałem :http://helion.pl/ksiazki/agile-programowanie-zwinne-zasady-wzorce-i-praktyki-zwinnego-wytwarzania-oprogramowania-w-c-robert-c-martin-micah-martin,agile.htm I inne tego samego autora. Przykłady są akurat w C#, ale to zupełnie nieistotne koncepcje są uniwersalne. Ta lektura zmieniła moje spojrzenie na programowanie. Polecam każdemu kto zajmuje się, lub chciałby w przyszłości zajmować się programowaniem. Ważna kwestia jest taka, że pisząc kod musimy tak samo analizować HasArcSegment i (zerop (apply '+ (mapcar 'abs (cd:DXF_massoc 42 EntityList)))) Ale kod pisze się tylko raz, a czyta wiele razy. I właśnie wtedy jasne stają się korzyści z funkcji i z używania dobrze dobranych nazw funkcji. Wyobraźmy sobie funkcję na 300, 1000 linii kodu (sam takie pisałem i pisali takie też Ci od których się uczyłem). Trzeba w takim kodzie, dokonać prostej zmiany, możemy przeczytać i przeanalizować dużą część zanim znajdziemy to co potrzeba, jeśli tą samą funkcję podzielimy na kilka mniejszych, wyszukanie tej linijki kodu, którą trzeba zmienić trwa dużo krócej właśnie dlatego, że nie trzeba śledzić każdej linijki, a tylko te, które są bezpośrednio powiązane z celem zmiany. Oczywiście możemy przyjąć że znamy program i pamiętamy gdzie co jest i nie musimy czytać żeby znaleźć. Ja nie mam tak dobrej pamięci. Przyznaję, że jeśli muszę coś zmienić w kodzie który pisałem lata temu, muszę to analizować i często robi mi się przykro że wtedy nie pisałem tak jak teraz. Cały rozdział jest też poświęcony komentarzom w kodzie, polecam.