Posty

Wyświetlanie postów z listopad, 2015

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