![Forum Konstruktor budowlany Strona Główna](http://www.ejgbulat.pl/realizacje/wisla/pic1.jpg) |
Konstruktor budowlany Forum projektantów
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Krystian
Aktywny Forumowicz
Dołączył: 28 Paź 2009
Posty: 37
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 14:48, 01 Kwi 2010 Temat postu: Pomocy - bloki dynamiczne |
|
|
Witam,
Mam problem, muszę na rysunkach opisywać koty wysokościowe podając wysokości względne i bezwzględne.
Czy ma ktoś z Was taki gotowy blok? Chciałem tylko raz podać w nim wartość zera budynku, natomiast wpisywać za każdym razem kotę względną ale wyświetlane mieć:
poziom względny = poziom bezwzględny (który sam by się policzył względem zera)
próbowałem zrobić blok dynamiczny ale niestety poległem.
Jeśli ktoś ma taki blok to byłbym wdzięczny.
Ewentualnie proszę o wskazówki jak taki blok zrobić...
Pozdrawiam
K
Post został pochwalony 0 razy
Ostatnio zmieniony przez Krystian dnia Czw 15:16, 01 Kwi 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
piotrbu (Piotr Buśka)
Doświadczony Forumowicz
Dołączył: 19 Sty 2010
Posty: 1020
Przeczytał: 2 tematy
Pomógł: 28 razy Ostrzeżeń: 0/5 Skąd: Okolice Warszawy
|
Wysłany: Czw 20:07, 01 Kwi 2010 Temat postu: |
|
|
Ciężko zrozumieć o co Ci chodzi.
Generalnie blokiem dynamicznym (jak domyślam się w AutoCadzie) możesz zrobić kotę korzystającą z elementów rysunkowych czyli np. z linii wymiarowania, do której dodasz parametr liniowy i akcję Strech. Nie da się zrobić tym koty, która będzie sama coś tam obliczała i wstawiała odpowiedni tekst.
Powinieneś raczej zainteresować się VBA lub AutoLisp.
Przykładowy kod, który aktualizuje rzedne kot (bloki o nazwie "kota-vba" z jednym atrybutem o nazwie "rzedna1") w oparciu o podaną rzędną 0.
Kod: |
Public Sub AktualizujKoty()
Dim Sset As AcadSelectionSet
Dim GC(0 To 2) As Integer
Dim DV(0 To 2) As Variant
' zaznaczenie bloków
On Error Resume Next
If Not IsNull(ThisDrawing.SelectionSets.Item("Koty")) Then
Set Sset = ThisDrawing.SelectionSets.Item("Koty")
Sset.Delete
End If
On Error GoTo 0
Set Sset = ThisDrawing.SelectionSets.Add("Koty")
GC(0) = -4: DV(0) = "<or"
GC(1) = 0: DV(1) = "Insert"
GC(2) = -4: DV(2) = "or>"
Sset.SelectOnScreen GC, DV
' pobranie rzędnej 0
Dim Zero
Zero = ThisDrawing.Utility.GetPoint(, "Wskaż rzędną zero: ")
' znajdź elementy i zmień
Dim Elem As AcadEntity
Dim BlockRef As AcadBlockReference
Dim Attribs
For Each Elem In Sset
If Elem.EntityType = 7 Then
Set BlockRef = Elem
If LCase(BlockRef.EffectiveName) = "kota-vba" Then
Attribs = BlockRef.GetAttributes
If UBound(Attribs) > -1 Then
If LCase(Attribs(0).TagString) = "rzedna1" Then
Attribs(0).TextString = Format((BlockRef.InsertionPoint(1) - Zero(1)) / 100, "###0.00")
End If
End If
End If
End If
Next
End Sub
|
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|