Archiwum blog'a:

Archiwum blog'a:
Archiwum wszystkich prezentacji z tego blog'a

piątek, 22 października 2010

Automatyczne wstawianie podziałki - Drugie podejście

Prezentowany ostatnio sposób automatyzacji wstawiania podziałki rysunkowej ma pewną wadę. Nie sprawdza się w sytuacji gdy dokumentacja składa się z większej ilości arkuszy. W takiej sytuacji na wszystkich arkuszach wstawiana jest ta sama podziałka. Postanowiłem rozwiązać ten problem tym bardziej, że zapytano mnie czy nie dało by się w jakiś sposób wstawić nazwy arkusza do tabliczki rysunkowej. 

Musimy zacząć od wprowadzenia do tabliczki rysunkowej dwóch atrybutów tekstowych, wprowadzanych ręcznie. Są to:

"Nazwa arkusza"
"Podz"





Może to na przykład wyglądać tak:




Zapisujemy zmiany w tabelce i przystępujemy do definiowania nowej reguły iLogic. Reguła będzie kolejno aktywowała każdy arkusz w rysunku. Następnie skanowała wszystkie atrybuty, w poszukiwaniu tych, które mają nazwę: "Nazwa arkusza" lub "Podz". W przypadku znalezienia takiego atrybutu następuje wpisanie odpowiednio nazwy arkusza i podziałki.

Reguła zakłada, że na arkuszu jest wstawiona tabliczka. W przypadku gdy arkusz nie będzie zawierał żadnego widoku lub widok bazowy będzie miał nazwę inną niż "WIDOK1" podziałka zostanie ustawiona na "0:0"

Reguła taka może wyglądać tak:


Sub Main Arkusz
Dim oSheet As Sheet
Dim oTitleBlock As TitleBlock
Dim oTextBoxes As TextBoxes

For Each oSheet In ThisApplication.ActiveDocument.Sheets

    ActiveSheet = ThisDrawing.Sheet(oSheet.Name)

    oTitleBlock = oSheet.TitleBlock

    oTextBoxes = oTitleBlock.Definition.Sketch.TextBoxes

    For Each oTBox In oTextBoxes
        If oTBox.Text = "" Then
            oTitleBlock.SetPromptResultText(oTBox, oSheet.Name)
        End If
       
        If oTBox.Text = "" Then
            Try
                  oTitleBlock.SetPromptResultText(oTBox, ActiveSheet.View("WIDOK1").ScaleString)
            Catch
                oTitleBlock.SetPromptResultText(oTBox, "0:0")
            End Try
        End If
    Next
Next
End Sub


Jeżeli nie macie czasu na przepisywanie to powyższa reguła wraz z opisami jest do pobrania tutaj. Regułę można podpiąć do szablonu i podłączyć wyzwalacz przy zapisie rysunku. Życzę udanego testowania i implementacji reguły w Waszych projektach.

A w przyszłym tygodniu pokażę jak zautomatyzować wstawianie całkowitej liczby komponentów do tabliczki rysunkowej.

13 komentarzy:

  1. Czy jest gdzieś może podobny kod na wykorzystanie skali ale w języku angielskim?

    OdpowiedzUsuń
  2. już sobie poradziłem;p dzięki za tę radę wuju!!!

    OdpowiedzUsuń
  3. mam ilogic po angielsku ,czy można prości taka regułę do wersji ang

    OdpowiedzUsuń
  4. Reguły iLogic są niezależne od platformy językowej. Powinny działać na każdej wersji językowej. Proszę spróbować jeszcze raz pobrać regułę:

    http://communities.autodesk.com/ama/orig/resources/7/Podzialka-Nazwa_Arkusza.iLogicVb

    i podłączyć ją jako zewnętrzną do iLogic.

    Problemem może być tylko nazwa widoku "Widok1", ale w prezentacji:

    http://communities.autodesk.com/ama/orig/resources/7/Ilosc_arkuszy.wmv

    pokazałem jak regułę udoskonalić.


    W razie problemów proszę o kontakt na mój email.

    OdpowiedzUsuń
  5. Rozszerzyłem funkcjonalność reguły o linijkę iProperties.Value("Custom", "Data")=DateString niestety zapis jest w formacie amerykańskim (11-17-2010). czy da się sięgnąć po europejską datę (17-11-2010)? Np DateString.Europe?

    OdpowiedzUsuń
  6. A czy ten podprogram działa w ilogic 2010?

    OdpowiedzUsuń
  7. Jeśli chodzi o datę to tak na szybko można to zrobić trochę na około, składając datę z poszczególnych części (dzień-miesiąc-rok):

    iProperties.Value("Custom", "Data")=Day(Now()) & "-" & Month(Now()) & "-" & Year(Now())

    Trochę bardziej złożone, ale działa :-)

    OdpowiedzUsuń
  8. Nie testowałem tych reguł na iLogic 2010, ale wydaje mi się, że powinno to działać.

    OdpowiedzUsuń
    Odpowiedzi
    1. Mam problem z uruchomieniem reguły w Inventor 2013
      Poprzednia reguła dotycząca podziałki (bez uwzględniania numeru arkusza) działa bezproblemu.
      Proszę o pomoc

      Usuń
  9. Proszę o maila, podeślę plik z działającą regułą.

    OdpowiedzUsuń
  10. Witam mimo prób nie udało mi się uruchomić samej reguły na wstawianie podziałki w inventorze 2013. Prosiłbym bym o kod jeśli to możliwe na miala dj_smok@o2.pl

    OdpowiedzUsuń
  11. ta sama prosba
    piotrbalcarczyk@gmail.com

    OdpowiedzUsuń