dmatusz3

Administratorzy
  • Postów

    3 789
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    277

Aktywność reputacji

  1. Upvote
    dmatusz3 otrzymał(a) reputację od alf w Wstawianie map WMS z serwerów gov.pl   
    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl.
    Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. 
    Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej.

     
    Biblioteki do pobrania ZWMS.zip
    Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll

    Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
     
     
  2. Upvote
    dmatusz3 otrzymał(a) reputację od pawmal w Wstawianie map WMS z serwerów gov.pl   
    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl.
    Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. 
    Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej.

     
    Biblioteki do pobrania ZWMS.zip
    Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll

    Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
     
     
  3. Upvote
    dmatusz3 otrzymał(a) reputację od perlon w Wstawianie map WMS z serwerów gov.pl   
    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl.
    Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. 
    Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej.

     
    Biblioteki do pobrania ZWMS.zip
    Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll

    Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
     
     
  4. Upvote
    dmatusz3 otrzymał(a) reputację od Strzelba w Wstawianie map WMS z serwerów gov.pl   
    Pracujemy obecnie nad dodaniem do naszych nakładek (np. ZWGeo, ZWTraffic) możliwości wstawiania map z zasobów z portali gov.pl.
    Funkcjonalność jest w bardzo początkowej fazie, ale postanowiliśmy ją udostępnić. 
    Możemy wybrać różne serwery z danymi i sprawdzić jakie udostępnia dane (warstwy). Następnie definiujemy obszar w który ma być wstawiona mapa. Wygląda to tak jak na animacji poniżej.

     
    Biblioteki do pobrania ZWMS.zip
    Pobrany plik zip należy rozpakować do katalogu i poleceniem netload (tylko wersja ZWCAD Pro) wczytać plik ZWMS.dll

    Wtedy pojawi się dodatkowy panel. W pliku zip znajduje się również plik Plik_testowy.dwg, który został użyty podczas kręcenia filmu.
     
     
  5. Upvote
    dmatusz3 przyznał(a) reputację dla pop3k w [VBA] Zwcad - zaznacz blok ale uważaj na grupy   
    Ok, znalazłem.
    Za dużo pętli w 
    For I = 0 To ssetObj.Count powinno być 
    For I = 0 To ssetObj.Count -1 Dziękuję bardzo. Ładnie działa!
  6. Upvote
    dmatusz3 przyznał(a) reputację dla kruszynski w [VBA] Zwcad - zaznacz blok ale uważaj na grupy   
    Trzeba sprawdzić porównać wybrane elementy z każdym elementem w każdej grupie.
    Dim ent As ZcadEntity For I = 0 To ssetObj.Count Set ent = ssetObj.Item(I) Dim grs As ZcadGroups Dim gr As ZcadGroup Set grs = ThisDrawing.groups For Each gr In grs For J = 0 To gr.Count Dim entwgrupie As ZcadEntity Set entwgrupie = gr.Item(J) If entwgrupie Is ent Then MsgBox "element jest w grupie" Exit Sub End If Next J Next Next I  
  7. Upvote
    dmatusz3 przyznał(a) reputację dla Adam_x w ZWCAD - Bloki dynamiczne i atrybuty   
    Witam
    kiedyś napisałem taki program który odczytuje parametry bloku dynamicznego:
    sub program()
    On Error Resume Next
    Dim z As Double
    Dim x As Double
    Dim ent As ZcadEntity
    Dim blk1 As ZcadBlockReference
    Dim ContextData As Variant
    Dim sset1 As ZcadSelectionSet
    Dim dynblk As ZcadDynamicBlockReferenceProperty
    Set sset1 = ThisDrawing.SelectionSets.Add("grupa1")
    ThisDrawing.Utility.Prompt ("wybierz bloki dynamiczne :")
    sset1.SelectOnScreen
    z = ThisDrawing.Utility.GetInteger("wybierz nr. zmiennej bloku dyn : ")
    z = z - 1
    For Each ent In sset1
    If ent.ObjectName = "AcDbBlockReference" Then
    Set blk1 = ent
    If blk1.IsDynamicBlock = True Then
    ContextData = blk1.GetDynamicBlockProperties
    Set dynblk = ContextData(z)
    x = x + dynblk.Value
    End If
    End If
    Next
    ThisDrawing.Utility.Prompt ("calkowita suma współczynnika (" & dynblk.PropertyName & ") wynosi = " & x)
    ThisDrawing.Utility.Prompt (" ")
    end sub
    teraz wystarczy go tylko przerobić do potrzeb.
    zrobiłem też taki blok dynamiczny powiązany z wymiarem z nudów, może taka wersja będzie wystarczająca ??
    informacja o długości pręta i rozstawienia jest wyświetlona.
    pozdrawiam
     
    blok_pret.dwg
  8. Upvote
    dmatusz3 otrzymał(a) reputację od alf w ZWCAD 2022 - beta   
    Opis jak wstawić swój skrypt pod klawisz skrótu wstawiliśmy tutaj 
     
  9. Upvote
    dmatusz3 otrzymał(a) reputację od alf w Dodanie klawisza skrótu do funkcji w LISP   
    Pokażę jak przypisać własny skrót klawiaturowy w ZWCAD do funkcji w LISP.
    Zrobimy to na przykładzie programu LISP, który zmienia stan ustawień punktów charakterystycznych z końca, środka i centrum na wszystkie (czyli zmiennej OSMODE z wartości 7 na 13311).
    (defun c:przelaczsnapy nil (wszystko)) (defun wszystko nil (print "Teraz aktywne sa tylko wybrane snapy") (setvar "OSMODE" 7) (defun c:przelaczsnapy nil (malo)) (princ) ) (defun malo nil (print "Teraz aktywne sa wszystkie snapy") (setvar "OSMODE" 13311) (defun c:przelaczsnapy nil (wszystko)) (princ) ) Skrypt można pobrać również tutaj snapy.lsp
    W celu jego uruchomienia wystarczy przeciągnąć go na ekran rysunku, wtedy zostanie dodane nowe polecenie przelaczsnapy
     
    W celu dodania własnego skrótu na początku wywołujemy polecenie CUI

     
    W oknie konfiguracji jaki się otworzy rozwijamy pozycje "Skróty klawiaturowe"

     
    Następnie wybieramy dowolny skrót i klikamy na nim prawym klawiszem myszy.
    Z menu wybieramy "Klonuj"

     
    Edytujemy kopie polecenia. Klikając w pozycje 1 przypisujemy skrót klawiaturowy. W pozycji 2 wpisujemy jakie polecenie powinno się wykonać (^C^C_ przed poleceniem zostawiamy).

     
    Zatwierdzamy.
    Teraz wciśnięcie klawisza F4 spowoduje wywołanie programu LISP i zmianę ustawień punktów charakterystycznych.

     
     
  10. Upvote
    dmatusz3 otrzymał(a) reputację od Martin_S w Dodanie klawisza skrótu do funkcji w LISP   
    Pokażę jak przypisać własny skrót klawiaturowy w ZWCAD do funkcji w LISP.
    Zrobimy to na przykładzie programu LISP, który zmienia stan ustawień punktów charakterystycznych z końca, środka i centrum na wszystkie (czyli zmiennej OSMODE z wartości 7 na 13311).
    (defun c:przelaczsnapy nil (wszystko)) (defun wszystko nil (print "Teraz aktywne sa tylko wybrane snapy") (setvar "OSMODE" 7) (defun c:przelaczsnapy nil (malo)) (princ) ) (defun malo nil (print "Teraz aktywne sa wszystkie snapy") (setvar "OSMODE" 13311) (defun c:przelaczsnapy nil (wszystko)) (princ) ) Skrypt można pobrać również tutaj snapy.lsp
    W celu jego uruchomienia wystarczy przeciągnąć go na ekran rysunku, wtedy zostanie dodane nowe polecenie przelaczsnapy
     
    W celu dodania własnego skrótu na początku wywołujemy polecenie CUI

     
    W oknie konfiguracji jaki się otworzy rozwijamy pozycje "Skróty klawiaturowe"

     
    Następnie wybieramy dowolny skrót i klikamy na nim prawym klawiszem myszy.
    Z menu wybieramy "Klonuj"

     
    Edytujemy kopie polecenia. Klikając w pozycje 1 przypisujemy skrót klawiaturowy. W pozycji 2 wpisujemy jakie polecenie powinno się wykonać (^C^C_ przed poleceniem zostawiamy).

     
    Zatwierdzamy.
    Teraz wciśnięcie klawisza F4 spowoduje wywołanie programu LISP i zmianę ustawień punktów charakterystycznych.

     
     
  11. Upvote
    dmatusz3 otrzymał(a) reputację od Martin_S w ZWCAD 2022 - beta   
    Opis jak wstawić swój skrypt pod klawisz skrótu wstawiliśmy tutaj 
     
  12. Upvote
    dmatusz3 otrzymał(a) reputację od s1016 w ZWCAD 2022 - beta   
    Opis jak wstawić swój skrypt pod klawisz skrótu wstawiliśmy tutaj 
     
  13. Upvote
    dmatusz3 otrzymał(a) reputację od s1016 w Dodanie klawisza skrótu do funkcji w LISP   
    Pokażę jak przypisać własny skrót klawiaturowy w ZWCAD do funkcji w LISP.
    Zrobimy to na przykładzie programu LISP, który zmienia stan ustawień punktów charakterystycznych z końca, środka i centrum na wszystkie (czyli zmiennej OSMODE z wartości 7 na 13311).
    (defun c:przelaczsnapy nil (wszystko)) (defun wszystko nil (print "Teraz aktywne sa tylko wybrane snapy") (setvar "OSMODE" 7) (defun c:przelaczsnapy nil (malo)) (princ) ) (defun malo nil (print "Teraz aktywne sa wszystkie snapy") (setvar "OSMODE" 13311) (defun c:przelaczsnapy nil (wszystko)) (princ) ) Skrypt można pobrać również tutaj snapy.lsp
    W celu jego uruchomienia wystarczy przeciągnąć go na ekran rysunku, wtedy zostanie dodane nowe polecenie przelaczsnapy
     
    W celu dodania własnego skrótu na początku wywołujemy polecenie CUI

     
    W oknie konfiguracji jaki się otworzy rozwijamy pozycje "Skróty klawiaturowe"

     
    Następnie wybieramy dowolny skrót i klikamy na nim prawym klawiszem myszy.
    Z menu wybieramy "Klonuj"

     
    Edytujemy kopie polecenia. Klikając w pozycje 1 przypisujemy skrót klawiaturowy. W pozycji 2 wpisujemy jakie polecenie powinno się wykonać (^C^C_ przed poleceniem zostawiamy).

     
    Zatwierdzamy.
    Teraz wciśnięcie klawisza F4 spowoduje wywołanie programu LISP i zmianę ustawień punktów charakterystycznych.

     
     
  14. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Polecenie MULTIPLE   
    Jeżeli ktoś przegapił - w ZWCAD jest polecenie MULTIPLE, które pozwala powtarzać wybrane polecenie:

  15. Upvote
    dmatusz3 przyznał(a) reputację dla s1016 w Plany sytuacyjne   
    Używam czegoś takiego, przyspiesz pracę  w planie niesamowicie. Brakuje mi jeszcze liczenia spadku np po krawężniku.
    Do przedmiaru używam lispa zliczającego sumę wszystkich linii, plinii i łuków na warstwie, powierzchnie zliczam z właściwości hatchy
    Do profili i poprzeczek osobny program.
     

  16. Upvote
    dmatusz3 przyznał(a) reputację dla kruszynski w Automatyczny podział rysunku wykonanego w modelu na arkusze   
    Przygotowałem skrypt, który pomoże dzielić model na arkusze:
    Funkcja do uruchomienia:
    ww Działanie przedstawiłem na filmiku:

    Arkusze.zelx
  17. Like
    dmatusz3 otrzymał(a) reputację od alf w Linki oraz listy zmian. ZWCAD 2017÷ZWCAD 2025   
    Opublikowaliśmy ZWCAD 2022 beta.
    Można go pobrać z tego adresu https://jakicad.pl/zwcad?product=129&os=0&v=0&l=all
    Wybrane zmiany:
    wydruk z przeźroczystością, ulepszony import plików IFC, który powiązać z ekstrakcją danych, możliwość zmiany kolejności kolumn w oknie warstw, możliwość wyświetlania wstążki i klasycznego menu w tym samym czasie. Poniżej zrzut ekranu z modelu oraz z wydruku.

     
  18. Upvote
    dmatusz3 przyznał(a) reputację dla kruszynski w Progam do odczytywania rzędnej wysokościowej punktu ?   
    W ZWCAD program działa , dorobiłem tylko odwołanie do funkcji.
    Całość wygląda tak:
    (defun URL:Get ( url / *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nURL:Get:*error*: " ) (princ msg ) (princ "\n") ) ) ) (if (setq obj (vlax-create-object "winhttp.winhttprequest.5.1")) (progn (setq rtn (vl-catch-all-apply '(lambda nil (vlax-invoke-method obj 'open "GET" url :vlax-false) (vlax-invoke-method obj 'send) (vlax-get-property obj 'responsebody) ) ) ) (vlax-release-object obj) (if (vl-catch-all-error-p rtn) (prompt (vl-catch-all-error-message rtn)) (vl-list->string (mapcar '(lambda ( x ) (lsh (lsh x 24) -24)) (vlax-safearray->list (vlax-variant-value rtn)) ) ) ) ) ) ) (defun GUKiK:H ( coords / ; (setq coords (list 486617 637928 ) ) *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nPoint:GetHByGUKiK:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq url (strcat "https://services.gugik.gov.pl/nmt/?request=GetHByXY&x=" (rtos (car coords) ) "&y=" (rtos (cadr coords)) "" ) ) (setq H (URL:Get url) ) (atof h) ) A uruchomić można tak
    (GUKiK:H (list 486617 637928 ) ) albo nawet tak: wskazując punkt w przestrzeni
    (GUKiK:H (getpoint "\nWskaż punkt: " ) ) Wystarczy plik z załącznika wczytać do ZWCADa poleceniem appload.
     
    GUKiK.lsp
  19. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w Progam do odczytywania rzędnej wysokościowej punktu ?   
    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
  20. Upvote
    dmatusz3 przyznał(a) reputację dla perlon w Progam do odczytywania rzędnej wysokościowej punktu ?   
    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
  21. Upvote
    dmatusz3 przyznał(a) reputację dla kruszynski w brak funkcji SETBYLAYER   
    Taki skrypt mógłby wyglądać tak:
    (vl-load-com) (defun c:setByLayer ( / wybrane doc ) (setq wybrane (SelSet:Get "Wybierz elementy do zmiany" nil) ) (SetByLayer wybrane) (vla-regen ( GetThisDrawing ) acallviewports) (princ) ) (defun SetByLayer ( dozmiany / format ) (defun format ( element / ) (setq ans (vl-catch-all-apply 'vlax-put-property (list element 'Color acbylayer ) )) (if (vl-catch-all-error-p ans) (princ (vl-catch-all-error-message ans )) ) ) (cond ((listp dozmiany) (progn (foreach % dozmiany (SetByLayer %) ) )) ((= (vlax-get-property dozmiany 'EntityName ) "AcDbBlockReference") (progn (format dozmiany) (setq elementy (Block:GetItems (vlax-get-property dozmiany 'Name ))) (SetByLayer elementy) )) (t (progn (format dozmiany) )) ) nil ) (defun GetThisDrawing ( / ) (vla-get-activedocument (vlax-get-acad-object) ) ) (defun SelSet:ToList (selset / Wynik ileelementow i *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nSelSet:ToList:*error*: " ) (princ msg ) (princ "\n") ) ) ) (if selset (progn (setq ileelementow(sslength selset) ) (setq i 0 ) (repeat ileelementow (setq Wynik (append Wynik (list (vlax-ename->vla-object(ssname selset i) ) ))) (setq i (1+ i )) ) )) Wynik ) (defun SelSet:FilterByType ( elementy typy / sl i % *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nSelSet:FilterByType:*error*: " ) (princ msg ) (princ "\n") ) ) ) ; (setq elementy (ssget ) ) (setq sl (sslength elementy)) (setq i (1- sl )) (repeat sl (setq % (ssname elementy i)) (if (not (member (cdr(assoc 0 (entget %) )) typy)) (setq elementy(ssdel % elementy)) ) (setq i (1- i) ) ) ) (defun SelSet:Get (tresc typy / selElems elementy Filter % OldNoMutt *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\n SelSet:Get:*error*: " ) (princ msg ) (princ "\n") ) ) ) ;---------------------------------------------------------- ; funkcja sprawdza, czy jakieś elementy zostały zaznaczone, jeśli nie, prosi użytkownika o wskazanie obiektów ; Argumenty: tresc - komunikat wyświetlany w pasku poleceń zachęta do wskazanie obiektów ; Wynik: lista wybranych obiektów jeśli coś zostało wybranie ; nil jeśli nic nie zostało wybrane. ; ---------------------------------------------------------- ; versja 2.0 ; dodane filtrowanie typów ; ---------------------------------------------------------- ; test: ;(sslength (ssget (list (cons 0 "3DSOLID") ))) ; ---------------------------------------------------------- (if typy (progn (if (listp (car typy) ) (setq Filter typy ) (progn (setq Filter (list (cons -4 "<or" ))) (foreach % typy (setq Filter (append Filter (list (cons 0 % ) ))) ) (setq Filter (append Filter (list (cons -4 "or>" ) ))) ) ) )) (setq selElems(ssgetfirst )) (if (car selElems) (progn (setq elementy (SelSet:ToList(SelSet:FilterByType selElems typy))) ) (progn (setq tresc (strcat "\n" tresc ": ") ) (princ tresc ) (setq OldNoMutt (getvar 'NOMUTT)) (setvar 'NOMUTT 1) (setq elementy (if (null Filter) (vl-catch-all-apply 'ssget ) (vl-catch-all-apply 'ssget (list Filter )) ) ) (setvar 'NOMUTT OldNoMutt ) (if (not(vl-catch-all-error-p elementy)) (progn (setq elementy (SelSet:ToList elementy )) ) (progn (setq elementy nil) ) ) ) ) elementy ) (defun Blocks:Get ( BlockName / blocks Def *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nBlocks:Get:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq blocks ( vlax-get-property ( GetThisDrawing ) 'Blocks ) ) (setq Def(vl-catch-all-apply 'vlax-invoke-method ( list blocks 'Item BlockName ) ) ) (if (vl-catch-all-error-p Def) (setq Def nil ) ) Def ) (defun Block:GetItems ( nazwa / definicja ileElementow i element elementy *error* ) (defun *error* ( msg / ) (if (not (null msg ) ) (progn (princ "\nBlock:GetItems:*error*: " ) (princ msg ) (princ "\n") ) ) ) (setq definicja (Blocks:Get nazwa ) ) (setq ileElementow ( vlax-get-property definicja 'Count )) (setq i 0) (repeat ileElementow (setq element (vla-item definicja i)) (setq elementy (append elementy (list element ))) (setq i (1+ i)) ) elementy ) (princ)  
    SetByLayer.lsp
  22. Upvote
    dmatusz3 przyznał(a) reputację dla Adam Klaczek w Plany sytuacyjne   
    W wyniku pewnego pomysłu, nasunęły nam się takie pytania do branżowców:
    Czy drogowcy rysują plany sytuacyjne? Co zajmuje najwięcej czasu w przygotowaniu takiego planu? Rysowanie których elementów planu możemy umożliwić/przyspieszyć/ułatwić ? Czy jest jakiś zestaw symboli/bloków konieczny w takich rysunkach? Czy przydałoby się im, żeby coś wyliczało się, oznaczało w sposób automatyczny? Czy są jakieś określone zasady, które w takich projektach trzeba stosować (kolory, warstwy, linie, hatche)? Czy jest jakieś pytanie, którego nie zadałem, a powinienem znać odpowiedź? 😉
  23. Upvote
    dmatusz3 przyznał(a) reputację dla bobik_123 w Plany sytuacyjne   
    1. Czy drogowcy rysują plany sytuacyjne?
    No przecież 😄 całe zagospodarowanie
    2. Co zajmuje najwięcej czasu w przygotowaniu takiego planu?
    szczegóły, zjazdy, chodniki
    3. Rysowanie których elementów planu możemy umożliwić/przyspieszyć/ułatwić ?
    oooooo  TAK!
    Zjazdy: nawet na podstawie modułu rysowania wysp w ZWTrafific:
    - określasz czy zjazd indywidualny czy publiczny (mogą być osobne moduły),
    - wskazujesz 2 punkty lub linię, polilinię, łuk = linia bramy,
    - wskazujesz 2 punkty lub linię, polilinię, łuk (tego strasznie brakuje!!!) - krawędź jezdni,
    - wybór rodzaju zjazdu determinuje skosy na granicy z jezdnią - czy łuki o promieniu..., czy skosy o wymiarach a/b (min. 1:5mx 1,5m, resztę do bramy żeby rysowało równolegle do krawędzi bramy,
    - enter - i jest 😄 Taki moduł bierzemy w ciemno. Najwięcej roboty jest ze zjazdami na łuku drogi.
    Musi być obsługa łuków i polilinii (w wyspach na chwilę obecną też by się to ogromnie przydało - zwłaszcza w odniesieniu do osi wyspy)
    4. Czy jest jakiś zestaw symboli/bloków konieczny w takich rysunkach?
    tu raczej nic, mamy porobione swoje
    5. Czy przydałoby się im, żeby coś wyliczało się, oznaczało w sposób automatyczny?
    ilość elementów na określonej warstwie (linii, łuków) ale nie rozdzielone na linie/łuki tylko całkowita suma i w wybranym obszarze" np. rysunek bez legendy, w której te elementy też są, albo przy jednym rysunku i podziale kosztorysu na etapy.
    Może być tak:
    -wybieram/zaznaczam obszar do zliczania
    -zlicza wszystko (wypełnienia, linie łuki) - wszystko np. względem warstw (krawężniki takie, takie, siakie, wypełnienia takie, takie...)
    - podaje w tabelce łączną ilość:
              Warstwa "a_krawężnik bet+12": ilość:... (na tej warstwie mamy tylko linie, łuki, polilinie)
              Warstwa "a_wyp_jezdnia remont": powierzchnia:..... (na tej warstwie mamy tylko wypełnienia)
             itd a moze to już jest? lol
    6. Czy są jakieś określone zasady, które w takich projektach trzeba stosować (kolory, warstwy, linie, hatche)?
    U nas mamy wszystko na osobnych warstwach. Przy korzystaniu z "wybierz podobne" lub "izoluj warstwy" jest łatwo i szybko
     
  24. Upvote
    dmatusz3 przyznał(a) reputację dla Jarek w Plany sytuacyjne   
    Jestem użytkownikiem zwcada i czasami wykonuję projekty drogowe. Nie stać mnie na takie kombajny jak civil dlatego też muszę się posiłkować dwoma dodatkowymi programami. W jednym wykonuję plan, niweletę i poprzeczki a w drugim programie numeryczny model terenu. To wszystko zapisuję w dwg i załączam do zwcada jako xrefy. 
    Szkoda, że tego wszystkiego nie można robić w zwcad.
  25. Upvote
    dmatusz3 przyznał(a) reputację dla Włodek w Plany sytuacyjne   
    Ad 1 - tak - plan orientacyjny
    Ad 2 - zwykle korzysta się z google / openstreetmap lub innych serwisów - przed zmianą opłat za mapy można było pozyskać większą mapę niż potrzeba i wykorzystywało się istniejące krawędzie jezdni / krawężników map zasadniczych - obecnie dość rzadko stosowane, ale zdarza się przy dużych projektach; przydatny był / jest Spatial Manager (gdzieś posiałem licencję... muszę pogadać z Szansą w tej materii jak znajdę chwilę czasu 😉 )
    Ad 3 i 4 - pozyskanie podkładu w skali 1:10000 lub 1:25000 - podpięcie pod ZWCad plus zaznaczenie obszaru, który stanowi podstawę opracowania - może jakaś forma wykorzystania Spatial? lub korzystanie z openstreetmap? + wydruk na osobnym arkuszu lub możliwość "wrzucenia" jako osobna rzutnia na podkład
    Ad 5 nie ma potrzeby liczenia czegokolwiek, no chyba, że zakres opracowania (kółko / kwadrat / zaznaczenia trasy / zakreskowane lub nie) opracowania na podkładzie w wymienionych dwóch skalach - kwestię skal reguluje rozporządzenie - to jedyne dwie możliwości
    Ad 6 nie ma praktycznie żadnego standardu panuje zupełna dowolność, chociaż zaznaczenie obszaru w kolorach kontrastowych (np. czerwony) - ale to nie jest żadna zasada - każdy stosuje własne zasady
    Ad 7 "czy jakieś przepisy regulują sporządzenie ...." tak ale dość enigmatyczne - jest tylko mowa o skali planu orientacyjnego (1:10000 lub 1:25000)