Posty

Nowe wydanie u-View 1.0 - dawny ViewPortMaster

Dawno nie aktualizowałem programu ViewPortMaster,  w tym czasie poprawiałem napotkane błędy i dodałem kilka małych udogodnień. Zaktualizowałem stronę programu zmieniając jednocześnie jego nazwę na u-View  z numerem wersji 1.0. Nazbierało mi się trochę różnych ciekawych programów, które również chciałbym udostępnić i dlatego postanowiłem zrobić porządek w ich nazewnictwie. Program jest już całkiem dojrzały i osiągnął wystarczającą stabilność działania. Ponieważ moim podstawowym programem CAD stał się GstarCAD to dostosowałem program do działania w jego środowisku. GstarCAD to jest dość obszerny temat i pewnie nie raz coś o nim napiszę. Zdumiewa mnie swoją szybkością działania, która na dodatek z wersji na wersję jest coraz większa. Nie wiem jak to wygląda obecnie w Autocad bo skończyłem na nim pracę na wersji 2015, ale z tego co pamiętam to raczej z wersji na wersję był coraz mniej responsywny. Dodatkowo GstarCAD ma w pełni działający edytor bloków, włącznie z blokami dynamicznymi, prz

Powrót na blogger.com

Z braku czasu dawno nie zaglądałem na swojego bloga u-cad.eu i niczego nie zamieszczałem. Kiedy w końcu znalazłem czas, żeby zaktualizować  ViewPortMaster , okazało się, że blog postawiony na WordPress został zhakowany. Wchodząc na bloga wirus automatycznie przenosił na jakąś scamową stronę. Włożyłem dużo pracy aby dostosować template WordPress i okazało się, że prawie całość pracy poszła na marne. Stwierdziłem, że nie potrzeba mi tak skomplikowanej strony i wróciłem na Bloggera, którego nie trzeba pilnować przed wirusami. Zatem witam ponownie, za chwilę zaktualizuję program  ViewPortMaster , który otrzymał nową nazwę u-View .

Jak ustawić skalę opisową rzutni poprzez VisualLisp

Obraz
Z poziomu Visual Lisp można ustawić wiele własności obiektów typu viewport  ale nie ma funkcji, dzięki której można bezpośrednio ustawić skalę opisową dla danej rzutni. Trudno znaleźć jakiekolwiek opisy jak to zrobić. Udało mi się znaleźć using lisp to set annotation scale for a viewport sposób wykorzystujący dodatkową funkcję napisaną w ObjectARX w celu ominięcia ograniczeń Visual Lisp ale z powodu słabej znajomości C++ i braku chęci jego nauki, znaleziony sposób mnie nie satysfakcjonował. Drążyłem temat głębiej i udało mi się w odkryć, że jeżeli rzutnia ma ustawioną skalę opisową, to dodatkowe informacje zapisane są w xRecord o nazwie  ASDK_XREC_ANNOTATION_SCALE_INFO  w słowniku załączonym do obiektu rzutni. Dzięki poniższej funkcji odczytamy dane zawarte w xRecord obiektu: ( setq vpDict ( vla-GetExtensionDictionary vpObj ) ;get extension dictionary of viewport object vpXrec ( vla-item vpDict "ASDK_XREC_ANNOTATION_SCALE_INFO" ) ;get xRecord "ASDK_X

Jak znaleźć punkt centralny widoku obróconej rzutni

Obraz
W poprzednim  wpisie  opisałem sposoby ustawienia centrum widoku wstawionej w arkuszu papieru rzutni. W tym opiszę jak znaleźć właściwe współrzędne X i Y w WCS (globalnym układzie współrzędnych) rzutni z obróconym widokiem. Przyjmijmy, że potrzebujemy ustawić widok w rzutni obrócony o 60° z centralnym punktem widoku we współrzędnych X: 20, Y:15 . Użyjmy poniższej funkcji: ( defun mc-setV ( / vp XDataType XDataValue ) ( setq vp ( vlax-ename->vla-object ( car ( entsel )))) ;pick viewpoport object ( vla-put-TwistAngle vp ( * pi ( / -60.0 180.0 ))) ;put twist angle property in radians ( vla-put-ViewPortOn vp :vlax-false ) ;turn off viewport ( vla-GetXData vp "ACAD" ' XDataType ' XDataValue ) ;get xData "ACAD" from object ( vlax-safearray-put-element XDataValue 8 20 ) ;put X coord in the safe array ( vlax-safearray-put-element XDataValue 9 15 ) ;put Y coord in the safe array ( vla-SetXData

Nowe wydanie ViewPortMaster 1.6.0

Z pomocą Kruugera udało się naprawić kilka upierdliwych błędów oraz dodać kilka pożytecznych funkcji. Prosty program do robienia prostych rzeczy zaczyna się robić całkiem złożonym projektem :). Na chwilę obecną z powodu złożoności kodu staje się coraz trudniejsze znajdowanie błędów, a dodatkowo cały czas są pomysły na dodatkowe funkcje.  Nowa wersja programu z kilkoma nowymi funkcjami, m.in. import istniejących rzutni z arkuszy papieru do programu zmiana nazwa obiektów poprzez wskazanie tekstu z innych obiektów (tekst, atrybut) Link do pobrania na stronie programu:  https://u-cad.blogspot.com/p/u-view.html . Jak zawsze uwagi co do działania programu mile widziane!

Jak zmienić centrum widoku rzutni w obszarze papieru

W trakcie opracowywania programu u-View napotkałem problem związany z dopasowaniem widoku zdefiniowanego ramką w obszarze modelu ze wstawioną rzutnią w obszarze papieru. Większość własności takich jak wysokość, szerokość, punkt wstawienia, skala   może być ustawionych z poziomu własności obiektu VLA-Object poprzez zestaw funkcji vla-put-   autodesk ActiveX resources .  Niestety nie ma własności obiektu,, w którym możemy ustawić centrum widoku rzutni . W tym poście przedstawię 2 różne sposoby poradzenia sobie z tym zagadnieniem. Pierwszą myślą była próba manipulacji listą DXF obiektu poprzez zwykłe  entget , entmod . Super! Zgodnie z informacjami zawartymi na stronie autodesk DXF resources   centrum widoku rzutni jest zapisane w grupie kodów 12  . Niestety okazało się, że nie jest możliwa zmiana kodów DXF wstawionej już rzutni, zatem trzeba było poszukać dalej i natrafiłem na poniższą funkcję: ( setq paperObjects ( vla-get-PaperSpace ( vla-get-ActiveDocument ( vlax-get-acad-obj

Nowe wydanie ViewPortMaster 1.5.1

Tak jak obiecałem, właśnie wrzuciłem nową wersję programu 1.5.1. Dużo nowego w kodzie, ogólne usprawnienia działania, przebudowane okno programu. Jest dużo stabilniejszy, szybszy, przyjaźniejszy w użytkowaniu, do pobrania na stronie programu:  https://u-cad.blogspot.com/p/u-view.html .