kruszynski

Moderatorzy
  • Postów

    1489
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    96

Treść opublikowana przez kruszynski

  1. @alf Czy to miałby być jakoś tak? W dobrą stronę idziemy?
  2. Najnowsza wersja dostępna jest tutaj: https://cad.szansa.net.pl/ZWGis_2023/ZWGis_x64_v2023.0.00__2022_07_26.exe
  3. Znalazłem rozwiązanie tego problemu. Ta nieznaleziona projekcja to układ współrzędnych czy układ odniesienia w którym jest plik. Jest to zdefiniowane w pliku prj. Tylko ten plik jest "inny" niż spodziewany. Jeszcze nie znam szczegółów, ale jak podmienię w tym miejscu innym plikiem opisującym ten sam układ to importuje się poprawnie. W załączeniu pokazuję jak to wygląda i działające pliki prj. point_shapefile_mosty.prj polyline_shapefile.prj
  4. 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
  5. 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.
  6. Czy posiada Pani pozostałe pliki powiązane z tym shp? shx, prj, dbf ?
  7. 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.
  8. 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
  9. 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.
  10. 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ć?
  11. 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?
  12. 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
  13. A może tak: usunpunkty.zelx
  14. Tak na szybko takie coś: ppp.zelx
  15. 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.
  16. 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]
  17. 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.
  18. Na początek znalazłem jak otworzyć okno do wskazywania pliku. Jak otworzyć okno do wskazania pliku w VBA
  19. 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?
  20. Uzupełniona wersja Do pracy z ZWCAD 2022 AddSelected.zelx Dla ZWCAD+ 2015 AddSelected.zel
  21. 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?
  22. 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
  23. 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.
  24. 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.