Assgarth

Użytkownik forum
  • Postów

    218
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Treść opublikowana przez Assgarth

  1. ftp://rewaloryzacja.com/pub/lagi.zip - link nie działa. Trzykrotne wstawienie tego samego postu?? Jaki to ma cel??
  2. Z tego co ma Pan napisane w stopce wnioskuję, że używana wersja ZwCAD nie jest najnowsza. Przesłanie rysunku może faktycznie wyjaśnić sprawę. Zanim zapadnie decyzja kupna innego programu, można sprawdzić jak wygląda sprawa w aktualnej wersji obecnie używanego programu. Wszystkie produkty są rozwijane i poprawiane - nawet AutoCAD. Taka sugestia: pisanie z CapsLock jest źle widziane na forach internetowych i prośba o nie stosowanie takich metod - nie przyspieszy to sprawy, a może tylko zniechęcić pozostałych użytkowników do przeczytania umieszczonej treści. pozdrawiam
  3. Szansa jest, ale trzeba poczekać. Zbiór poprawek pojawi się dopiero w nowej kompilacji programu, a do tego czasu spróbuj może użyć Bullzip PDF Printer: http://www.google.pl/search?aq=f&sourceid=chrome&ie=UTF-8&q=Bullzip+PDF+Printer Jeśli to nie pomoże, to jeszcze pokombinuj z jakimś DWG Viewer: http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=viewer+dwg pozdrawiam
  4. Już tłumaczę: wstępnie chciałem uzyskać listę parametrów obiektu wraz z jego wartościami za pomocą funkcji "vlax-dump-object". Lista, która wyświetla się w ZwCAD jest... hmmm... po prostu nieprzydatna, bo nie widać wartości, a jedynie nazwy parametrów. Aby zatem uzyskać informację o wartościach tych parametrów, konieczne jest użycie funkcji "vlax-get-property". Jednakże ani w liście "vlax-dump-object", ani za pomocą "vlax-get-property" nie ma informacji o typie obiektu, którego te dane dotyczą. W AutoCAD ta informacja jest pod nazwą ObjectName (RO), która zwraca np. ObjectName (RO) = "AcDbPolyline" Jak zatem w ZwCAD uzyskać informację, za pomocą Visual Lisp'a, jaki obiekt został wskazany, czyli dokładnie to pytanie, które Pan sformułował: Natomiast: formuła jest poprawna i ilość nawiasów jest właściwa, czyli 1 otwierający i 1 zamykający np. (setq vlaobj (vlax-ename->vla-object (car(entsel)))) (vlax-get-property vlaobj 'Color)
  5. Dla przykładu podam jak wygląda taka lista w AutoCAD: Command: (vlax-dump-object (vlax-ename->vla-object (car(entsel)))) Select object: ; IAcadLWPolyline: AutoCAD Lightweight Polyline Interface ; Property values: ; Application (RO) = # ; Area (RO) = 7.5594e+006 ; Closed = -1 ; ConstantWidth = 0.0 ; Coordinate = ...Indexed contents not shown... ; Coordinates = (49465.5 -26139.9 49465.5 -25395.1 51588.8 -25395.1 ... ) ; Document (RO) = # ; Elevation = 0.0 ; Handle (RO) = "3282" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = # ; Layer = "1" ; Length (RO) = 15351.6 ; Linetype = "ByLayer" ; LinetypeGeneration = 0 ; LinetypeScale = 1.0 ; Lineweight = -1 ; Material = "ByLayer" ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = 2129574096 ; ObjectName (RO) = "AcDbPolyline" ; OwnerID (RO) = 2129546488 ; PlotStyleName = "ByLayer" ; Thickness = 0.0 ; TrueColor = # ; Visible = -1 T Doszukałem się jednak w dokumentacji ZwCAD, że po prostu mają swoją listę i tyle. Aby dalej pobrać jakąś wartość z właściwości obiektu, należy użyć funkcji: vlax-get-property. I teraz pytanie za 100 punktów: dlaczego nie ma możliwości pobrania informacji o typie obiektu??? (vlax-get-property a 'ObjectName) Rozumiem, że nie ma jej w "dump-liście", ale dlaczego? Jak teraz za pomocą VLispa określić typ obiektu wskazanego?
  6. Czy tylko u mnie w ten sposób przedstawia listę właściwości obiektu po użyciu funkcji "vlax-dump-object"? Polecenie: (setq b (car(entsel))) Wybierz obiekty: Polecenie: (vlax-dump-object (vlax-ename->vla-object B)) Property values: ; Application (RO) ; Document (RO) ; Parent (RO) ; Handle (RO) ; ObjectID (RO) ; HasExtensionDictionary (RO) ; Color ; EntityName (RO) ; EntityType (RO) ; Layer ; Linetype ; LinetypeScale ; Visible ; Hyperlinks (RO) ; TrueColor ; LineWeight ; Area (RO) ; Length (RO) ; Closed ; Coordinateoordinate (RO) ; Normal ; Thickness ; ConstantWidth ; Elevation ; LinetypeGeneration T
  7. Okey, przeprowadziłem test z pełną gamą informacji, załadowaniem Visual Lisp itd. (vl-load-com) (setq acadobj (vlax-get-acad-object)) (setq actdoc (vla-get-ActiveDocument acadobj)) (setq vla_object (vlax-ename->vla-object (entlast))) (vla-explode vla_object) i dopiero wówczas ZwCAD zadziałał: Polecenie: (vl-load-com)(setq acadobj (vlax-get-acad-object))(setq actdoc (vla-get-ActiveDocument acadobj)) # Polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) # Polecenie: (vla-explode vla_object) # Moja wina, że nie odwoływałem się do ActiveDocument, lecz to z przyzwyczajenia z AutoCAD gdzie po prostu i bez tego można podstawowe testy wykonać... pozdrawiam
  8. W przypadku bloku jest podobnie: Polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) # Polecenie: (vla-explode vla_object) błąd: pusta funkcja (VLA-EXPLODE VLA_OBJECT) Zmiana wartości zmiennej systemowej "EXPLMODE" nie była konieczna, gdyż domyślnie ustawiona jest na "1". pozdrawiam
  9. No może zwracać cokolwiek, byle nie błąd :) W załączniku polilinia, którą chcę rozbić według poleceń, które podałem wcześniej. test.dwg
  10. Otwieram nowy rysunek, rysuję jedną polilinię i wprowadzam polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) a następnie: (vla-explode vla_object) i ZwCAD zwraca: błąd: pusta funkcja (VLA-EXPLODE VLA_OBJECT) nie ma mowy o błędzie literowym... Albo coś jeszcze jest potrzebne do zdefiniowania, albo jakiś dodatkowy parametr, lecz w Pomocy dla programisty ZwCADa, nie ma w ogóle opisanej funkcji "vla-explode" więc nie wiem gdzie tego szukać... Może jest inna funkcja w Visual Lisp, która rozbija obiekty?... Powyższy zapis kodu w AutoCAD, działa bez zarzutu: (setq vla_object (vlax-ename->vla-object (entlast))) (vla-explode vla_object) i AutoCAD zwraca: # pozdrawiam
  11. Istnieje w ZwCAD odpowiednik funkcji AutoCAD'owego Visual Lispa "vla-explode"? Polecenie: (setq a (vlax-ename->vla-object (car(entsel)))) Wybierz obiekty: # Polecenie: (vla-explode a) błąd: pusta funkcja pozdrawiam
  12. Uhm... okey, działa. Dziękuję za informację - warto jednak zaznaczyć, że jest to różnica w stosunku do Visual Lisp w AutoCAD, gdzie "vlax-variant-value" jest wymagane, w przeciwnym przypadku program wygeneruje błąd... pozdrawiam
  13. Witam, w jaki sposób poprawnie wywołać funkcję "vla-intersectwith"? (setq obj1 (vlax-ename->vla-object (car(entsel))) obj2 (vlax-ename->vla-object (car(entsel)))) ;sposób 1: (vlax-safearray->list (vlax-variant-value (vla-intersectwith obj1 obj2 0))) ;sposób 2: (vlax-safearray->list (vlax-variant-value (vla-intersectwith obj1 obj2 zcExtendNone))) żaden z powyższych sposobów nie działa i zwraca błąd typu: błąd: Zły typ argumentu Obiekty, które wskazuję to np. łuk i linia. Przykład zawarty w Pomocy ZwCAD, odnosi się tylko do VBA... pozdrawiam
  14. Witam, czy to zamierzone działanie czy przeoczenie, że brakuje jednej opcji w funkcji vlax-make-safearray: Tutaj z HELP ZwCAD2011: Funkcja nie działa z tym parametrem, stąd też moje pytanie (bo a nuż pominęli tylko w help'ie ten przypadek)... pozdrawiam
  15. Zatem widać, że powstające wersje ZwCADa, mają tendencję "co druga" :) Bo we wcześniejszej wersji "2010.11.25" również polecenie to działało... Ta wersja "2011.04.28" nie jest jeszcze oficjalna, więc nawet nie testuję na niej. Tym bardziej, że posiada szereg innych, już zgłoszonych, błędów... Brakuje konsekwencji w pracach nad ZwCAD. Jak już coś naprawią, to w kolejnej wersji w ogóle nie uwzględniają tych zmian, tylko powielają kod z wcześniejszej wersji zawierających błąd, szkoda...
  16. Witam, posiadana wersja ZwCAD: _VERNUM = "2011.02.28(16649)" proszę sprawdzić działanie polecenie wyłączenia warstwy do plotowania: (command "_layer" "_p" "_n" "nazwa_warstwy" "") z tego co zauważyłem, polecenie nie działa - warstwa nadal ma cechę niezmienioną (plotowanie włączone). Napisanie warstwy z dużej, bądź małej literki nie ma znaczenia. pozdrawiam
  17. Assgarth

    [.NET]

    Witam, aby nie otwierać nowego wątku, to tutaj zadam jeszcze pytanie dotyczące: ObjectDBX. Czy w ogóle ZwCAD korzysta z technologii ObjectDBX?? Za pomocą polecenia: Polecenie: (vlax-get-acad-object) otrzymamy wynik: # natomiast polecenie: vla-getInterfaceObject wygeneruje błąd: błąd: *BŁĄD* do czego zmierzam: w AutoCAD za pomocą technologii ObjectDBX można uzyskać dostęp do obiektów rysunku, które nie są uruchomione (wystarczy wskazać plik DWG), coś takiego w ZwCAD również byłoby przydatne, aby móc manipulować obiektami typu bloki itp.
  18. Witam, nie wiedząc po co i dlaczego z takim skutkiem, ZwCAD w wersji 2011 (_VERNUM = "2011.02.28(16649)") wprowadził zmiany w kodzie DXF... Dla porównania: ZwCAD2010 v.2010.08.30(12725.441) Wybierz obiekty: ((-1 . ) (0 . "LWPOLYLINE") (5 . "8B9") (67 . 0) (8 . "BZ_P_STRZ") (410 . "Model") (62 . 256) (6 . "ByLayer") (370 . -1) (48 . 1.00000) (60 . 0) (90 . 4.00000) (70 . 0) (43 . 0.000000) (38 . 0.000000) (39 . 0.000000) (210 0.000000 0.000000 1.00000) (10 702.643 615.211 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 766.196 929.005 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 994.590 1167.33 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10 1177.31 1270.60 0.000000) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000)) ZwCAD2011 v.2011.02.28(16649) Wybierz obiekty: ((-1 . ) (0 . "LWPOLYLINE") (5 . "8B9") (100 . "AcDbEntity") (67 . 0) (8 . "BZ_P_STRZ") (100 . "AcDbCurve") (100 . "AcDbPolyline") (410 . "Model") (62 . 256) (6 . "ByLayer") (370 . -1) (48 . 1.00000) (60 . 0) (90 . 4.00000) (70 . 0) (43 . 0.000000) (38 . 0.000000) (39 . 0.000000) (210 0.000000 0.000000 1.00000) (10.0000 702.643 615.211) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10.0000 766.196 929.005) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10.0000 994.590 1167.33) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000) (10.0000 1177.31 1270.60) (40 . 0.000000) (41 . 0.000000) (42 . 0.000000)) AutoCAD2010 Select object: ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 . "8B9") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "BZ_P_STRZ") (100 . "AcDbPolyline") (90 . 4) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 702.643 615.211) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 766.196 929.005) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 994.59 1167.33) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 1177.31 1270.6) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0)) Jak widać, zmian jest troszkę, ale najgorsze jest to, że wartości kodu DXF 10, czyli współrzędne punktów, zostały pozbawione współrzędnej Z... i wszystko by było okey, gdyby nie wpływało to na działanie aplikacji LISP, które się do tej informacji odwołują... AutoCAD (nic nowego) świetnie sobie z tym radzi np. w przypadku wywołania typu (entsel), natomiast nowa wersja ZwCADa już nie... Co dziwniejsze, nie jest to do uchwycenia w pierwszym wywołaniu polecenia, tylko w którymś z kolei i z moich obserwacji wynika, że dzieje się tak po edycji na polilinii typu "_join" (już kiedyś to działanie całkowicie rozmontowywało ZwCADa, co zresztą zgłaszałem)... Wskaż punkt: ( (1671.33 667.762 0.000000)) po działaniu na polilinii: (1816.50 546.363 0.000000) Wskaż punkt: ( (824.019 184.604 0.000000)) po działaniu na polilinii: (669.299 67.9644) Nie mam za bardzo jak wrzucić tutaj przykładu w postaci kodu, gdyż jest to wielopłaszczyznowe odwołanie do obiektu (wraz ze wspomnianą edycją typu "join"), stąd prośba o zwrócenie uwagi, czy ktoś z Was również się z tym spotkał - może uda się ustalić dokładnie sytuację, w której następuje błąd i ładnie opisać go do support ZwCADa. Na chwilę obecną temat obchodzę, sztucznie dodając współrzędną Z (obecnie działam na płaskim rysunku, więc 0.0 załatwia sprawę), lecz w przyszłości może być to niewystarczające...
  19. To co dla jednych jest "drobnym błędem", dla drugich jest czymś więcej. Nie widząc kodu źródłowego, powiązań pomiędzy poszczególnymi jego etapami (który rozwija się od wielu lat), nie znając środowiska programowego i wielu innych czynników, nie należy się wypowiadać w tym temacie. Również w kwestii "adaptacji" i "rozwoju"... to właśnie tak się to przedstawia: nowy produkt na rynku, który powstaje cegiełka po cegiełce, robi wrażenie do czasu aż skończy się budować "mur". Jest to ten etap gdzie widać jak ciągle coś przybywa, jest tego dużo i fajnie się zapowiada. Na tym etapie jest właśnie program e-cad. Następnie przychodzi czas, gdy nie ma czego tak spektakularnie pokazywać i zaczyna się czas modyfikacji, ulepszeń, aktualizacji... to jest etap, na którym jest program BiK. Na pierwszy rzut oka oba programy są do siebie podobne, mają podobny cel, spełniają zbliżone założenia, lecz tak naprawdę są zupełnie inne, bazują na innych rozwiązaniach programowych, skupiają się na odmiennym podejściu do tematu. Konkurencja zazwyczaj wychodzi na dobre, lecz przekrzykiwanie się, co jest lepsze a co gorsze, nie ma po prostu sensu. Niech każdy sam zachowa swoją ocenę dla siebie, a na forum powinno udzielać się informacji konstruktywnych.
  20. Assgarth

    [.NET]

    Czy ZwCAD umożliwia działanie na bibliotekach napisanych w C#? W AutoCAD jest polecenie NETLOAD, które ładuje bibliotekę DLL i dalej wszystko śmiga... W ZwCAD jest możliwość wczytania DLL z polecenia APPLOAD, ale ta sama biblioteka, która działa pod AutoCAD, nie daje się w ogóle wczytać w ZwCAD. Gdzie można znaleźć jakąś informację czy w ogóle jest to możliwe? Dla MVS C/C++ jest ZRXSDK, a dla C#??
  21. Witam, jeśli używacie poleceń "setcfg" oraz "getcfg": - w AutoCAD zapis danych jest do pliku acad*.cfg, - w przypadku ZwCAD, mimo iż w instrukcji jest napisane czarno na białym: to nigdzie nie jest podane gdzie ten plik tak naprawdę miałby się znajdować, a jeszcze lepsze jest to, że wszystko zapisuje się w Rejestrach Windows a nie do pliku ;) Ogólnie rzecz ujmując, obie funkcje działają poprawnie w Acad i ZwCAD, ale miejscem przechowywania informacji jest plik (Acad) i rejestr (ZwCAD). pozdrawiam
  22. Dokładnie o to zapewne chodziło. Też spotkałem się z tym problemem, więc na bieżąco śledziłem temat. Pozostałe informacje są prawidłowe.
  23. Witam, dla zainteresowanych, którzy używają poleceń LISP w ZwCAD: - otóż kolejna odmienność w stosunku do tego co jest w AutoCAD, to sposób w jaki działa polecenie "_fillet" (zaokrąglanie). Obiekt np. polyline, który chcemy zaokrąglić, przed wykonaniem tej czynności, posiada swoją entycję np. natomiast po zaokrągleniu, obiekt ten staje się zupełnie nowym obiektem o nowej entycji np. Rzutuje to tym, że aby podjąć dalsze działania na naszym obiekcie, musimy przypisać do niego ponownie naszą zmienną lub użyć polecenia (entlast). W AutoCAD obiekt przed i po użyciu polecenia "_fillet", był cały czas tym samym obiektem - nie zmieniała się entycja! pozdrawiam
  24. poleceniem: (getenv "ACAD") uzyskasz wszystkie obecnie wprowadzone ścieżki, natomiast poleceniem: (setenv "ACAD") możesz wprowadzić własne ścieżki - jako dodatkowe! Nie usuwaj przez przypadek tych, które tam są domyślnie ;) I mała sugestia: Twoje ścieżki powinny być na pierwszych pozycjach, a dopiero potem te, które są tam domyślnie. pozdrawiam.
  25. W takim przypadku odsyłam do tematu: http://forum.projektuje.net/zmienna-cecolor-vt303.htm Co do kolorowania atrybutów w bloku, to może i nie jest to najlepsze dla programów obsługujących takie bloki, ale na pewno dla użytkowników, którym to wręcz pomaga. Co do wydruku, to kwestia właściwego przypisania grubości do warstw i kolorów - zaawansowany użytkownik nie ma z tym najmniejszego problemu i zazwyczaj działa zawsze na, przez siebie stworzonym, szablonie, gdzie wszystko ma zdefiniowane. pozdrawiam