Marek-M Opublikowano 16 Marca 2021 Zgłoś Opublikowano 16 Marca 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
Marek-M Opublikowano 16 Marca 2021 Autor Zgłoś Opublikowano 16 Marca 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.
Marek-M Opublikowano 16 Marca 2021 Autor Zgłoś Opublikowano 16 Marca 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:
dmatusz3 Opublikowano 17 Marca 2021 Zgłoś Opublikowano 17 Marca 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',''
Marek-M Opublikowano 17 Marca 2021 Autor Zgłoś Opublikowano 17 Marca 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
Marek-M Opublikowano 17 Marca 2021 Autor Zgłoś Opublikowano 17 Marca 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.
dmatusz3 Opublikowano 17 Marca 2021 Zgłoś Opublikowano 17 Marca 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
Marek-M Opublikowano 17 Marca 2021 Autor Zgłoś Opublikowano 17 Marca 2021 Wysłałem dane do testowania w wiadomości prywatnej. dmatusz3 1
perlon Opublikowano 19 Marca 2021 Zgłoś Opublikowano 19 Marca 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
Marek-M Opublikowano 19 Marca 2021 Autor Zgłoś Opublikowano 19 Marca 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ł!
perlon Opublikowano 19 Marca 2021 Zgłoś Opublikowano 19 Marca 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
dmatusz3 Opublikowano 19 Marca 2021 Zgłoś Opublikowano 19 Marca 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
Marek-M Opublikowano 19 Marca 2021 Autor Zgłoś Opublikowano 19 Marca 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)
dmatusz3 Opublikowano 19 Marca 2021 Zgłoś Opublikowano 19 Marca 2021 Może takie rozwiązanie jak w lispie do szyfrowania lispów?
Marek-M Opublikowano 18 Sierpnia 2022 Autor Zgłoś Opublikowano 18 Sierpnia 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
dmatusz3 Opublikowano 23 Sierpnia 2022 Zgłoś Opublikowano 23 Sierpnia 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.
Marek-M Opublikowano 23 Sierpnia 2022 Autor Zgłoś Opublikowano 23 Sierpnia 2022 Super, mam nadzieję, że szybko uda im się zoptymalizować proces eksportowania danych z rysunków.
Marek-M Opublikowano 1 Lutego 2023 Autor Zgłoś Opublikowano 1 Lutego 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.
Rekomendowane odpowiedzi