[LISP]Postać LWPOLYLINE


Rekomendowane odpowiedzi

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...

Odnośnik do komentarza
Udostępnij na innych stronach

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:

(if (<(length ListaWsp)3)(setq ListaWsp (append ListaWsp (list 0))))

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie