kruszynski

Moderatorzy
  • Postów

    1474
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    93

Treść opublikowana przez kruszynski

  1. Na innym przykładzie, możemy zobaczyć jak to działa w obecnej wersji. Do testów możliwe do pobrania tutaj: https://cad.szansa.net.pl/ZWGis_2023/ZWGis_x64_v2023.exe
  2. Potwierdzam problem z wczytywaniem tego przypadku. Sprawdzę to jeszcze i dam znać. W wersji 2023 wyświetla taki sam komunikat błędu jak w 2022.
  3. Czy posiada Pani pozostałe pliki powiązane z tym shp? shx, prj, dbf ?
  4. Jak się okazuje zgodność API pomiędzy ZWCAD 2022 i 2023 jest na tyle zbieżna, że można wczytać tą aplikację w wersji 2022 i działa. Pakiet instalacyjny nie dodaje jej do listy startowej w wersji, ale można dopisać (vl-load-all "C:\\Szansa\\ZWGis\\2023\\PL\\ZWGis.zelx") W pliku c:\Program Files\ZWSOFT\ZWCAD 2022\Support\ZWCAD2022.lsp i będzie ładowało automatycznie. W związku z tym, że nasze aplikacje przygotowujemy zwykle do aktualnej wersji ZWCADa nie mogę zagwarantować, że w przyszłości zgodność z wersją 2022 zostanie zachowana.
  5. Poprawka w załączniku. Nie wyświetla się lista dostępnych opcji Window/Last/Crossing/Box/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/Previous/Undo/AUto/SIngle ale wybieranie wielu elementów i użycie poszczególnych opcji działa. Strzałki.lsp
  6. Dane to oczywiście bardzo ważny składnik elementów. Na chwilę obecną plan jest taki, żeby dało się wczytać geometrię z podłączonymi danymi, które będzie można wyświetlić i edytować w oknie ( być może panelu analogicznym jak okno właściwości ) i eksportować znów do formatu shp, który będzie możliwy do wczytania w innych systemach. Kolejnym krokiem myślę, że będzie opisywanie elementów etykietami ( tekst może blok ) w którym będą wyświetlane dane shp. W obecnej wersji nie są używane funkcje arcgis. Obecnie nie ma jeszcze możliwości konwersji pomiędzy układami współrzędnych.
  7. kruszynski

    Kilka sugestii

    Pojawiło się tu kilka tematów. To można łatwo: - To też można zrobić dość łatwo. Część pozostałych funkcjonalności rozumiem i zaplanuję je w aktualizacjach. Natomiast jest też część, której nie umiem sobie wyobrazić albo byłaby bardzo trudna do zrealizowania, albo można to zrobić na wiele sposobów. Chciałbym omówić je szczegółowo w rozmowie na priv, albo mailowo. Czy możemy się tak umówić?
  8. kruszynski

    Kilka sugestii

    Dzień dobry, W ustawieniach możliwe jest przypisanie warstw do poszczególnych stanów. Znaki będą się wstawiały na przypisane im warstwy. Może Pan napisać coś więcej jak o pozostałych tematach ? Jak miałoby to działać? jak opisy miałyby być zmieniane?
  9. Trochę nam temat zdryfował w innym kierunku, ale wracając do głównego wątku przygotowaliśmy poprawkę skryptu który ma przerzedzać punkty w modelu. usunpunkty.zelx
  10. A może tak: usunpunkty.zelx
  11. Tak na szybko takie coś: ppp.zelx
  12. Ja bym zrobił z tego model. Czyli opakować do oddzielnych klas punkty, krzywe , powierzchnie Wczytałbym plik do postaci kolekcji (elementy w kolekcji dostępne są przez nazwę, w tablicy musielibyśmy opracować mechanizm wyszukiwania) Opierając się tylko na własnym przeczuciu zakładam, że otworzenie modelu raz i praca na nim, będzie działało szybciej niż praca bezpośrednio na pliku excelowym. Dodatkowo daje nam otwartość na ewentualną zmianę formatu źródłowego.
  13. OK, teraz mamy arkusz - cały plik w zmiennej wb Możemy zakładkę z punktami pobrać tak Set sheet = wb.Worksheets("StructuralPointConnection") O tym jak odnosić się do poszczególnych komórek np tutaj Jak pobrać wartość komórki w Excel [VBA]
  14. XLSX jest plikiem binarny, nie można go odczytać tekstowo, VBA nie ma wbudowanej metody otwierania plików xlsx, dlatego trzeba posiłkować się zewnętrznymi narzędziami, np Excelem. I tu rodzi się problem, bo może pojawić się sytuacja gdzie ktoś ma Excela, ktoś inny OpenOffica, ktoś inny jeszcze innego offica. A nasz program może mieć w założeniach, że wymagamy żeby użytkownik miał Excela, albo możemy obsługiwać różne sytuacje typu różne aplikacje, różne ich wersje i w ogóle to tylko kłopot z tym VBA. 😉 Ale tak na serio, to jeśli założymy że mamy Excela to otwarcie pliku możemy zrobić tak jak opisane tutaj: Jak otworzyć plik Excela w VBA Inne wersje i aplikacje pozostawmy na później, a może nie będzie to potrzebne.
  15. Na początek znalazłem jak otworzyć okno do wskazywania pliku. Jak otworzyć okno do wskazania pliku w VBA
  16. Czy dobrze rozumiem, że chodzi o to, żeby po otwarciu rysunku, filtr warstw wyświetlał w managerze warstw tylko te, które nie są z XRefa? Nie ruszamy tego co ma być wyświetlone w modelu, tylko w oknie managera?
  17. Uzupełniona wersja Do pracy z ZWCAD 2022 AddSelected.zelx Dla ZWCAD+ 2015 AddSelected.zel
  18. 1. Nie ma gotowego automatu, trzeba poskładać. możemy sprawdzić co jest zaznaczone trzeba z tego odfiltrować bloki z nich można odczytać nazwy. Dim sset As ZcadSelectionSet Dim ssobject As ZcadEntity Dim nazwa As String Set sset = ThisDrawing.PickfirstSelectionSet For Each ssobject In sset nazwa = ssobject.ObjectName If ssobject.ObjectName = "AcDbBlockReference" Then Dim blok As ZcadBlockReference Set block = ssobject Dim punkt As Variant punkt = block.InsertionPoint End If Next ssobject 2. Jest możliwość wybierania we wskazanym punkcie z filtrami określającymi co ma być wybrane np tylko bloki: Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 0 FilterData(0) = "Insert" Dim ssetObj As ZcadSelectionSet Set ssetObj = ThisDrawing.SelectionSets.Add("1") Dim point(0 To 2) As Double point(0) = 820.4691: point(1) = 954.628: point(2) = 0 ssetObj.SelectAtPoint point, FilterType, FilterData Z tego zbioru trzeba odczytać nazwy. O zaznaczaniu było tutaj 3. Ta konstrukcja jest dla mnie zbyt skomplikowana. W moim pojęciu zaintegrowanie w blok to właśnie jego edycja. Gdzie jest różnica? co ma się dziać? a co nie? dlaczego edycja nie jest odpowiednią operacją? Np zmiana koloru elementów w bloku to właśnie jego edycja. Możemy wszystkim elementom w definicji ustawić kolor na "JakBlok" i wstawionemu blokowi zmienić kolor. To wystarczy?
  19. Chyba najłatwiej tak: Dim attribs As Variant attribs = blkref.GetAttributes ; tu trzeba wybrać odpowiedni atrybut wybierając w pętli po TagString For i = LBound(props) To UBound(props) - 1 Set prop = props(i) If prop.PropertyName = "Rozstaw" Then ; a tu ustawić wartość (TextString) atrybutu End If Next i
  20. A jednak jeszcze trochę głębiej w to wniknąłem i wyszło mi że tam gdzie jest Origin asTxt = CStr(pvalue) Wyrzuca błąd Run-time error '13' : Type mismatch w linijce asTxt = CStr(pvalue) Co w sumie miałby sens, bo w tym przypadku pvalue jest variantem - tablicą trzyelementową. To chyba jest jakiś punkt, A z takimi CStr może sobie nie poradzić. Teraz pytanie co dalej z tym ma się dziać. o jeśli maa to być tylko wyświetlone, to pewnie wystarczy odwołać się do każdego elementu variantu, i poskładać to w jeden tekst. Ale to już pozostawiam, powinno być łatwe.
  21. Wiem że czegoś tu nie rozumiem, ale też jeszcze nie wiem czego. Z eksperymentu wyszło mi, że tablica Dim prop As ZcadDynamicBlockReferenceProperty Zwraca 8 elementów. Te o indeksach 1,3,5,7 mają taką samą nazwę "Origin" Nie wiem dlaczego, i nie wnikam, ale jak zmieniłem pętlę, żeby przechodziła indeksem co 2 For i = LBound(props) To UBound(props) - 1 Step 2 Set prop = props(i) pvalue = prop.Value Dim asTxt As String asTxt = CStr(pvalue) MsgBox (asTxt) Next i To wyświetliło poprawnie i kulturalnie 4 wartości.
  22. Dodałem łączenie elementów jako blok (setq last_mem (entlast) ) ; zapamiętujemy co było ostatnio narysowane, przyda się później ; ..... rysowanie (setq lastent (if (null last_mem) ; (setq lastent (entnext ) ) (entnext ) (entnext last_mem) ) ) (setq Selset (ssadd ) ) ; przygotowujemy zbiór elementów do dodania do bloku (while (not(null lastent ) ) (setq Selset (ssadd lastent Selset) ) ; dodajemy kolejny element do zbioru (setq lastent (entnext lastent)) ; szukamy następnego narysowanego elementu ) (setq nr 1 ) (while (tblsearch "BLOCK" (setq nazwa (strcat "okno" (itoa nr ) ) )) (setq nr (1+ nr) ) ) ; tworzymy blok (definicję) z narysowanych elementów (command "_.-block" nazwa "_non" PU Selset "") ; wstawiamy blok (command "_insert" nazwa PU "" "" "")
  23. kruszynski

    Napis na znaku D-18

    Znaki D-18 i D-44 przygotujemy i damy znać. Znaki które wchodzą od dziś będą dostępna przy najbliższej aktualizacji. Może Pan używać już dziś po rozpakowaniu do katalogu c:\Szansa\ZWTraffic\2022\PL\Templates\Vertical traffic signs\ z załącznika. Rozporządzenie z 2 grudnia.zip
  24. kruszynski

    Napis na znaku D-18

    Załączone pliki proszę zapisać tutaj: c:\Szansa\ZWTraffic\2022\PL\Templates\Vertical traffic signs\D - Informacyjne\ D-18.dwg D-18_parkomat.dwg