WWW CAD PL VBA dla AutoCAD a kurs podstawowy15




WWW.CAD.PL -- VBA dla AutoCAD-a -- kurs podstawowy




TEXTAREA {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
INPUT {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
SELECT {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
OPTION {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
PRE {
FONT-FAMILY: Courier; FONT-SIZE: 8pt
}
H2 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 13pt
}
H3 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 12pt
}
H4 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 10pt
}
P {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
TD {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
XMP {
FONT-FAMILY: monospace; FONT-SIZE: 8pt
}
.ks {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
P.user {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; TEXT-ALIGN: center
}
P.user A {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; TEXT-ALIGN: center
}
LI {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt
}
.ll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 3pt
}
.lll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt
}
.llll {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt; TEXT-ALIGN: right
}
.lllll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 15pt
}





























VBA dla AutoCAD-a -- kurs dla początkujących
Lekcja 15 -- Wymiarowanie





Wymiarowanie w VBA w AutoCAD-zie
Tematem dzisiejszej lekcji jest wymiarowanie obiektów rysunkowych
w AutoCAD-zie z poziomu VBA. Nie będziemy tworzyć nowego obiektu od
podstaw. Wykorzystamy w tym ćwiczeniu funkcję rysującą kątownik
nierównoramienny z lekcji 4. dotyczącej rysowania polilinii.
Funkcja ta, jak Państwo pamiętają, rysuje kątownik o wymiarach
jak na rysunku poniżej.
Rys. 1 Rysunek
kątownika
Pisanie procedury tworzącej nową warstwę w AutoCAD-zie
rozpoczynamy od zdefiniowania jej nazwy.
Sub wym_katownik()
Deklarujemy zmienną dimObj1 i dimObj2 jako nowe obiekty
AutoCAD-a. Dim dimObj1 As AcadDimAligned
Dim dimObj2 As AcadDimAligned

Deklarujemy punkty dpt1, dpt2, dpt3 jako zmienne typu double.
Dim dpt1(0 To 2) As Double
Dim dpt2(0 To 2) As Double
Dim dpt3(0 To 2) As Double

Deklarujemy zmienne lokation1, lokation2 jako nowe zmienne typu
double. Dim location1(0 To 2) As Double
Dim location2(0 To 2) As Double

Przypisujemy wartość do zmiennej, która określa początek
pierwszej linii wymiarowej. dpt1(0) = punkt1(0) 'X1
dpt1(1) = punkt1(1)

Przypisujemy wartość do zmiennej, która określa koniec pierwszej
linii wymiarowej. dpt2(0) = punkt1(0) + s 'X2
dpt2(1) = punkt1(1)

Przypisujemy wartość do zmiennej określającej położenie pierwszej
linii wymiarowejlocation1(0) = dpt1(0)
location1(1) = dpt1(1) - 5
location1(2) = 0

Tworzymy pierwszą linię wymiarową. Set dimObj1 = ThisDrawing.ModelSpace. _
AddDimAligned(dpt1, dpt2, location1)

Zmieniamy tekst napisu wymiarowego.
dimObj1.TextOverride = "s = <>"
Odświeżamy obiekt
dimObj1.Update
Rys. 2 Wymiar liniowy od punktu dpt1 do
punktu dpt2
Przypisujemy wartość do zmiennej dpt3, która określa koniec
drugiej linii wymiarowej. dpt3(0) = punkt1(0) 'X2 dpt3(1) =
punkt1(1) + h
Przypisujemy wartość do zmiennej określającej położenie drugiej
linii wymiarowej. location2(0) = dpt1(0) - 5
location2(1) = dpt1(1)
location2(2) = 0

Tworzymy drugą linię wymiarową. Set dimObj1 = ThisDrawing.ModelSpace.
AddDimAligned(dpt1, dpt3, location2)

Zmieniamy tekst napisu wymiarowego.
dimObj1.TextOverride = "h = <>"
Odświeżamy obiekt.
dimObj1.Update
Rys. 3 Wymiar liniowy od punktu dpt1 do
punktu dpt3
Deklarujemy zmienną dimrad jako nowy obiekt AutoCAD-a
Dim dimrad As AcadDimRadial
Rys. 4 Rysunek pomocniczy do stworzenia
wymiaru kątowego
Deklarujemy zmienną center jako zmienną typu double.
Dim center(0 To 2) As Double
Deklarujemy zmienną chordPoint jako zmienną typu Variant.
Dim chordPoint As Variant
Deklarujemy zmienną leaderLen jako zmienną typu Integer.
Dim leaderLen As Integer
Przypisujemy wartość do zmiennej center. Zmienna ta jest
potrzebna do przechowywania wartości współrzędnych punktu początku
wymiaru kątowego. center(0) = punkt1(0) + s - r1
'punkt1(0) + 40 - 3 = 37 - wsp. X

center(1) = punkt1(1) + r1

'punkt1(1) + 3 = 3 - wsp. Y

center(2) = 0

'wsp. Z

Przypisujemy wartość do zmiennej chordPoint. Zmienna ta jest
potrzebna do przechowywania wartości współrzędnych punktu środka
wymiaru kątowego.
Wiemy, że kąt pomiędzy osią X a prostą wyznaczoną przez punkty
center oraz chordpoint wynosi 45 stopni. Znamy także (lub możemy
sobie wyliczyć ) odległość pomiędzy tymi dwoma punktami. Do
wyznaczenia współrzędnych punktu chordpoint możemy więc użyć metody
PolarPoint.
Musimy pamiętać, że kąty podajemy w radianach 90 stopni = PI / 4
(funkcja obliczająca PI znajduje się na samym początku procedury).
chordPoint = ThisDrawing.Utility.PolarPoint
(center, PI / 4, r1) leaderLen = 5

Tworzenie wymiaru kątowegoSet dimrad = ThisDrawing.ModelSpace. _
AddDimRadial(center, chordPoint, leaderLen)

Odświeżenie obiektu
dimrad.Update
Rys. 5 Wymiar kątowy (zwymiarowanie
promienia zaokrąglenia)
Wyświetlenie w oknie typu MsgBox informacji.
MsgBox " Zmieniamy grot wymiaru kątowego na strzałkę"

Zmiana typu grota wymiaru kątowego na strzałkę.
dimrad.ArrowheadType = acArrowClosed
Odświeżenie obiektu
dimrad.Update
Koniec procedury
End Sub
Efekt działania procedury stworzonej przez nas na dzisiejszej
lekcji widoczny jest na rysunku poniżej.
Rys. 6 Zwymiarowany rysunek
kątownika
[Poprzednia
lekcja] [Spis
treści] [Następna
lekcja][Przykłady w postaci
elektroniczej]
Piotr Głębicki, ©
Wydawnictwo Helion
2001.




Wyszukiwarka

Podobne podstrony:
WWW?D PL AutoCAD kurs dla średniozaawansowanych14
WWW?D PL AutoCAD kurs dla średniozaawansowanych12
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych6
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych4
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych8
WWW?D PL CATIA V5 Modelowanie kurs dla początkujący
WWW?D PL AutoCAD kurs dla średniozaawansowanych1
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych11
WWW?D PL AutoLISP FAQ
WWW?D PL

więcej podobnych podstron