Assgarth

Użytkownik forum
  • Postów

    218
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Treść opublikowana przez Assgarth

  1. Witam, czy w najbliższym czasie jest opcja, że ZwCAD wprowadzi funkcję "vla-get-ActiveSelectionSet" do szeregu funkcji VisualLisp'a? pozdrawiam
  2. Dokładnie jest to wysokość wycinka w jednostkach, odpowiadająca wysokości średniego znaku alfanumerycznego. Wartości te można pobierać za pomocą funkcji "dimx_tile" oraz "dimy_tile" i mogą one przyjmować wartości rzeczywiste. W AutoCAD nie ma problemu z wyświetleniem wysokości o wartości np. 0.05, natomiast ZwCAD przyjmuje taką wartość (nie zgłasza błędu), ale wyświetla jako 1.0. Co ciekawsze np. inny_cad również ma z tym problem, więc przyczyny szukałbym w samym źródle, czyli jądrze IntelliCAD... Będę wdzięczny za informacje, jakie napłyną w tej sprawie z ZwSoft.
  3. Witam, zauważyłem, że ZwCAD dla wycinka "image" w definicji okna DCL, nie przyjmuje wysokości mniejszych niż 1.0. Dla przykładu: : row { fixed_height = true; : image { height = 0.05; width = 10; color = black; } } Zabawa w tworzenie takiej linii poprzez slajd, również nie przynosi skutków, z tego samego powodu - wysokość "height" nie przyjmuje wartości mniejszych od 1.0. Może nie jest to błąd typowy, ale raczej mniejsze możliwości parametryzacji obiektu. Niemniej warto to zgłosić, aby rozbudowali funkcję, dzięki czemu program będzie jeszcze bardziej kompatybilny z innymi systemami CAD.
  4. Witam, poszukuję skutecznej metody aktualizacji wierzchołków polilinii za pomocą Visual Lisp'a. Sprawdzałem na bazie tego co wcześniej robiłem w AutoCAD, lecz ZwCAD po prostu nie reaguje przy funkcji "vlax-put"... Przykład: - narysować dowolną polilinię, a następnie: (vl-load-com) (setq entOb (vlax-ename->vla-object (car(entsel)))) ;(setq Coord (vlax-get entOb 'Coordinates)) - AutoCAD (setq Coord (vlax-safearray->list (vlax-variant-value (vlax-get entOb 'Coordinates)))) ; - ZwCAD ;lub: ;(setq Coord (vlax-safearray->list (vlax-variant-value (vlax-get-property entOb 'Coordinates)))) ;...tutaj ustalenie nowych współrzędnych np. (1500.20 111.0 1312.124 123.21) (vlax-put entOb 'Coordinates Coord) (vla-update entOb) i nic się nie dzieje... Próbowałem również: (vlax-put-property entOb 'Coordinates (list 1500.20 111.0 1312.124 123.21)) ale również bez efektu... Mogę zatem założyć, że funkcja "vlax-put" po prostu nie działa, a funkcja "vlax-put-property" albo nie działa do końca właściwie, albo nie jest po prostu przeznaczona do zmiany tych właściwości obiektu. pozdrawiam
  5. Sprawdziłem również na drugim komputerze - wynik jest ten sam - ZwCAD zawiesza się całkowicie i tylko CTRL+ALT+DELETE daje radę przerwać ten proces...
  6. Sprawdzam na zupełnie nowym, czystym pliku. W załączniku jest przykład z narysowanymi paroma liniami. Teraz tworzę zmienną "a": (setq a (ssget "_x")) rysuję np. 3 kółka i tworzę zmienną "b": (setq b (ssget "_x")) a następnie uruchamiam funkcję: (command "_select" a "_r" b "") pojawia się "nil" i ZwCAD wisi... Rysunek1.dwg
  7. Witam, znalazłem poważny błąd w działaniu funkcji "_select", który zawiesza całkowicie program. Dla przetestowania proszę wykonać poniższe kroki: 1. narysować kilka dowolnych obiektów; 2. utworzyć ss-grupę funkcją: (setq a (ssget "_x")) 3. usunąć kilka wybranych obiektów; 4. utworzyć ss-grupę funkcją: (setq b (ssget "_x")) 5. uruchomić funkcję w celu uzyskania różnicy: (command "_select" a "_r" b "") Całość działa na AutoCAD jak i innych CAD opartych o silnik intelliCADa. pozdrawiam
  8. Ano właśnie po to, aby używać własnych wzorów kreskowań. Działania na rejestrach mają sens, gdy działają funkcje do ich obsługi, a ponieważ "vl-registry-write" nie działa, to nie ma innej możliwości wprowadzania zmian w kluczach rejestrów. Stąd moje poszukiwania zmiennej systemowej bądź innego sposobu na zapis w rejestrach... Ręczne dodawanie ścieżki w ustawieniach ZwCADa, wygląda mało profesjonalnie ;) Trudno, jak nie ma to nie ma, poczekam na kolejną wersję z poprawkami. pozdrawiam
  9. Funkcja "vl-registry-write" działa prawidłowo tj. tworzy wpis w kluczu rejestru, lecz wyłączenie ZwCADa, powoduje usunięcie wprowadzonych wartości do rejestru. Błąd opisano tutaj: http://classic.zwcad.org/Forum/forum_posts.asp?TID=1175&KW=pattern ja go sprawdziłem na obecnej wersji ZwCAD i nadal istnieje. Do czasu naprawienia tego błędu pytanie moje brzmi: - w jaki alternatywny sposób można zmienić wartość klucza opisującego ścieżki do "Ścieżka dostępu do wzorów kreskowania"? Jeśli chodzi o zmianę w "Ścieżka dostępu do plików pomocy", to załatwiam sprawę za pomocą funkcji: (getenv "ACAD") lecz w ten sposób nie znajduję klucza "HatchPat" (a właśnie w tym kluczu zapisane są te ścieżki). Może jest jakaś zmienna systemowa? W "setvar ? *" nie znalazłem.... pozdrawiam
  10. Zgadza się, jest tych plików kilka i każdy zwiera przykłady ale i niezbędne składniki do tego, aby w AutoCAD w ogóle uruchamiały się okna DCL. Niemniej jednak są one integralną częścią AutoCADa i kopiowanie ich jest bezprawne ;) W ZwCAD też istnieją base.dcl oraz gpdialog.dcl ;) tyle, że posiadają dużo mniej przykładów.
  11. No no no :) Kopiowanie całości, części lub udostępnianie publiczne kodu, jest niezgodne z licencją ;) Skoro już jednak znalazłeś źródło tego okna "acad_txtedit", to można na bazie tego stworzyć np. "zwcad_txtedit"... Swoją drogą może ZwCAD też z czasem doda takie systemowe okienka - się zobaczy. Tak jak napisałem, samo stworzenie takiego okienka to nie problem - się zastanawiałem czy po prostu ZwCAD ma coś takiego już wbudowane w swoją strukturę. pozdrawiam
  12. Witam, takie przykładowe okienko DCL - systemowe. Istnieje zastępcze dla ZwCAD? (load_dialog "ACAD") - tutaj widzę możliwość taką: (load_dialog "gpdialog.dcl") lecz dla: (new_dialog "acad_txtedit" id) już nie znalazłem... Oczywiście zdaję sobie sprawę, że utworzenie takiego okna od podstaw w DCL jest do zrobienia, jednakże skoro istnieją inne możliwości, to czemu z nich nie skorzystać... (defun LM:EditBox ( string / id ) (and (< 0 (setq id (load_dialog "ACAD"))) (new_dialog "acad_txtedit" id) (set_tile "text_edit" string) (action_tile "text_edit" "(setq string $value)") (if (zerop (start_dialog)) (setq string nil)) ) (if (< 0 id) (unload_dialog id)) string ) wywołanie: (LM:EditBox "To jest test") pozdrawiam
  13. Swoją drogą, czy istnieje zatem jakiś sposób na utworzenie Profilu z poziomu Lisp'a, skoro nie są obecne powyższe funkcje??
  14. Czyli tak jak myślałem. To mam zatem jeszcze prośbę aby zorientować się również w kwestii następujących funkcji Visual Lispa: "vla-get-profiles" "vla-get-activeprofile" "vla-put-activeprofile" "vla-getallprofilenames" "vla-deleteprofile" "vla-resetprofile" "vla-renameprofile" "vla-copyprofile" "vla-exportprofile" "vla-importprofile" czyli funkcje do zarządzania Profilami w CAD. np. (defun putActiveProfile (profilename) (vla-put-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object))) profilename ) ) pozdrawiam
  15. Witam, brakuje mi funkcji "vla-StartUndoMark" oraz "vla-EndUndoMark" czy coś wiadomo w tym temacie? Są jakieś zastępcze funkcje czy pozostaje czysty Lisp i funkcja "undo"? pozdrawiam
  16. Polecenie nadal nie działa w wersji PL: _VERNUM = "2011.06.30(16923)" nie mam jak sprawdzić wersji EN.
  17. W AutoCAD jest / było coś takiego jak Toolkit, który zawierał szereg dodatkowych funkcji. W ZwCAD są "Narzędzia dodatkowe", ale w jednym i drugim przypadku, nie zawsze jest wszystko to co nas interesuje. Wówczas pozostaje napisanie własnych funkcji wspomagających pracę, kupno nakładki bądź zlecenie napisania konkretnego zestawu narzędzi. pozdrawiam
  18. I jak tam? Wystarczył taki sposób, czy dalej szukamy innego? ;) Jeśli jeszcze coś brakuje bądź jest niejasne, to proszę napisać - rozwiązanie na pewno się znajdzie. pozdrawiam
  19. W załączniku jedna z wielu funkcji, która pozwala na odczyt długości wskazanych obiektów na rysunku. Plik należy wczytać za pomocą polecenia "_appload", a następnie w linii poleceń ZwCAD'a wpisać: vla-get-TotalObjLength i nacisnąć ENTER. Program poprosi o wskazanie obiektów (linie, polilinie, okrąg, łuk, spline) a następnie, po zatwierdzeniu wyboru przyciskiem ENTER, wyświetli w linii poleceń sumaryczną długość wskazanych obiektów. pozdrawiam vla-get-TotalObjLength.zip
  20. Swoją drogą, jak się teraz dobrać do obiektów będących w ss-grupie??:
  21. Tym razem tylko w ramach informacyjnych dla wszystkich, którzy piszą w Visual Lisp pod wszelkie systemy CAD. Znalazłem kolejną różnicę, tym razem zawartą w funkcji "vlax-invoke", a mianowicie w ZwCAD, funkcja ta zwraca bezpośrednio ss-grupę: , natomiast standardowo w AutoCAD otrzymujemy listę wskazującą na obiekt np.: (). Stąd też nie można użyć tej funkcji w sposób jednoznaczny do uzyskania informacji np. vla-Get-Length pozdrawiam
  22. Witam, taką mam prośbę / sugestię aby wydłużyć czas sesji na forum. Obecnie jest zdecydowanie za krótki i co rusz konieczne jest ponowne logowanie. Według mnie optymalnym czasem będzie 1h - 3h. pozdrawiam
  23. Witam, takie pytanko, funkcja "vla-getentity" ma działanie jak "entsel" lecz zwraca "nil", w jaki sposób można uzyskać informację o współrzędnych punktu, który został wskazany? ENTSEL: (entsel "\nWskaż obiekt:") --> ( '(x y z)) VLA-GETENTITY: (setq util (vla-get-utility (vla-get-activedocument (vlax-get-acad-object)))) (vla-getentity util 'obj1 'ip "\nWskaż obiekt: ") (princ ip) --> nil !ip --> nil (princ obj1) --> Znalazłem taki opis: The reference to the Object is stored in the variable "obj" and the pickpoint is stored in variable "ip" in the form of a safearray Dodam, że w AutoCAD zwracana wartość faktycznie ma miejsce i postać: !ip --> # pozdrawiam, ZK
  24. Informuję, że w nowej wersji ZwCAD2011 (kompilacja z dnia 2011.06.30), funkcja "vlax-dump-object" została poprawiona pod względem dodania brakującego parametru "ObjectName". Lista wygląda obecnie tak: (setq vlaObj (vlax-ename->vla-object (car(entsel)))) # (vlax-dump-object vlaObj) Property values: ; Application (RO) ; Document (RO) ; Parent (RO) ; Handle (RO) ; ObjectID (RO) ; HasExtensionDictionary (RO) ; Color ; EntityName (RO) ; ObjectName (RO) ; EntityType (RO) ; Layer ; Linetype ; LinetypeScale ; Visible ; Hyperlinks (RO) ; TrueColor ; LineWeight ; Area (RO) ; Length (RO) ; Closed ; Coordinateoordinate (RO) ; Normal ; Thickness ; ConstantWidth ; Elevation ; LinetypeGeneration T (vla-get-objectname vlaObj) "AcDbLightWeightPolyline" Co prawda szkoda, że nadal nie wyświetlają się wartości tych parametrów, ale zawsze to już jakiś krok do przodu...
  25. Jakiej przeglądarki używasz? Sam zauważyłem, że np. w Chrome, forum ma pewną przypadłość: po naciśnięciu "Wyślij", pojawia się biała strona i nic więcej, ale wystarczy w linku, który ma postać: http://forum.projektuje.net/posting.htm usunąć "posting.htm" i nacisnąć ENTER. Wówczas post nie będzie powielony, a użytkownik może spokojnie dalej przeglądać zawartość forum. Jak Masz jeszcze możliwość, to pousuwaj te "klony", albo poproś o to administratora... pozdrawiam