-
Postów
264 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
41
Treść opublikowana przez kojacek
-
Ustalenie koloru (choć nie tylko) na JakWarstwa dla elementów bloków uważam (nie tylko ja zresztą) raczej za wadę a nie zaletę. Sposób tworzenia bloków (warstwa "0" / kolor / rodzaj linii / szerokość linii ByBlock itd.) to osobny duży temat. O kolorach (i nie tylko) ByLayer i ByBlock pisałem TUTAJ. Zaś z przemianami cech wszelkich elementów bloków, w sposób masowy (czy też jednostkowy) można zapoznać się TU.
-
Mam dwie uwagi. 1) AutoCAD-we SETBYLAYER zmienia więcej właściwości niźli tylko kolor: 2) Jeżeli zaś chodzi o kolor tylko, mam wrażenie że to można załatwić używając amunicji mniejszego kalibru, Wystarczy wiedzieć że w danych DXF obiektu kod 62 odpowiada za jego kolor. I tak jeśli kod 62 ma wartość 256 (lub w danych nie ma tego kodu) to obiekt ma kolor logiczny jakwarstwa. Wynika z tego że wystarczy manipulować wartością kodu 62 danych DXF obiektu. Klasycznie entmodem, bez żdnych com... vla-... etc. Tak samo można w inteligentny sposób wybierać obiekty do zmiany (po co wybierać te które już są JakWarstwa?). Poniższy kod wystarczy aby wybrać obiekty z niezamknietych warstw i które nie mają koloru JakWarstwa i takimi je uczynić: (if (setq ss (ssget "_:L" '((-4 . "/=")(62 . 256))) ) (foreach % (cd:SSX_Convert ss 0) (cd:ENT_SetDXF % 62 256) ) ) Wykorzystuję tu dwie funcje biblioteczne CADPL-Pack-a, który krótko przedstawiam tutaj.
-
Zapraszam do czytania mojego bloga na: https://kojacek.wordpress.com
-
Uruchamianie zewn. programów w ZWCAD
kojacek odpowiedział(a) na Strzelba temat w ZWCAD Standard i Professional
LISP-em, najprościej użyć funkcji startapp. Zobacz tutaj: https://kojacek.wordpress.com/2016/07/31/pliki-szybki-dostep/ -
Pomoc przy lispie
kojacek odpowiedział(a) na adrian_SKA temat w Wsparcie programistyczne LISP i VisualLISP
Może tak (czując się wywołanym linkiem): Uproszczony kod: ; -------------------------------------------------------------------------------------- ; ; 2021 by kojacek (defun C:LPOLY (/ GetObjectID getObj l b v i) (defun GetObjectID (obj doc) ;; Lee Mac (if (eq "64" (strcase (getenv "PROCESSOR_ARCHITECTURE"))) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false) (itoa (vla-get-Objectid obj)) ) ) (defun getObj (/ e) (if (setq e (car (entsel "\nWybierz obiekt do zmierzenia: "))) (if (member (cdr (assoc 0 (entget e))) (list "LINE" "ARC" "LWPOLYLINE") ) e ) ) ) (defun GetBlk (BlkList Att / e d a) (if (setq e (car (entsel "\nWybierz blok opisuący: "))) (if (and (setq d (entget e)) (setq a (mapcar '(lambda (%)(cdr (assoc 2 (entget %)))) (cd:BLK_GetAttEntity e) ) ) (= "INSERT" (cdr (assoc 0 d))) (member (cdr (assoc 2 d)) BlkList ) (member Att a) ) e ) ) ) (if (and (setq l (getObj)) (setq b (GetBlk (list "KABEL" "OBIEKT_OCHRONNY") "MEASURED_LENGTH" ) ) ) (progn (setq v (GetObjectID (vlax-ename->vla-object l) (cd:ACX_ADoc) ) i (strcat "%<\\AcObjProp Object(%<\\_ObjId " v ">%).Length \\f \"%lu2%pr2\">%" ) ) (cd:SYS_UndoBegin) (cd:BLK_SetAttValueVLA b "MEASURED_LENGTH" i ) (vla-Regen (cd:ACX_ADoc) acActiveViewport) (cd:SYS_UndoEnd) ) (princ "\nZły wybór") ) (princ) ) ; -------------------------------------------------------------------------------------------- ; Wymagane jest załadowanie CADPL-Pack'a: https://kojacek.wordpress.com/2015/11/04/cadpl-pack/ Nazwy bloków, tagi atrybutów i format Field-a, trezba sobie "podkręcić" po swojemu. -
Automatyczny podział rysunku wykonanego w modelu na arkusze
kojacek odpowiedział(a) na dmatusz3 temat w ZWCAD Standard i Professional
Najprostszym rozwiązaniem byłoby wstawianie bloku (w formie owego prostokata) w modelu, który byłby na podstawie jego punktu wstawienia, obrotu (+ informacji o skali) reprezentowany (rzutnią) w osobnym Layoucie. To bylo juz klepane na cad.pl parę lat temu. -
Program obracania o 90 stopni bloku prawym przycisk. myszy
kojacek odpowiedział(a) na Adam_x temat w Wsparcie programistyczne LISP i VisualLISP
-
Program obracania o 90 stopni bloku prawym przycisk. myszy
kojacek odpowiedział(a) na Adam_x temat w Wsparcie programistyczne LISP i VisualLISP
Przyznam że nie rozumiem idei tegoż, jak też i zamysłu całości. Po co tak obrac bloki? Ale się nie znam pewnie. -
Program obracania o 90 stopni bloku prawym przycisk. myszy
kojacek odpowiedział(a) na Adam_x temat w Wsparcie programistyczne LISP i VisualLISP
Co to za konstrukcja ???: (while (= 1 1) -
Co dzisiaj robiłem w lispie?
kojacek odpowiedział(a) na wedzik temat w Wsparcie programistyczne LISP i VisualLISP
-
Co dzisiaj robiłem w lispie?
kojacek odpowiedział(a) na wedzik temat w Wsparcie programistyczne LISP i VisualLISP
Po paru nawiasach? Nie zniechęcaj się... jeszcze za wcześnie... ;) Są gorsze języki programowania... :) -
[AutoLisp] Zmiana widoczności warstwy.
kojacek odpowiedział(a) na swazy temat w Wsparcie programistyczne LISP i VisualLISP
Byłoby dziwne gdyby wpółpracował. Lista z tblsearch nie jest poprawną listą dla entmod. Użyj tu formy entget + tblobjname. Zobacz: (setq e (tblobjname "layer" "zbrojenie_linie" )) (setq d (entget e)) (entmod (subst (cons 62 -8)(assoc 62 d) d)) a to prowadzić może do bardziej ogólnej funkcji: (defun LayOnOff (Lay / e d) (if (setq e (tblobjname "LAYER" Lay)) (progn (setq d (entget e)) (setq d (subst (cons 62 (* -1 (cdr (assoc 62 d))) ) (assoc 62 d) d) ) (entmod d) ) ) ) Funkcja steruje widocznością warstwy podanej jako jej argument tak jak przełącznik, wywołaj kolejno: (LayOnOff "zbrojenie_linie") -
Problem z wprowadzaniem tekstu
kojacek odpowiedział(a) na IIIapcIII temat w ZWCAD Standard i Professional
1) Sugerowałbym próbę wpisywania tekstu ze spacjami. -
W AutoCAD jest zmienna o nazwie MIRRHATCH
-
Domyślne wartości zmiennych systemowych
kojacek odpowiedział(a) na perlon temat w ZWCAD Standard i Professional
Link jest już poprawiony -
Domyślne wartości zmiennych systemowych
kojacek odpowiedział(a) na perlon temat w ZWCAD Standard i Professional
Ładowanie ustawień zmiennych z pliku na żądanie: https://kojacek.wordpress.com/2015/11/24/setvar-z-pliku/ -
Witam, parę uwag: 1) Wskazanie punktu. To standardowa funkcja LISP-a, getpoint - trzeba wskazać punkt, może być podany jako odległość, ale w formie "przyrostowej" @dist<angle. Pomyślę (w przyszłości) o dodaniu opcji (słowa kluczowego) do odległości. Wtedy dodatnia wartość przesunie linie "na zewnątrz" (od punktów zaczepienia) a ujemna "do wewnątrz". Obecnie (proszę zwrócić uwagę) wskazanie punktu nie wymaga trybu ortogonalnego, punkt można wskazać w dowolnym miejscu, a linie zostaną ustawione w miejsciu przechodzenia przez ten punkt. 2) Poprawię obsługę błędów, 3) Program z założenia "przesuwając" linie wymiarowe, w rzeczywistości modyfikuje wymiary w taki sposób że punkty zaczepienia pozostają w niezmienionym miejscu, czyli tak jakby (wymiary) były rozciągane. Uważam to za zaletę, a nie wadę. Idea przesuwania wymiarów, kłóci się w mojej opinii, z zasadami poprawnego wymiarowania, które powinno być (w miarę możliwości) maksymalnie zespolone z wymiarowanymi obiektami. Przesuwanie wymiaru niszczy to połączenie. Na marginesie: na Pańskim obrazku te "wymiary BIK" mogły by mieć zdefiniowane krótkie linie pomocnicze i (nadal) posiadać zespolenie, czyli gripy w pierwotnych punktach, bez względu na położenie linii wymiarowch. Podsumowując - do przesuwania wymiarów proszę je po prostu przesuwać, bez korzystania z DIM-MO. Raczej tego nie zamierzam zmieniać.
-
Tutaj: https://kojacek.wordpress.com/2020/04/16/dim-mo/ już jest.
-
-
Polilinia lub multilinia z bezbarwnym wypełnieniem
kojacek odpowiedział(a) na m72 temat w ZWCAD Standard i Professional
https://kojacek.wordpress.com/2017/09/22/edycja-multilinii/ -
Rysowanie linii o takiej długości jak wskazany obiekt.
kojacek odpowiedział(a) na dmatusz3 temat w ZWCAD Standard i Professional
Jakieś osiem (!) lat temu na innym forum podobne zagadnienie było omawiane: http://forum.cad.pl/prostowanie-polilinii-t77940.html Kody też tam chyba były. Bezpłatnie. No i jawne... 😉 -
Automatyczna numeracja
kojacek odpowiedział(a) na Harry temat w Wsparcie programistyczne LISP i VisualLISP
Czy to jest etyczne? Masz pewność że autor wyraża zgodę na przerabianie swojego programu? -
Automatyczna numeracja
kojacek odpowiedział(a) na Harry temat w Wsparcie programistyczne LISP i VisualLISP
Czy to legalne? -
DRAWORDER dla warstw (i bloków)
kojacek odpowiedział(a) na Chris pytanie w Propozycje nowych funkcji
1. Jeśli prośba o elastyczność, to mam nadzieję że zgodzimy się do pewnych faktów: a) AutoCAD obsługuje 3D od 1985 roku. b) Draworder jest dostępny od 1997, ale nie ma nic wspólnego z 3D. 2. Teraz znów o DRAWORDER: Mówiąc cały czas o DRAWORDER, musimy mieć na uwadze że nie ma on nic wspólnego z modelowaniem czy rysowaniem w 3D. Zatem dywagacje na temat współrzędnej Z są bezcelowe - DRAWORDER nie zmienia położenia obiektów w przestrzeni. Mało tego - położenie obiektów w przestrzeni 3D nie determinuje kolejności ich wyświetlania. Można w prosty sposób przekonać się że obiekty o mniejszej wspórzędnej Z "przykrywają" obiekty znajdujące się w przestrzeni "wyżej". I tego rodzaju "problemy" rozwiązuje właśnie DRAWORDER. Powstał na zapotrzebowanie wizualizacji projektu i tworzenia grafiki prezentacyjnej. Steruje porządkiem wyświetlania obiektów, a nie ich położeniem w przestrzeni. 3. Kulą w płot jest argumentacja dotycząca parametru Elevation dla polilinii, mająca wyjaśniać domniemane "wdrażanie 3D drobnymi krokami" i "ciążenia tego do dziś". Proszę o zapoznanie się ze strukturą danych obiektów LWPOLYLINE i POLYLINE. 4. Całkowitym nieporozumieniem zaś jest przytaczanie opisu strony html. Choć pozornie ma również związek z kolejnością wyświetlania, dotyczy jednak zupełnie czegoś innego. -
DRAWORDER dla warstw (i bloków)
kojacek odpowiedział(a) na Chris pytanie w Propozycje nowych funkcji
Bzdura. Obsługa obiektów w przestrzeni trójwymiarowej datuje się od wersji AutoCAD 2.1 (Release 6 - maj 1985). Polecenie DRAWORDER jest zaś dostępne od wersji AutoCAD R14 (luty 1997). Zatem nie ma i nie było tu żadnej próby rozwiązywania czegokolwiek w 3D. Powtórzę raz jeszcze. W AutoCAD obiekty wyświetlane są domyślnie w kolejności tworzenia (nowy "przykrywa" stary), chyba że zostanie zastosowany DRAWORDER właśnie. I dotyczy to tylko kolejności wyświetlania, a nie umiejscowienia w przestrzeni. Dotyczy tylko obiektów graficznych, a nie warstw, definicji bloków, słowników, stylów tekstu, wymiarowania itp. To ma i miało od początku zastosowanie do określenia porządku wyświetlania obiektów w rzeczywistości się pokrywających (np. aby obwiednia obiektu "nakładała się" na jego kreskowanie, teksty opisujące były "na wierzchu" linii itp.)