kruszynski

Moderatorzy
  • Postów

    1481
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    94

Treść opublikowana przez kruszynski

  1. Ta wersja powinna działać na ZWCAD+ 2015 i ZWCAD 2017 DimToBack.lsp
  2. W załączniku poprawka która nadpisuje właściwości. ImportWlasciwosci.zel
  3. Mogę przygotować takiego LISPa, ale proszę na początek o odpowiedzi na kilka pytań: Automatyczną numerację atrybutów można różnie zrozumieć. np czy kolejne atrybuty w tym samym bloku maja mieć kolejne numery? czy jeden atrybut w różnych blokach ma mieć kolejne numery? Treść która była wcześniej ma się nadpisywać? czy numer ma się dopisywać przed/po aktualnej treści? Jak chciałby Pan używać funkcji? czy chce Pan wybierać bloki ? czy mają się same wybierać np po nazwie / warstwie / dotychczasowej treści któregoś z atrybutów? Może udostępniłby Pan jakiś mały przykład pliku, w którym moglibyśmy zobaczyć jak będzie wyglądał rysunek przed i jak jak powinien wyglądać rysunek po użyciu funkcji.
  4. Pliki fas, to LISP skompilowany w AutoCADzie. Proszę skontaktować się z autorem nakładki. Dysponując kodem źródłowym twórca może zaszyfrować plik w ZWCADzie do formatu zel, który będzie mógł Pan wczytać.
  5. OK, dodam taką możliwość
  6. chciałem podejrzeć wartość tej właściwości na działającym ZWCADzie. (setq display (vla-get-display (vla-get-preferences (vlax-get-acad-object)))) ( vlax-dump-object display t ) zobaczyłem że nil i (RO) czyli ReadOnly. więc zapytałem ZWSOFT jak można to ogarnąć Dam znać co odpowiedzą.
  7. tak na szybko to dlatego, że IZcadPreferencesDisplay nie ma jeszcze właściwości GraphicsWinModelBackgrndColor postaram się ustalić jak można to rozwiązać
  8. ok, w przyszłości dodam możliwość pomiaru względem aktualnego UCS.
  9. A mógłby Pan napisać coś więcej o tym co rozumieć jako "nie działa" ?
  10. Nie znam sposobu żeby ustawić w ZWCAD wzory kreskowania w innym katalogu.
  11. Załączam jeszcze pliki wzorów Hex.pat SOIL.pat
  12. Wzoru kreskowania HEX nie ma w pliku ZWCAD.pat w w ZWCAD 2017. Utworzyłem pliki soil.pat i hex.pat w katalogu: c:\Users\xxx\AppData\Roaming\ZWSoft\ZWCAD\2017\en-US\Support\ To wystarczyło, żeby wzory stały się w dostępne ZWCAD 2017.
  13. to może tak: (defun c:zz () (setq sciezka(car(entsel "\nWskaż ścieżkę wyciągania \n"))) (print "\nWskaż wszystkie powierzchnie") (setq pow3D (ssget)) (command "_Extrude" pow3d "" "_P" sciezka "" ) )
  14. Jeszcze czegoś nie rozumiem, Kiedy czytałem to pierwszy raz pomyślałem o wyciąganiu w sensie zamiany np prostokąta na prostopadłościan. Jeśli tak, to to się robi funkcją _sweep a nie _extrude. W takim przypadku cały kod mógłby wyglądać tak: (defun c:zz () (setq sciezka(car(entsel "\nWskaż ścieżkę wyciągania \n"))) (print "\nWskaż wszystkie powierzchnie") (setq pow3D (ssget)) (setq i 0) (while (< i (sslength pow3D)) (setq JednaPow (ssname pow3D i )) (command "_sweep" JednaPow "" sciezka ) (setq i (1+ i) ) ) ) Chyba że chodzi o wyciąganie pojedynczej powierzchni w bryle (_extrude) ale to już ciut bardziej skomplikowane /
  15. A jakiś komunikat błędu jest? czy jak nie działa Bardziej dziwi mnie że działa na powierzchni 3d niż że nie działa. To jest zupełnie niepotrzebne: (setq wszystkie nil ) (setq wszystkie (append wszystkie (list (cdr JednaPow)))) Jedną powierzchnię ze Zbioru selectionset wybiera się tak: (ssname pow3D i) gdzie i to kolejny index. kod: (setq JednaPow (assoc 10 pow3D)) Wyświetla mi komunikat: Error: incorrect type - <Selection Set: ffd188c0> I w sumie racja bo assoc wybiera z listy element powiązany z liczbą 10. a nie 10 czy 11 element z listy.
  16. (setq wierzchołek (assoc 10 polilinia)) to współrzędne w formacie (10 x y z) A Ty chcesz odczytywać współrzędne z listy wszystkich współrzędnych, a nie z listy współrzędnych jednego wierzchołka (setq x2 (nth 0 wierzchołki) y2 (nth 1 wierzchołki)) Powinno być: (setq wierzchołek (cdr wierzchołek )) (setq x2 (nth 0 wierzchołek) ) (setq y2 (nth 1 wierzchołek) ) Czyli całość: (defun c:yy () (setvar "dimzin" 2) (setq PozOdn (getreal "\nPodaj poziom odniesienia \n")) (setq P1 (getpoint "\nWskaz początek ukladu wspolrzednych \n")) (setq x1 (nth 0 P1) y1 (nth 1 P1)) (setq polilinia(entget (car(entsel "\nWskaż polilinię \n")))) (setq wierzchołki nil ) (while (setq wierzchołek (assoc 10 polilinia)) (setq wierzchołki (append wierzchołki (list (cdr wierzchołek)))) (setq polilinia (cdr (member wierzchołek polilinia) ) ) (setq wierzchołek (cdr wierzchołek )) (setq x2 (nth 0 wierzchołek) ) (setq y2 (nth 1 wierzchołek) ) (setq rzedna (+ PozOdn (/ (- y2 y1) 5))) (command "_text" wierzchołek "" "" (RTOS rzedna 2 2)) ) );KONIEC
  17. Obie funkcje Obrót3d i Lustro3d powinny być dostępne w wersji kolejnej aktualizacji.
  18. Dziękuję za zgłoszenie przekazałem do ZWSOFT
  19. W najbliższej wersji jeszcze nie będzie to obsługiwane, ale widać że coś przy tym majstrują.
  20. jeszcze taki bonus: Jeśli ma Pan problem typu: może Pan sprawdzić poszczególne paramtery i ich wartości : (entget(car(entsel)))
  21. Poszczególne kody DXF może Pan znaleźć np tutaj: http://www.autodesk.com/techpubs/autocad/acad2000/dxf/ Błędna wartość w linii: (setq sel1 (ssget "X" (list (cons 0 TEXT)(cons 1 stary_napis)(cons 8 warstwa))))) to TEXT. Użyte w ten sposób znaczy że TEXT to zmienna. Powinno być "TEXT" (setq nazwa_napisu (ssname napis 1)) ; Informole liczą od 0 a nie od 1. prosze uważać. podmiana wartości tekstu powinna wyglądać tak: (setq nowy_napis2 (subst (cons 1 nowy_napis) (assoc 1 zmiana) zmiana))
  22. W ciągu kilku najbliższych dni postaram się przygotować taki program.
  23. może to dlatego, że są dwie pętle (repeat ) W pierwszej przypisywana jest kolejno wartość do zmiennej lista_dxf. Druga pętla przechodzi tyle samo razy przez zmienną, której wartość nie jest nigdzie aktualizowana.
  24. Ja też się dziwiłem kiedy pierwszy raz się z tym spotkałem ;)