 |
Forum użytkowników programów ZWCAD, KOMPAS-3D, Scan2CAD, PDF2CAD
Forum CAD.
|
Przesunięty przez: dmatusz3 Pon Sie 01, 11 15:42 |
[LISP]Postać LWPOLYLINE |
| Autor |
Wiadomość |
Assgarth
programista
Pomógł: 2 razy Dołączył: 26 Sty 2009 Posty: 136 Skąd: Poznań
|
Wysłany: Wto Maj 24, 11 11:51 [LISP]Postać LWPOLYLINE
|
|
|
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 . <Entity name: b85a4a0>) (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 . <Entity name: 96b9de0>) (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 . <Entity name: 7ed4bf48>) (0 . "LWPOLYLINE") (330 . <Entity name: 7ed49cf8>) (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)...
| Kod: | Wskaż punkt:
(<Entity name: f305540> (1671.33 667.762 0.000000))
po działaniu na polilinii: (1816.50 546.363 0.000000) |
| Kod: | Wskaż punkt:
(<Entity name: f28e630> (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... |
|
|
|
 |
kruszynski
Pomógł: 17 razy Dołączył: 02 Sty 2009 Posty: 312
|
Wysłany: Sro Maj 25, 11 08:19
|
|
|
Zmiany te zostały wprowadzone w celu ujednolicenia z AutCADem. Z samego kodu, który Pan umieścił wynika, że w AutoCAD współrzędne (kod 10) są listą dwuelementową. I to też będzie standardem w ZWCAD. Jeśli używa Pan list 3 elementowych w dalszych operacjach, sugeruję dodać współrzędną z np tak:
| Kod: | | (if (<(length ListaWsp)3)(setq ListaWsp (append ListaWsp (list 0)))) |
|
|
|
|
 |
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
| | Strona wygenerowana w 0,34 sekundy. Zapytań do SQL: 10 |
|
|