Korzystamy z cookies, więcej informacji »
Dodano: 10.05.2010 17:25 | brak komentarzy

Lekcja 6 - Kreskowanie

 


Kreskowanie

Kreskowanie to wypełnianie wskazanych obszarów rysunku wzorami kreskowania.

Składnia: object.HatchStyle

Rodzaje stylów kreskowania

Styl Normalny - kreskuje wnętrze obszaru wyznaczonego przez obwiednię. Kreskowanie rozpoczyna się od obwiedni zewnętrznej do środka obszaru przeznaczonego do zakreskowania. Jeżeli wewnątrz obszaru przeznaczonego do zakreskowania zostanie zlokalizowana obwiednia wewnętrznej wyspy, to kreskowanie zostanie przerwane. Jeżeli wewnątrz wyspy będzie dodatkowa wyspa, to od obwiedni tej wyspy do następnej obwiedni wewnętrznej, kreskowanie zostanie wznowione

acHatchStyleNormal


Rys. 1 Przykład stylu normalnego

Styl Skrajny - kreskuje tylko obszar ograniczony obwiednią zewnętrzną całego obszaru i pierwszą napotkaną obwiednią wewnętrzną.

acHatchStyleOuter


Rys. 2 Przykład stylu skrajnego

Styl Całkowity kreskuje cały obszar, ignorując wszystkie obwiednie wewnętrzne.

acHatchStyleIgnore


Rys. 3 Przykład stylu całkowitego

Tworzenie nowej procedury rozpoczynamy, jak w poprzednich przykładach, od zdefiniowania nowej procedury: Sub kreskowanie() Po jej zdefiniowaniu przystępujemy do deklarowania zmiennych.

Deklarujemy obiekt hatchObj jako nowy obiekt AutoCAD-a.

Dim hatchObj As AcadHatch

Deklarujemy zmienną patterName jako łańcuch tekstowy

Dim patternName As String

Deklarujemy typ kreskowania jako zmienną typu Long

Dim PatternType As Long

Deklarujemy zmienną bAssociativity jako zmienną typu boolean

Dim bAssociativity As Boolean

Definiujemy kreskowanie, gdzie nazwa kreskowania to ANSI31, typ kreskowania 0, oraz że jest to kreskowanie skojarzone.
patternName = "ANSI31" PatternType = 0 bAssociativity = True

Tworzymy nowe skojarzone kreskowanie w przestrzeni modelu

Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)

Tworzymy okrąg o promieniu 50 i środku w punkcie (5,3,0), który będzie naszą zewnętrzną granicą kreskowania.

Dim outerLoop(0) As AcadEntity

Deklaracja zmiennej jako nowego obiektu AutoCAD-a

Dim center(0 To 2) As Double

Deklaracja zmiennej środka okręgu jako Double

Dim radius As Double

Deklaracja zmiennej promienia okręgu jako Double

Przypisanie zadeklarowanej zmiennej środka okręgu wartości ( współrzędne środka = (5,3,0)

center(0) = 5: center(1) = 3: center(2) = 0

Przypisanie zmiennej promienia o wartości 50

radius = 50

Aby narysować okrąg, będący zewnętrzną granicą kreskowania, wykorzystamy instrukcję Set do skojarzenia odwołania do obiektu ze zmienną. Rysowany jest okrąg o promieniu radius i środku center.
Set outerLoop(0) = ThisDrawing.ModelSpace.AddCircle(center, radius) With outerLoop(0)

Ustalenie grubości okręgu, który definiuje nam zewnętrzną granicę kreskowania na równą 35

outerLoop(0).Lineweight = acLnWt035

Ustalenie koloru okręgu będącego zewnętrzną granicą kreskowania jako czerwony
outerLoop(0).Color = acRed End With


Rys. 4 Zewnętrzna granica kreskowania

Dodanie granicy kreskowania do kreskowania

hatchObj.AppendOuterLoop (outerLoop)

Ustalenie koloru kreskowania na kolor zielony

hatchObj.Color = acGreen


Rys. 5 Zewnętrzna granica kreskowania wraz z kreskowaniem

Tworzymy teraz kwadrat wewnątrz okręgu, który będzie pierwszą wewnętrzną granicą kreskowania.

Deklarujemy zmienne dla wewnętrznej granicy kreskowania.
Dim innerLoop1(0) As AcadEntity Dim innerLoop(0) As AcadEntity

Deklarujemy zmienną plineObj, jako obiekt AutoCAD-a - polilinia ta będzie wyznaczała pierwszą wewnętrzną granicę kreskowania (wyspę).

Dim plineObj As AcadLWPolyline

Deklarujemy zmienną, która będzie przechowywać wartości współrzędnych wierzchołków polilini.

Dim points(0 To 9) As Double

Współrzędna x i y pierwszego wierzchołka polilinii

points(0) = 35: points(1) = 33

Współrzędna x i y drugiego wierzchołka polilinii

points(2) = -25: points(3) = 33

Współrzędna x i y trzeciego wierzchołka polilinii

points(4) = -25: points(5) = -27

Współrzędna x i y czwartego wierzchołka polilinii

points(6) = 35: points(7) = -27

Współrzędna x i y pierwszego wierzchołka polilinii

points(8) = 35: points(9) = 33

Przypisanie polilinii do wewnęrznej granicy kreskowania

Set innerLoop(0) = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)


Rys. 6 Polilinia wewnątrz okręgu, tworząca wewnętrzną granicę kreskowania

With innerLoop(0)

Ustalenie grubości polilinii, która definiuje nam wewnętrzną granicę kreskowania na równą 35

innerLoop(0).Lineweight = acLnWt035

Ustalenie koloru polilinii, będącego wewnętrzną granicą kreskowania, jako czerwony
innerLoop(0).Color = acRed End With

Dodanie obiektu do kreskowania

hatchObj.AppendInnerLoop (innerLoop)

Tworzymy teraz okrąg wewnątrz kwadratu, który będzie drugą wewnętrzną granicą kreskowania Deklarujemy zmienne dla drugiej wewnętrznej granicy kreskowania.Deklaracja zmiennej drugiej wewnętrznej granicy kreskowania jako obiektu AutoCAD-a

Dim innerLoop2(0) As AcadEntity

Przypisanie zmiennej promienia o wartości 20 (zmienna dla współrzędnej środka okręgu nie zmienia się)

radius = 20

Przypisanie okręgu jako drugiej wewnętrznej granicy kreskowania

Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)


Rys. 7 Okrąg (druga wewnętrzna granica kreskowania) wewnątrz kwadratu

With innerLoop2(0)

Ustawienie wartości grubości na 35

innerLoop2(0).Lineweight = acLnWt035

oraz ustalenie koloru na czerwony
innerLoop2(0).Color = acRed End With

Dodanie drugiej zewnętrznej granicy kreskowania do kreskowania.

hatchObj.AppendInnerLoop (innerLoop2)

Ustawienie stylu kreskowania na Normal

hatchObj.HatchStyle = acHatchStyleNormal

Przetwarzanie kreskowania

hatchObj.Evaluate

Regeneracja rysunku

ThisDrawing.Regen True


Rys. 7 Obiekt z wyspami z kreskowaniem styl Normal

Aby obiekt kreskowany był lepiej widoczny, wykonujemy przybliżenie (zoom okno). Deklarujemy zmienną point1, która będzie przechowywać współrzędne pierwszego punktu okna

Dim point1(0 To 2) As Double

Deklarujemy zmienną point2, która będzie przechowywać współrzędne drugiego punktu okna

Dim point2(0 To 2) As Double

Przypisanie zmiennej point1 wartości współrzędnej (-60,60,0)

point1(0) = -60: point1(1) = -60: point1(2) = 0

Przypisanie zmiennej point2 wartości współrzędnej (60,60,0)

point2(0) = 60: point2(1) = 60: point2(2) = 0

Wykonywanie przybliżenia zdefiniowanego oknem od punktu point1 do point2

ThisDrawing.Application.ZoomWindow point1, point2

Wyświetlenie okna informacyjnego

MsgBox "To jest styl kreskowania Normal", , "przykład stylu Normal"


Rys. 9 Okno informacyjne AutoCAD-a

Koniec procedury kreskowania

End Sub

 

Dodaj komentarz
Żeby móc dodawać komentarze musisz być zalogowany.
Komentarze
Brak komentarzy.
Newsletter
Prosto na email będziesz otrzymywać między innymi
  • oferty pracy
  • zniżki na książki
  • najnowsze publikacje
AutoCAD cz. I

AutoCAD - kurs dla początkujących

 

Pierwszy z kursów przeznaczony jest dla osób rozpoczynających pracę w środowisku AutoCAD.
Omówiona została filozofia pracy z programem AutoCAD, wygląd głównego okna aplikacji oraz dopasowanie programu do własnych potrzeb.

Kolejne podrozdziały poświęcone są zagadnieniom rysowania i modyfikowania obiektów (linie, multilinie, okrąg, prostokąt wielobok, splajn). Zostały również omówione zasady pracy z warstwami, blokami oraz wymiarowanie. Ostatnie rozdziały kursu podstawowego omawiają zasady drukowania.