Wpis z mikrobloga

Mam taki fragment kodu w vba w Autocadzie.
W skrócie chce by zmienił mi wartość parametru liniowego DLUGOSC w bloku dynamicznym na wartość wskazaną przez mnie, ale to nie działa. Ma ktoś jakis pomysl?

Dim parametr_bloku As Variant
parametr_bloku = br.GetDynamicBlockProperties ' Pobranie właściwości dynamicznych bloku
On Error Resume Next ' Obsługuje błędy w tej sekcji
For i = 0 To UBound(parametr_bloku)
If parametr_bloku(i).PropertyName = "DLUGOSC" Then
parametr_bloku(i).Value = dl_linia_do_obrotu ' Ustawienie nowej wartości długości
End If
br.Update ' Aktualizacja bloku, aby zmiany były widoczne
Next i
On Error GoTo 0

#vba #autocad #programowanie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@reTurd wrzuciłem do GPT (polecam przy VBA, robi dobrą robotę):

Wygląda na to, że masz problem z aktualizacją wartości parametru DLUGOSC w bloku dynamicznym w AutoCADzie. Aby zaktualizować właściwości dynamicznego bloku, ważne jest, aby odpowiednio uzyskać dostęp do właściwości parametru i prawidłowo zaktualizować jego wartość.

W Twoim kodzie nie wygląda na to, że metoda br.GetDynamicBlockProperties jest poprawnie wykorzystywana, ponieważ może nie zwracać właściwości w sposób, w jaki się spodziewasz. Zamiast tego, należy użyć
  • Odpowiedz
  • 0
@markhausen: używam czasem, ale on to raczej służy do dawania wskazówek niż do pisania konkretnego kodu, przynajmniej takiego jak ja potrzebuje. Już znalazłem rozwiązanie jeśli ktoś tu kiedyś trafi:

Dim parametr_bloku As Variant
parametr_bloku = br.GetDynamicBlockProperties ' Pobranie właściwości dynamicznych bloku
On Error Resume Next ' Obsługuje błędy w tej sekcji
For i = 0
  • Odpowiedz