dmatusz3

Administratorzy
  • Postów

    3 825
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    286

Aktywność reputacji

  1. Upvote
    dmatusz3 przyznał(a) reputację dla kruszynski w LISP AutoCAD - etykiety wysokości   
    Może tak:
    (defun c:lh (/ p x y ptcoord textloc) (while (setq p (getpoint "\nPick Point: ")) (command "_POINT" p) (setq z (rtos (caddr p))) (setq ptcoord (strcat z)) (setq textloc (getpoint "\nPick Label Location: ")) (command "_TEXT" (list (car textloc) (cadr textloc) (caddr p) ) 0.3 0 ptcoord "" ) ) )
  2. Like
    dmatusz3 otrzymał(a) reputację od BKW w ZWCad 2021 Beta   
    Ukazała się druga beta zawierająca szereg poprawek. Między innymi poprawiono obsługę myszki.
    Więcej informacji 
     
  3. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Siatka i ponumerowanie punktów jej przecięcia   
    Szczegóły:

  4. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Siatka i ponumerowanie punktów jej przecięcia   
    Wczoraj bodaj, miałem pytanie od użytkownika tego Forum o sprawny sposób narysowania siatki 100x100 i ponumerowanie punktów przecięcia (razem 10 000). Dzisiaj przyszedł mi do głowy pomysł z zastosowaniem kopiowania z szykiem i numeracji tekstu, więc tutaj zamieszczę odpowiedź dla zainteresowanego:

  5. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Możliwe problemy z drukowaniem   
    Pojawiła się aktualizacja Windows, która może powodować problem z drukowaniem (w tym również z ZWCAD).
    Wg. Microsoft - poprawka KB4557957:
    Niektóre drukarki działają pomimo instalacji, inne drukarki nie działają, a nawet powodują crash aplikacji.
    Można do wydruku wybierać drukarkę działającą (jeżeli jest), a można też wycofać poprawkę:

    W przypadku wycofania warto się zastanowić na wstrzymaniem aktualizacji, by uchronić się przed powtórką:

    Powyższe powinno pomóc nie tylko przy drukowaniu z ZWCAD, a również przy innych aplikacjach.
  6. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w CUI - dostosowanie interfejsu   
    Często dział wsparcia dostaje pytania o dostosowanie interfejsu ZWCAD'a.
    Nie jest to trudne, choć wymaga pewnej chronologii i łatwiej to pokazać, niż wytłumaczyć przez telefon.
    Pokażę więc 3 typowe działania w CUI:
    - edycja interfejsu wstążkowego

    - dodanie skrótu klawiszowego

    - modyfikacja pasków narzędziowych w interfejsie klasycznym

  7. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Zmiana sposobu wyświetlania okna warstw   
    Prawdopodobnie były używane dwa (albo inne) monitory - pozycja okien zapisała się w rejestrze i otwiera się poza widokiem.
    Proszę je sprowadzić na podstawowy monitor - analogicznie jak tutaj:

     
  8. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Archicad, ZWCAD i zasłona   
    Dzień dobry,
    Na szybko - zaznaczył bym je przez szybki wybór i przeniósł na warstwę, którą bym wyłączył:

  9. Like
    dmatusz3 otrzymał(a) reputację od Adam Klaczek w Archicad, ZWCAD i zasłona   
    Sposobem wyświetlania obramowań zasłon steruje zmienna  WIPEOUTFRAME
    Zasłony możemy zaznaczyć na rysunku za pomocą narzędzia "Szybki wybór" _qselect 

     
    Wtedy wszystkie zasłony można przenieść na osobną warstwę i ukryć tę warstwę.
     
  10. Like
    dmatusz3 otrzymał(a) reputację od kruszynski w Domyślne wartości zmiennych systemowych   
    Można także spróbować ustawić zmienną w pliku lsp, który jest ładowany podczas tworzenia nowego rysunku jak również i otwierania istniejącego.
    Ścieżka do pliku   c:\Program Files\ZWSOFT\ZWCAD 2020\Support\ZWCAD2020.lsp
    Poniższy wpis wyłącza wyświetlanie siatki.
    (setvar "GRIDMODE" 0)  
  11. Upvote
    dmatusz3 przyznał(a) reputację dla ibaron w Widok rozstrzelony   
    Dla utworzonego wcześniej złożenia, w programie ZW3D możemy w bardzo prosty sposób przejść do widoku rozstrzelonego, a także automatycznie nagrać krótkie wideo prezentujące widok rozstrzelony dla potencjalnego klienta. Jest też możliwość przechodzenia pomiędzy widokami i zmiany utworzonego widoku rozstrzelonego.
    widok rozstrzelony2.mp4
  12. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w [C#] Komunikacja z aplikacją Zwcad   
    Na podstawie Kean Walmsley blog
    using System; using System.Windows.Forms; using System.Runtime.InteropServices; using ZWCAD; namespace CadExecute { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { const string progID = "ZWCAD.application"; IZcadApplication zcApp = null; try { zcApp = (IZcadApplication)Marshal.GetActiveObject(progID); } catch { try { Type acType = Type.GetTypeFromProgID(progID); zcApp = (IZcadApplication)Activator.CreateInstance(acType, true); } catch { MessageBox.Show("Cannot create object of type \"" + progID + "\""); } } if (zcApp != null) { zcApp.Visible = true; zcApp.ActiveDocument.SendCommand("_CIRCLE 0,0 10 "); } } } } Przestrzeń nazw ZWCAD trzeba dodać przez referencję COM -> OLE Automation i ZWCAD 2020 Type Library

     
  13. Upvote
    dmatusz3 przyznał(a) reputację dla Martin_S w Measure/Divide - czyli nawijanie...   
    mogło by być lepiej ... komenda Helix pomocna
    te spodnie krzywizny do szalowania masakra jakaś nadal

  14. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Measure/Divide - czyli nawijanie...   
    Otrzymaliśmy ciekawe pytanie, czy da się ułatwić narysowanie nawiniętego pancerza.
    Zaproponowaliśmy stworzenie bloku z narysowanego fragmentu, użycie MEASURE (lub DIVIDE) i wstawienie tego bloku z dopasowaniem, na spiralnej ścieżce narysowanej za pomocą polecenia HELIX. Oczywiście w takim przypadku należy świadomie dobrać punkt bazowy bloku i długość odcinka.
    Oto prosta ilustracja tego rozwiązania:

  15. Upvote
    dmatusz3 przyznał(a) reputację dla ibaron w ZW3D-nie tylko części maszyn   
    Program ZW3D może być wykorzystywany w różnych branżach, dziś prosty model ławki.
    ławka1.mp4
  16. Upvote
    dmatusz3 otrzymał(a) reputację od metiu w Zasięg rzutni   
    Spróbowałbym z funkcją _regen.
    Można także rozszerzyć rzutnie za pomocą funkcji _VPMAX i _VPMIN.
     
  17. Upvote
    dmatusz3 otrzymał(a) reputację od Chris w Agnieszka   
    Można użyć także opcji do rysowania okręgów przez 3 punkty (3P w linii poleceń) i wskazać 3 punkty styczne.
    Dodatkowe opcje do rysowania okręgów opisaliśmy tutaj https://www.zwcad.pl/help/zwcad-help/okrag.html
    Proszę o poprawę tytułu posta tak aby odpowiadał rzeczywistości.
     
  18. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Agnieszka   
    Dzień dobry,
    A łatwiej, używając tylko jednej funkcji _CIRCLE z opcją _tan, czyli okrąg styczny do 3 obiektów:

     

  19. Upvote
    dmatusz3 przyznał(a) reputację dla Chris w Agnieszka   
    Witaj,
    rysujesz trójkąt (największy), następnie wpisujesz w niego okrąg. Okrąg wpisujesz wyznaczając dwusieczne kątów utworzonych z boków trójkąta. W miejscu przecięcia dwusiecznych kątów trójkąta dużego otrzymasz środek okręgu wpisanego w trójkąt. Okrąg wpisany w trójkąt będzie miał promień, który przechodzi przez środek okręgu, czyli punkty przecięcia dwusiecznych kątów dużego trójkąta i jest prostopadły do boków trójkąta dużego. W ten sposób otrzymasz duży trójkąt z wpisanym dużym okręgiem. Wyznaczenie mniejszych okręgów wykonujesz podobnie jak dużego. Zanim wyznaczysz małe okręgi musisz utworzyć małe trójkąty. Małe trójkąty wyznaczysz rysując prostą, która jest prostopadła do dwusiecznych kątów dużego trójkąta i przechodzi przez punkt przecięcia dwusiecznej i okręgu dużego. Załączam schemat pomocniczy.
    1. Trójkąt (białe linie)
    2. Dwusieczne kątów trójkąta (czerwone linie opisane 'dwusieczna')
    3. Rysujesz prostą przechodzącą przez punkt przecięcia dwusiecznych i prostopadłą do boków trójkąta - odcinek miedzy bokiem a punktem przecięcia jest promieniem trójkąta (zielona prosta opisana 'r')
    4, Wpisujesz okrąg w trójkąt
    5. Rysujesz prostą przechodzącą przez punkt przecięcia okręgu wpisanego i dwusiecznej kąta, która jest prostopadła do dwusiecznej - wyznaczasz małe trójkąty (linia cyjan, prostopadła do czerwonej dwusiecznej)
    6. Rysujesz dwusieczną małego trójkąta wyznaczonego przez linię koloru cyjan.
    7. Wpisujesz trójkąt, którego promień to punkt przecięcia dwusiecznych małego trójkąta i punkt styczny linii koloru cyjan, który jest również punktem przecięcia dwusiecznej kąta dużego i małego trójkąta z dużym okręgiem.
    8. Powtarzasz procedurę z punktów 5 do 7 dla kolejnych kątów/naroży trójkąta.
     

  20. Upvote
    dmatusz3 przyznał(a) reputację dla ibaron w Bloki w szkicu   
    W jednym z poprzednich filmów pokazywałam bazę gotowych  pod-szkiców, które można wykorzystać tworząc szkic. Dziś film, jak stworzyć własny blok i zapisać jako własny pod-szkic.
    tworzenie własnego bloku.mp4
  21. Upvote
    dmatusz3 otrzymał(a) reputację od e_CAD w [ZWCAD/VBA | GRUPA] Nieprawidłowe rozbijanie grup przy kopiowaniu do nowego rysunku   
    Z tego co pamiętam (może się mylę) ale kopiowanie grup pomiędzy rysunkami nie było możliwe. Grupy były zawsze rozbijane. Również w Autocadzie.
    Jak tworzyliśmy nakładkę do zarządzania grupami https://www.zwcad.pl/ui-szansa/group-manager.html to utworzyliśmy funkcje do wklejenia obiektów ze schowka do nowego rysunku jako grupa.
     
     
  22. Upvote
    dmatusz3 przyznał(a) reputację dla Chris w [ZWCAD/VBA | GRUPA] Nieprawidłowe rozbijanie grup przy kopiowaniu do nowego rysunku   
    Witam,
    z tego co pamiętam to chyba żaden program CAD nie kopiuje grup między rysunkami dwg bez rozbicia.
    Sprawdzałem całkiem niedawno na AC2018 i po skopiowaniu grupy były rozbijane. Chyba, że jest jakaś zmienna, która za to odpowiada, ale wątpię.
    Temat rozbijania grup w trakcie kopiowania między rysunkami był poruszany tutaj na forum kilka razy...
    Jest możliwe skopiowanie grupy bez rozbicia co udowodnił mi kiedyś @dmatusz3.
    Rysunek z grupą należy wczytać jako xref do docelowego DWGa, a następnie wczytany XREF zbindować. Taka operacja prowadzi to rozbicia/rozblokowania XREFA, ale o dziwo grupy pozostają 'zgrupowane'.

    Alternatywnie odsyłam do posta @dmatusz3 powyżej.
     
  23. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w [C#] Zdarzenie zmiana schematu kolorów interfejsu   
    Znalazłem sposób na monitorowanie zmiany interfejsu więc się dzielę moim rozwiązaniem dla potomności co pozwoli zamknąć ten wątek:
    1. Trzeba zasubskrybować się do handlera ApplicationServices.SystemVariableChangedEventHandler
    2. W obsłudze zdarzenia trzeba sprawdzić, zmiana której zmiennej systemowej wywołała to zdarzenie. Jeżeli zdarzenie wywołała zmienna COLORSCHEME należy odczytać z rejestru systemowego wartość COLORSCHEME klucza Software\ZWSOFT\ZWCAD\2020\en-US\Profiles\Default\Config (dla wersji EN, dla PL trzeba odczytać z gałęzi pl-PL) Dzięki Adam Klaczek. Twoja podpowiedź była bardzo pomocna.
    podpięcie do handlera i metoda podpinana do handlera
    Application.SystemVariableChanged += OnSystemVariableChanged private void OnSystemVariableChanged(object _sender, SystemVariableChangedEventArgs _arg) { if (_arg.Name == "COLORSCHEME") { // tu pobieram z kontenera dependece injection instancję serwisu obsługującego schemat kolorów interfejsu ZwCAD'a // i odpalam własne zdarzenie rozgłaszające, że została dokonana zmiana kolorów using(var scope = DI.Container.BeginLifetimeScope()) { var service = DI.Container.Resolve<IInterfaceSchemeService>(); ChangeInterfaceScheme?.Invoke(_sender, new ChangeInterfaceSchemeEventArgs(service)); } } } w której odpalam już własne zdarzenie ChangeInterfaceScheme (skoro nie dokopałem się do takiego zdarzenia dostarczanego przez ZwSOFT to sobie zrobiłem własne 😁 )
    public event EventHandler<ChangeInterfaceSchemeEventArgs> ChangeInterfaceScheme; public class ChangeInterfaceSchemeEventArgs : EventArgs { public IInterfaceSchemeService Service { private set; get; } public ChangeInterfaceSchemeEventArgs(IInterfaceSchemeService _service) { Service = _service; } } W mojej konkretnej implementacji do zdarzenia mogą być podpinane metody przyjmujące w argumencie serwis IInterfaceSchemeService który zajmuje się dostarczaniem kolorów do kontrolek interfejsu użytkownika. Jest to instancja mojej własnej klasy którą pozyskuję z kontenera zależności Autofac. Handler ChangeInterfaceScheme jest właściwością mojej klasy statycznej AppSettings która jest dostępna w całej aplikacji i trzyma róże globalne ustawienia. Klasyczny singleton. Dlatego do tego handlera mogę podpiąć w dowolnym miejscu aplikacji dowolną obsługę zdarzenia zmiany interfejsu uzyskując dostęp do serwisu podającego na tacy jakie kolory mają mieć aktualnie kontrolki. Wystarczy zmienić właściwości kontrolek WindowsForms, HTML, WPF czy czego tam się nie używa. Jeszcze tylko specyfikacja IInterfaceSchemeService
    public interface IInterfaceSchemeService { InterfaceScheme GetScheme(); Color GetBackColor(); Color GetForeColor(); } Na koniec należy dodać, że mój serwis InterfaceSchemeService posiada statyczną właściwość ColorScheme którą mogę odczytać w dowolnym miejscu aplikacji w szczególności przy starcie aplikacji i dzięki temu moja nakładka od razu może startować ze zgodnymi kolorami. 
    Pełna implementacja z zastosowaniem jest dostępna w moim szarpowaniu opisanym w tym wątku gdzie znajduje się link do GITHub'a z kompletnymi źródłami.
  24. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w [C#] Niezgodność wersji PL i EN   
    Jeszcze uwaga dotycząca procesu kompilacji. Ponieważ projekt CADKit jest niezależny od CADKitBasic i CADKitElevationMarks choć jest główną biblioteką która ma wczytywać pozostałe nie może być projektem głównym. Tzn może być ale jego kompilacja nie spowoduje kompilacji dwóch pozostały bibliotek. Więc ich nie będzie i przy starcie nie zostaną załadowane. Żeby to obejść dopisałem w post-buildzie pozostałych projektów : copy $(TargetPath) $(SolutionDir)\CADKit\bin\$(ConfigurationName) co każdorazowo po kompilacji projektu skopiuje dll'kę do katalogu CADKit/bin/$(ConfigurationName). No ale F5 wywołuje kompilację głównego projektu i tylko jego zależności. Tak więc wymagany jest F6 (Build solution) a potem F5 (Start debugging). Obejściem problemu może być uczynienie głównym projektem testów jednostkowych. Jest to projekt do którego są podpięte jako zależności wszystkie pozostałe projekty i jego kompilacja wywoła kompilację wszystkich pozostałych a więc skopiowanie gotowych dll do katalogu CADKit/bin/$(ConfigurationName). Pozostaje tylko odpalić F5 ustawić Start external program. (Chyba to powinienem opisać w Readme na GITHubie ). Tak na marginesie testy jednostkowe też leżą i kwiczą.
    Jak widać projekt ma jeszcze mnóstwo mankamentów, niedoróbek i wymaga licznych refaktoryzacji. Jeżeli dojrzeje być może znajdzie swoje miejsce w dziale" Nakładki na ZWCAD i ZWCAD+". Dlatego wszelka pomoc jest bardzo mile widziana z zastrzeżeniem że zawsze to będzie Open Source.
  25. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w ZWCAD2020 SP2   
    Eksport layout jest fajny. Docina polilinie na krawędzi rzutni, koło zamienia na łuk itp ale ma również drobne mankamenty np.nie docina hatchy, text multiline jest w nowym rysunku w całości a nie tylko  w widocznej części, podobnie teksty jednowierszowe. Mam świadomość, że z tekstami to może być decyzja strategiczna ale hatche powinien docinać. Generalnie dobra robota i nie trzeba korzystać z zewnętrznych narzędzi.
    Co do eksportu do dgn to wydaje się, zamiast osobnego polecenia exptort coś tam powinien format zapisu rysunku być dostępny bezpośrednio w oknie SaveAs i Open. Nie widzę powodu dla którego mnoży się komendy zamiast zaszyć to w listę dostępnych formatów. Podobnie STL nie można by zrobić typu w oknie SaveAs zamiast komendy STLOUT?