Marek-M Posted March 16, 2021 Report Share Posted March 16, 2021 Problem dotyczy ZWCAD 2019 - VERNUM = "2019.03.15(43299)_x64" Mam prosty skrypt, który działa m.in. na ZWCAD 2015+, uruchamiający komendę ATTEXT z parametrami pliku szablonu i wyjściowego. Dla testów działam wewnątrz katalogu C:\test\ (co by ścieżka nie była za długa i nie miała spacji i innych nietypowych znaków). Niestety, ZWCAD 2019 przy takim skrypcie wyrzuca błąd: Cytat Command: SCR SCRIPT Command: -ATTEXT Enable entity selection or extract attributes as [Dxf/Cdf/Sdf/Objects] <Cdf>: C Template file to load: "C:\test\extract_template.txt" Enter output file: "C:\test\extracted_blocks.txt" The output file could not be opened. Enter output file: i oczekuje na podanie pliku wyjściowego. Niestety nie wiem, czy to ja coś robię źle, czy to po prostu błąd ZWCAD 2019? A może jest na to jakieś obejście? Spakowane pliki testowe wrzuciłem jako załącznik test.zip Plik ze skryptem: dwg_z_blokami_script.scr -ATTEXT C "C:\test\extract_template.txt" "C:\test\extracted_blocks.txt" Plik z szablonem: extract_template.txt BL:NAME C250000 BL:LEVEL N030000 BL:X N030004 BL:Y N030004 BL:Z N030004 BL:XSCALE N030004 BL:YSCALE N030004 BL:ZSCALE N030004 BL:ORIENT N012004 BL:NUMBER N030000 BL:HANDLE C100000 BL:LAYER C100000 NAME C250000 ARTICLE C250000 Link to comment Share on other sites More sharing options...
Marek-M Posted March 16, 2021 Author Report Share Posted March 16, 2021 Dodam, że właśnie sprawdziłem, że zarówno poprzez okno dialogowe ATTEXT jak i poprzez konsolę -ATTEXT komenda działa prawidłowo, tylko że wymaga interakcji do podania ścieżki do pliku. Link to comment Share on other sites More sharing options...
Marek-M Posted March 16, 2021 Author Report Share Posted March 16, 2021 No i jeszcze dopowiem, że spróbowałem w ścieżkach do plików w skrypcie zamiast pojedynczych backslashy dać po dwa backslahe: -ATTEXT C "C:\\test\\extract_template.txt" "C:\\test\\extracted_blocks.txt" i efekt jest jeszcze gorszy 😞 Cytat Command: SCR SCRIPT Command: -ATTEXT Enable entity selection or extract attributes as [Dxf/Cdf/Sdf/Objects] <Cdf>: C Template file to load: "C:\\test\\extract_template.txt" File not found. Template file to load: "C:\\test\\extracted_blocks.txt" Template file to load: Link to comment Share on other sites More sharing options...
dmatusz3 Posted March 17, 2021 Report Share Posted March 17, 2021 Proszę spróbować podać ścieżki w pliku scr bez cudzysłowów, -ATTEXT C C:\test\extract_template.txt C:\test\extracted_blocks.txt wtedy Command: _SCRIPT Select script file<C:\test\dwg_z_blokami.scr>: "C:\test\dwg_z_blokami_script.scr" Command: -ATTEXT Enable entity selection or extract attributes as [Dxf/Cdf/Sdf/Objects] <Cdf>: C Template file to load: C:\test\extract_template.txt Enter output file: C:\test\extracted_blocks.txt 2 records extracted. oraz zawartość extracted_blocks.txt 'CPEL_1968', 1, 0.0000, 1.0000, 0.0000, 1.0000, 1.0000, 1.0000, 0, 1,'391','2DE_OBJ_L1','Zestyk przełączny przerwowy','' 'CPEL_1965', 1, 0.0000, 0.0000, 0.0000, 1.0000, 1.0000, 1.0000, 0, 2,'32F','2DE_OBJ_L1','Zestyk zwierny','' Link to comment Share on other sites More sharing options...
Marek-M Posted March 17, 2021 Author Report Share Posted March 17, 2021 Dziękuję! Szybka i rzeczowa odpowiedź Oczywiście usunięcie cudzysłowów pomogło i w ZWCAD 2019 działa, nawet ze spację w ścieżce Niestety w ścieżce posiadam spację i przez nią ZWCAD 2015+ sobie nie radzi - czy jest jakieś obejście problemu spacji w ścieżce ale takie uniwersalne, żeby ZWCAD 2015+ i 2019 potrafiły sobie z tym poradzić? Jeśli nie jest to takie proste, to też nie jest problem - wystarczy, że zrobię sobie oddzielne pliki skryptów dla ZWCAD 2015 i dla ZWCAD 2019 Link to comment Share on other sites More sharing options...
Marek-M Posted March 17, 2021 Author Report Share Posted March 17, 2021 Właśnie zauważyłem też taką ciekawostkę, że ZWCAD 2019 dużo dłużej niż ZWCAD 2015+ generuje pliki z listą bloków przy komendzie ATTEXT. Zmodernizowałem sobie skrypty do ATTEXT o komendy: (setq s (getvar "DATE")) [...] instrukcje skryptu ATTEXT [...] (strcat "* Czas ekstrakcji atrybutow w programie " (getvar "VERNUM") " = " (rtos (setq seconds (* 86400.0 (- (getvar "DATE") s))) 2 3) "s.") I w efekcie otrzymałem taki rezultat: ZWCAD 2015+ Cytat 12218 records exist in the extract file. "* Czas ekstrakcji atrybutow w programie 2015.08.15(27483) = 0.706s." ZWCAD 2019 Cytat 12218 records extracted. "* Czas ekstrakcji atrybutow w programie 2019.03.15(43299)_x64 = 77.587s." Trochę duża ta różnica, prawda. Link to comment Share on other sites More sharing options...
dmatusz3 Posted March 17, 2021 Report Share Posted March 17, 2021 Tak różnica jest spora. Zapewne nie ma możliwości aby podesłał Pan rysunek do testów? korzystając z Pana pliku zwielokrotniłem ilość bloków do prawie 25 tysięcy. Ten sam skrypt na 2021 SP2 wykonywał się około 2-3 sekund. Nie mam pomysłu jak ujednolicić skrypt na obie wersje. Wyślemy zgłoszenie do ZWSOFT aby w plikach scr były teraz obsługiwane również cytaty. Jedyny pomysł jaki mi się nasunął to ustawienie ścieżki dostępu do katalogu ze skryptami w opcjach Wtedy nie trzeba używać całej ścieżki a tylko nazwę pliku. -ATTEXT C extract_template.txt extracted_blocks.txt Adam Klaczek 1 Link to comment Share on other sites More sharing options...
Marek-M Posted March 17, 2021 Author Report Share Posted March 17, 2021 Wysłałem dane do testowania w wiadomości prywatnej. dmatusz3 1 Link to comment Share on other sites More sharing options...
perlon Posted March 19, 2021 Report Share Posted March 19, 2021 No to może plik .scr generować w locie z pliku lsp po sprawdzeniu na której wersji jest odpalony. Z vernuma wyciągnąć nr wersji potem wygenerować scr (albo z cudzyslowani albo nie) albo wyeliminować scr całkowiecie zastępując go lispem Link to comment Share on other sites More sharing options...
Marek-M Posted March 19, 2021 Author Report Share Posted March 19, 2021 Z SCR korzystam sobie w taki sposób, że w okienku wyboru pliku SCR mam odpalony katalog, w którym trzymam wszystkie pliki SCR jakich używam na komputerze. Domyślnie podpowiadana jest nazwa pliku SCR zgodna z nazwą pliku DWG i wtedy tylko zatwierdzam enterem wybór. W tej chwili tylko muszę pamiętać, żeby przy ZWCAD 2015+ wybrać plik z dopiskiem 2015. Na razie jest to czynność sporadyczna i chyba na razie powstrzymam się nad rozbudową skryptu, chociaż pomysł z LSP i vernum wydaje się być prostym i skutecznym patentem. Dzięki za pomysł! Link to comment Share on other sites More sharing options...
perlon Posted March 19, 2021 Report Share Posted March 19, 2021 Skoro tak to w scr zawrzyj tylko wywołanie lispa który ogarnie wersję i zrobi co trzeba. Będzie jeden scr i jeden lsp zamiast dwóch scr których wersje będą pod konkretnego ZwCAD'a Link to comment Share on other sites More sharing options...
dmatusz3 Posted March 19, 2021 Report Share Posted March 19, 2021 Wydaje mi się, że takie polecenie w pliku .scr powinno zadziałać w obu wersjach (command "_-ATTEXT" "_C" "C:\\test\\duzy_plik_testowy_template.txt" "C:\\test\\duzy_plik_testowy_extracted_blocks.txt") duzy_plik_testowy.scr Marek-M 1 Link to comment Share on other sites More sharing options...
Marek-M Posted March 19, 2021 Author Report Share Posted March 19, 2021 @dmatusz3, super rozwiązanie (pół skrypt pół LISP) ale działa rewelacyjnie. Nawet foldery ze spacjami nie powodują konfliktów. Tylko trzeba pamiętać o podwójnym backslashu w ścieżce. Dzięki. Trochę jeszcze stuningowałem kod w pliku SCR, żeby w łatwiejszy sposób dostosowywać go do innych plików DWG i ścieżki do plików podałem w oddzielnych zmiennych: (setq template_file "C:\\test\\duzy_plik_testowy_template.txt" output_file "C:\\test\\duzy_plik_testowy_extracted_blocks.txt" ) (command "_-ATTEXT" "_C" template_file output_file) Link to comment Share on other sites More sharing options...
dmatusz3 Posted March 19, 2021 Report Share Posted March 19, 2021 Może takie rozwiązanie jak w lispie do szyfrowania lispów? Link to comment Share on other sites More sharing options...
Marek-M Posted August 18, 2022 Author Report Share Posted August 18, 2022 W dniu 17.03.2021 o 11:12, Marek-M napisał: Właśnie zauważyłem też taką ciekawostkę, że ZWCAD 2019 dużo dłużej niż ZWCAD 2015+ generuje pliki z listą bloków przy komendzie ATTEXT. Zmodernizowałem sobie skrypty do ATTEXT o komendy: (setq s (getvar "DATE")) [...] instrukcje skryptu ATTEXT [...] (strcat "* Czas ekstrakcji atrybutow w programie " (getvar "VERNUM") " = " (rtos (setq seconds (* 86400.0 (- (getvar "DATE") s))) 2 3) "s.") I w efekcie otrzymałem taki rezultat: ZWCAD 2015+ ZWCAD 2019 Trochę duża ta różnica, prawda. Nowy CAD, nowe testy, bo przypomniałem sobie o tym problemie z ATTEXT, gdy chciałem wyeksportować dane z pewnego rysunku. Niestety nie jest dobrze 😞 ZWCAD 2023 (przegrany) 372 records extracted.nil *** Czas wykonania programu = 1603.588sek. [VERNUM=23.00_2022.05.19(#4672-2a69c627485)_x64] ZWCAD 2019 (średniak bliski przegranemu) 372 records extracted.nil *** Czas wykonania programu = 1294.278sek. [VERNUM=2019.03.15(43299)_x64] ZWCAD 2015+ (zwycięzca!!!) 372 records exist in the extract file. *** Czas wykonania programu = 0.566sek. [VERNUM=2015.08.15(27483)] Czy ZWCAD nie może czegoś z tym zrobić? Dane testowe: Pliki SCR i szablonu do ATTEXT wrzuciłem w plikach na forum a plik DWG z rysunkiem udostępniłem tutaj: https://www.dropbox.com/s/2nshcy6zutevawh/test_attext.dwg?dl=0 extract_CADPROFIBLOCKS_with_TEXT2ATTR.txt test_attext.scr Link to comment Share on other sites More sharing options...
dmatusz3 Posted August 23, 2022 Report Share Posted August 23, 2022 Dziękuję bardzo za dokładny opis algorytmu i załączenie plików, dzięki którym można powtórzyć cała procedurę. Skonsultowaliśmy działanie tych funkcji z ZWSOFT i otrzymaliśmy potwierdzenie. Nadaliśmy bardzo wysoki priorytet. Zgłoszenia ma oznaczenie SUP-50626. Link to comment Share on other sites More sharing options...
Marek-M Posted August 23, 2022 Author Report Share Posted August 23, 2022 Super, mam nadzieję, że szybko uda im się zoptymalizować proces eksportowania danych z rysunków. Link to comment Share on other sites More sharing options...
Marek-M Posted February 1, 2023 Author Report Share Posted February 1, 2023 W dniu 18.08.2022 o 09:20, Marek-M napisał: Nowy CAD, nowe testy, bo przypomniałem sobie o tym problemie z ATTEXT, gdy chciałem wyeksportować dane z pewnego rysunku. Niestety nie jest dobrze 😞 ZWCAD 2023 (przegrany) 372 records extracted.nil *** Czas wykonania programu = 1603.588sek. [VERNUM=23.00_2022.05.19(#4672-2a69c627485)_x64] ZWCAD 2019 (średniak bliski przegranemu) 372 records extracted.nil *** Czas wykonania programu = 1294.278sek. [VERNUM=2019.03.15(43299)_x64] ZWCAD 2015+ (zwycięzca!!!) 372 records exist in the extract file. *** Czas wykonania programu = 0.566sek. [VERNUM=2015.08.15(27483)] Czy ZWCAD nie może czegoś z tym zrobić? Dane testowe: Pliki SCR i szablonu do ATTEXT wrzuciłem w plikach na forum a plik DWG z rysunkiem udostępniłem tutaj: https://www.dropbox.com/s/2nshcy6zutevawh/test_attext.dwg?dl=0 extract_CADPROFIBLOCKS_with_TEXT2ATTR.txt 666 B · 4 pobrania test_attext.scr 344 B · 5 pobrań Aktualizacja informacji - najnowszy ZWCAD wyraźniej przyśpieszył w teście - nowy wynik testu: ZWCAD 2023 (nowa wersja - test z 2023-02-01) 372 records extracted.nil *** Czas wykonania programu = 9.489sek. [VERNUM=23.20_2022.12.03(#4996-a5f007e30b8)_x64] W moim odczuciu jest to wynik bardzo akceptowalny. Testowałem też działanie na 19k bloków z atrybutami i też jest OK aczkolwiek nie mam pojęcia jak było to możliwe, żeby ZWCAD 2015+ był aż taki niedościgniony ?? 😲 Ogólnie wątek można zamknąć, chyba że w kolejnych wersjach ZWCAD jeszcze bardziej przyspieszy, to wtedy można tutaj dorzucać aktualizacje wyników. Link to comment Share on other sites More sharing options...
dmatusz3 Posted February 1, 2023 Report Share Posted February 1, 2023 Dziękuję za informację Link to comment Share on other sites More sharing options...
Recommended Posts