perlon

Użytkownik forum
  • Postów

    434
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    36

Treść opublikowana przez perlon

  1. Takie dziwne zachowanie multilidera z różnymi kolorami tekstu. Grubość linii dla całego obiektu multilidera ( ramka, odnośnik i tekst) jest brana na podstawie koloru pierwszego wiersza a raczej znaku w napisie a nie wg faktycznego koloru obiektu. Na początku prezentacji jest wersja 2020 w której wszystko jest jak nalezy. 2004PT_K04.dwg
  2. Nie wiem czy było zgłaszane ale w 2022 jak się rysuje kontynuację wymiaru i jest zaznaczony osnap PERPENDICULAR to złapanie czegokolwiek graniczy z cudem.
  3. Opisywany problem w wersji 2021, i w wersji 2022 beta Niestety w wydaniu oficjalnym też mi się przytrafia poniższe 😞 VERNUM = "22.00_2021.05.27(2b8dc7e7847)_x64" (read only) Podpis problemu: Nazwa zdarzenia problemu: APPCRASH Nazwa aplikacji: ZWCAD.exe Wersja aplikacji: 22.0.0.1 Sygnatura czasowa aplikacji: 60ae5a5e Nazwa modułu z błędem: ntdll.dll Wersja modułu z błędem: 6.3.9600.20090 Sygnatura czasowa modułu z błędem: 60e9188b Kod wyjątku: c0000005 Przesunięcie wyjątku: 00000000000543fb Wersja systemu operacyjnego: 6.3.9600.2.0.0.256.48 Identyfikator ustawień regionalnych: 1045 Dodatkowe informacje 1: a824 Dodatkowe informacje 2: a8246ba26b9c8432b80fab90807e66d1 Dodatkowe informacje 3: 14cd Dodatkowe informacje 4: 14cdee159ddf840d188c17e498ab4065 Przeczytaj w trybie online nasze zasady zachowania poufności informacji: http://go.microsoft.com/fwlink/?linkid=280262 Jeśli zasady zachowania poufności informacji w trybie online nie są dostępne, przeczytaj nasze zasady zachowania poufności informacji w trybie offline: C:\Windows\system32\pl-PL\erofflps.txt
  4. Witam. Jak w temacie. Czy jest coś takiego możliwe w środowisku ZwCAD ewentualnie jakieś narzędzia zewnętrzne?
  5. wrilte-line potrzebuje jako argument stringa. w strcat mamy listę stringów do sklejenia każdy z elementów musi być zamknięty w cudzysłowy chyba że ma być sklejona wartość zmiennej np. filename ele nazwa pliku w skrypcie ,usi byc zamknięta w cudzysłowy więc w strcat musimy wrzucić również cudzusłowy. żeby uzyskać cudzysłow w skrypcie trzeba zrobić coś takiego : (strcat "_open " "cudzysłow" filename "cudzysłów" "spacja" "cudzysłów" "_ltscale" "cudzysłów" "spacja" "cudzysłów" "1" "cudzysłów") zamień teraz spacja na znak spacji i cudzysłów na parę znaków \" i otrzymasz taki ciekawy ciąg. (strcat "_open " "\"" filename "\"" " " "\"" "_ltscale" "\"" " " "\"" "1" "\"") Dwa cudzysłowy obok siebie to "\"" "\"" powinno zadziałać "\"\"". Jakoś się nad tym zmóżdżałem. Można zapewne przyklejać spacje do poprzedzających ciągów ale u mnie to są oddzielne ciągi więc tych cudzysłowów się trochę narobiło. W sumie to chyba faktycznie przegiąłem. Obie linie dają ten sam efekt (write-line "(vl-cmdf \"setvar\" \"ltscale\" \"1\" \"\")" scriptname) (write-line (strcat "(vl-cmdf \"" "setvar\"" " " "\"" "ltscale\"" " " "\"1\"" " " "\"" "\"" ")") scriptname)
  6. (getvar "loginname")
  7. Powinno zabanglać (defun C:LTSALLDWG ( / filename doc scriptname) (setq scriptname (open "e:\\temp\\batch.scr" "w")) (vlax-for doc (vla-get-documents (vlax-get-acad-object)) (progn (setq filename (vla-get-FullName doc)) (write-line (strcat "_open \"" filename "\"") scriptname) (write-line (strcat "(vl-cmdf \"" "setvar\"" " " "\"" "ltscale\"" " " "\"1\"" " " "\"" "\"" ")") scriptname) (write-line (strcat "(vl-cmdf \"" "_.layer\"" " " "\"" "_freeze\"" " " "\"*podpisy*,*opisy*\"" " " "\"" "\"" ")") scriptname) (write-line "_qsave" scriptname) (write-line "_close" scriptname) ) ) (close scriptname) (princ) ) Ale musisz pamiętać, żeby przed odpaleniem skryptu zamknąć wszystkie rysunki, Możesz usunąć ostatnią linijkę z _close to wtedy rysunki ze skryptu pozostaną otwarte.
  8. Może wystarczy do skryptu dorzucić jedną linijkę i będzie zamrażanie warstw (write-line (strcat "(vl-cmdf \"" "_.layer\"" " " "\"" "_freeze\"" " " "\"*podpisy*,*opisy*\"" " " "\"" "\"" ")") scriptname) A generator skryptu można przerobić żeby lista plików była na wejściu z jakiegoś pliku zewnętrznego. Wtedy można przerabiać pliki z różnych lokalizacji i wybiórczo.
  9. Podpierając się lispem LeeMac'a można wybrać kartotekę z plikami dwg i w czambuł polecieć wszystkie wygenerowanym skryptem. (defun C:LTSALLDWG ( / count dir filename files scriptname) (setq dir (LM:DirectoryDialog "Select directory" "" 1)) (if dir (setq files (vl-directory-files dir "*.dwg" 1)) ) (if files (progn (setq scriptname (open "e:\\temp\\batch.scr" "w") count 0 ) (while (setq filename (nth count files)) (setq filename (strcat dir "\\" filename)) (write-line (strcat "_open \"" filename "\"") scriptname) (write-line (strcat "(vl-cmdf \"" "setvar\"" " " "\"" "ltscale\"" " " "\"1\"" " " "\"" "\"" ")") scriptname) (write-line "_qsave" scriptname) (write-line "_close" scriptname) (setq count (1+ count)) ) (close scriptname) ) ) (princ) ) ;;-------------------=={ Directory Dialog }==-----------------;; ;; ;; ;; Displays a dialog prompting the user to select a folder ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Arguments: ;; ;; msg - message to display at top of dialog ;; ;; dir - root directory (or nil) ;; ;; flag - bit coded flag specifying dialog display settings ;; ;;------------------------------------------------------------;; ;; Returns: Selected folder filepath, else nil ;; ;;------------------------------------------------------------;; (defun LM:DirectoryDialog ( msg dir flag / Shell Fold Self Path ) (vl-catch-all-apply (function (lambda ( / ac HWND ) (if (setq Shell (vla-getInterfaceObject (setq ac (vlax-get-acad-object)) "Shell.Application") HWND (vl-catch-all-apply 'vla-get-HWND (list ac)) Fold (vlax-invoke-method Shell 'BrowseForFolder (if (vl-catch-all-error-p HWND) 0 HWND) msg flag dir) ) (setq Self (vlax-get-property Fold 'Self) Path (vlax-get-property Self 'Path) Path (vl-string-right-trim "\\" (vl-string-translate "/" "\\" Path)) ) ) ) ) ) (if Self (vlax-release-object Self)) (if Fold (vlax-release-object Fold)) (if Shell (vlax-release-object Shell)) Path ) ;Symbol Type Description ;msg String Message to display to the top of the dialog (may be an empty string) ;dir String (Optional) Root Directory, user cannot navigate above this level ;flag Integer Bit flags controlling the behaviour of the dialog interface (detailed below) ;Returns: Selected Directory, else nil if user presses Cancel ;Flag Bit Values ;Bit Result ;0 Standard behaviour (Default) ;1 Only file system folders can be selected. If this bit is set, the OK button is disabled if the user selects a folder that doesn't belong to the file system. ;2 The user is prohibited from browsing below the domain within a network ;4 Room for status text is provided under the dialog box ;8 Returns file system ancestors only. An ancestor is a subfolder that is beneath the root folder. If the user selects an ancestor of the root folder that is not part of the file system, the OK button is grayed. ;16 Shows an edit box in the dialog box for the user to type the name of an item. ;32 Validate the name typed in the edit box. ;64 Enable drag-and-drop capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands. ;128 The browse dialog box can display URLs. ;256 When combined with flag 64, adds a usage hint to the dialog box, in place of the edit box. ;512 Suppresses display of the 'New Folder' button ;1024 When the selected item is a shortcut, return the PIDL of the shortcut itself rather than its target. ;4096 Enables the user to browse the network branch for computer names. If the user selects anything other than a computer, the OK button is grayed. ;8192 Enables the user to browse the network branch for printer names. If the user selects anything other than a printer, the OK button is grayed. ;16384 Allows browsing for everything: the browse dialog box displays files as well as folders. ;32768 If combined with flag 64, the browse dialog box can display shareable resources on remote systems. ;65536 Windows7 & later: Allow folder junctions such as a library or a compressed file with a .zip file name extension to be browsed.
  10. (defun c:ltscaleall ( / ) (vl-load-com) (vlax-for OpenDwgs (vla-get-documents (vlax-get-acad-object)) (progn (print OpenDwgs) (vla-activate OpenDwgs) (setvar "ltscale" 200) (princ) ) ) (princ) ) Ale niestety mimo że lisp zamiata po otwartych rysunkach to ltscale ustawia tylko w tym z którego jest odpalony lisp. Wg mnie lispem tego sie nie da ale powinno się dać skryptem który otworzy plik coś zrobi i zamknie plik.
  11. Takie pytanko. Jest jakiś command który pokazuje i chowa ten panel? Można oczywiście przez NETDEBUG'a ale może jest coś bezpośrednio z linii komend?
  12. Zaktualizowałem repozytorium o opis działania. Repo jest tak zrobione, że po uruchomieniu Debug w VStudio powinien sie odpalić ZwCAD2020 automatycznie załadować dll i uruchomić komendę. W przypadku posiadania innej wersji należy zaktualizować property projektu. Ładowanie skompilowanej dll'ki z lispa: (vl-load-com) (vl-cmdf "netload" "GetHeightByCoordinates.dll") Ewentualnie trzeba dodać z przodu .dll ścieżkę dostępu. Wywołanie z linii komend CK_GetHbyXY lub z lispa (command "CK_GETHBYXY") Powyższe można wywołać we własnych lispach (na razie komunikat jest wysyłany tylko na konsolę) lub podpiąć pod menu lub przycisk na toolbarsie. W załączeniu skompilowana dll'ka. Na chwilę obecną komenda zwraca jedynie komunikat o uzyskanej rzędnej wysokościowej. Tak dla sprawdzenia możliwości. Dalsza obróbka pozyskanej iniformacji wedle wymagań. Jak sprecyzujesz co chcesz konkretnie uzyskać to mogę to dopisać. W kodzie użyłem krotek, dlatego wymagany jest dostęp do System.ValueTuple.dll który również załączam. GetHeightByCoordinates.dll System.ValueTuple.dll
  13. Takie coś na razie mnię wyszło. Komenda zwraca do linii poleceń komunikat z odczytaną rzędną wysokosciową na podstawie odpowiedzi z portalu. Jak ma wstawiać metkę albo blok to trzeba jeszcze pokodzić. Jest również metoda ConvertPoint3dToCoordinate na razie pusta, gdyby zaszła potrzeba wprowadzenia konwersji układów współrzędnych. using System.Net.Http; using ZwSoft.ZwCAD.ApplicationServices; using ZwSoft.ZwCAD.EditorInput; using ZwSoft.ZwCAD.Geometry; using ZwSoft.ZwCAD.Runtime; namespace GetHeightByCoordinates { public static class Commands { [CommandMethod("CK_GetHbyXY")] public static void GetHeightByCoordinateXY() { var (X, Y) = ConvertPoint3dToCoordinate(GetPoint()); var height = GetHeight(X, Y); Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage($"\n{height}"); } public static string GetHeight(double coordinateX, double coordinateY) { string url = $"https://services.gugik.gov.pl/nmt/?request=GetHByXY&x={coordinateX}&y={coordinateY}"; return new HttpClient().GetAsync(url).Result.Content.ReadAsStringAsync().Result; } private static Point3d GetPoint() { PromptPointOptions pPtOpts = new PromptPointOptions("\nWskaz punkt na mapie: "); PromptPointResult pPtRes = Application.DocumentManager.MdiActiveDocument.Editor.GetPoint(pPtOpts); return pPtRes.Value; } private static (double X, double Y) ConvertPoint3dToCoordinate(Point3d point) { // convert pick point to coordinates return ( point.X, point.Y ); } } } cały projekt do ściągnięcia z Github'a https://github.com/TomekTkaczyk/GetHeightByCoordinates
  14. Wydaje się, że .NET daje out of box obsługę HTTP i aż się prosi, żeby to zrobić w C#. No to będzie ćwiczenie do zrobienia
  15. Mi nagminnie przytrafia się crash przy starcie 😞 Używam do pracy wersji 2020 która jest o niebo stabilniejsza. 2021 w zasadzie sporadycznie na zasadzie "a co tam, spróbuję" no i mam gazetą między oczy ;). Jak już wystartuje to chodzi, ale każde otwarcie nowego rysunku to starch o już aktualnie otwarte. Subiektywnie 2021 wydaje się szybszy od poprzedników ale niestety przedkładam nad to stabilność.
  16. A na czym miałaby polegać ta pomoc? Co chcesz konkretnie osiągnąć. Jaki jest związek bloku z atrybutami z polilinią?
  17. 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
  18. 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
  19. Może to pomoże : (defun c:okregi (/) (setq malypromien (getreal "Podaj maly promien: ")) (setq aaa '( (0 . "CIRCLE") (410 . "Model") (-4 . ">=")) ) (setq bbb (append aaa (list (cons 40 malypromien)))) (setq zbior (ssget "X" bbb)) (if zbior (princ (setq ile (sslength zbior))) (princ "\nBrak elementow")) (princ) )
  20. Mam zainstalowaną 2020 i 2021. Przyznam się bez bicia, że też ustawiłem na domyślny na powrót 2020, bo za często się 2021 wywala i krew w piach. W moim przypadku wywala się przy starcie. Zawszę drżę przy otwieraniu kolejnego pliku. Wywali się, czy się nie wywali. Jak u bacy co to deszcz przepowiadał. A poddobno komputery mają zachowania deterministyczne a nie probabilistyczne. No chyba że to są komputery kwantowe.
  21. Prze chwilę wydawało mi się że poprawili, ale jednak coś takiego mi wywalił 3x zanim odpalił na pusto 😞
  22. Wczytanie ZWCAD.CUIX zapodało jedynie paski narzędzi bez menu rozwijalnego.Ostatecznie pomógł reset profilu i ustawianie wszystkiego od nowa.
  23. Kolezanka ma jeszcze lepiej. Po instalacji on-line taki obrazek:
  24. Update online
  25. Aktualizacja SP1 powoduje podmiane cuix na domyślny. Menu od nakładek i cały układ pasków trzeba ustawiać od nowa. To chyba nie tędy droga, albo należy wyraźnie wskazać, że przed aktualizacją należy skopiować ręcznie cuix i potem ręcznie odtworzyć. Zapisu całego profilu przed aktualizacją nie testowałem bo nie przyszło mi do głowy, żeby zarchiwizować profil.