Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
IDZ DO
IDZ DO
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
TWÓJ KOSZYK
TWÓJ KOSZYK
CENNIK I INFORMACJE
CENNIK I INFORMACJE
CZYTELNIA
CZYTELNIA
AutoCAD. Automatyzacja zadañ
grafiki za pomoc¹ Delphi
Autorzy: Wojciech Czy¿ycki, Edward Lisowski
ISBN: 83-7197-682-8
Format: B5, stron: 254
Zawiera CD-ROM
Obecnie dokumentacja techniczna jest u¿ywana i przetwarzana najczêœciej w formie
elektronicznej. Do zapisu konstrukcji stosuje siê ró¿norodne programy CAD. Mo¿liwoœci
wyboru jednego spoœród nich s¹ du¿e, jednak¿e dla osi¹gniêcia wydajnej pracy
programy te trzeba odpowiednio dostosowaæ do okreœlonych potrzeb. Jednym ze
sposobów takiego dostosowania jest opracowanie specjalistycznych aplikacji
pozwalaj¹cych na automatyzacjê procesu projektowania, np. w AutoCAD-zie. Program
ten ma wbudowany interfejs automatyzacji OLE, który pozwala oddzia³ywaæ w sposób
programowy na proces tworzenia rysunku.
Ksi¹¿ka powsta³a w wyniku opracowania przez autorów (na potrzeby w³asne i innych
u¿ytkowników) aplikacji do wspomagania projektowania w AutoCAD-zie. Jest ona
adresowana do in¿ynierów, studentów i innych u¿ytkowników tego programu. Ksi¹¿ka
zawiera wiele kodów, które mo¿na bezpoœrednio uruchomiæ i wykorzystaæ w swojej
pracy projektowej. U¿ycie wiêkszoœci kodów znajduj¹cych siê na p³ycie CD wymaga
jedynie przeprowadzenia instalacji. U¿ytkownik posiadaj¹cy pewne umiejêtnoœci
programowania w Delphi mo¿e je rozbudowaæ lub adaptowaæ do swoich celów.
Nawet zaawansowane aplikacje przedstawione w ksi¹¿ce s¹ ³atwe do uruchomienia
i bezpoœredniego u¿ycia. Bardzo przydatne dla projektanta mog¹ byæ programy do
automatycznego rysowania po³¹czeñ wpustowych w po³¹czeniu z automatycznymi
obliczeniami, wspomagaj¹ce rysowanie oznaczeñ po³¹czeñ spawanych czy
automatyzuj¹ce generowanie elementów po³¹czeñ œrubowych.
Ksi¹¿ka adresowana jest do in¿ynierów, studentów i innych u¿ytkowników
posiadaj¹cych wiedzê na temat programu AutoCAD. U¿ycie wielu programów
za³¹czonych na p³ycie CD wymaga jedynie przeprowadzenia instalacji. Praca zawiera
kod wielu programów do bezpoœredniego wykorzystania. U¿ytkownik posiadaj¹cy
pewne umiejêtnoœci programowania w Delphi mo¿e programy te rozbudowaæ lub
adaptowaæ do swoich celów.
W podrêczniku zamieszczono te fragmenty kodów programów, które wymagaj¹
wyjaœnieñ (komentarza), kompletny kod przedstawionych programów znajduje siê na
za³¹czonej do pracy p³ycie CD.
Przedmowa ...................................................................................... 5
Rozdział 1. Wstęp ............................................................................................... 7
Automatyzacja........................................................................................................... 7
Struktura klienta automatyzacji................................................................................. 8
Klasy i obiekty .......................................................................................................... 9
Rozdział 2. Interfejs automatyzacji OLE programu AutoCAD 2000 .................. 11
Obiekty interfejsu automatyzacji OLE.................................................................... 13
Kolekcja Blocks ...................................................................................................... 13
Obiekt Block ........................................................................................................... 14
Obiekt ModelSpace ................................................................................................. 15
Nawiązanie połączenia z serwerem OLE i ustawienia początkowe ................................17
Translacja współrzędnych ................................................................................................18
Metody generowania podstawowych elementów rysunku...............................................18
Wybrane metody modyfikacji obiektów ................................................................. 38
Wybrane składniki obiektu Document i kolekcji Documents ................................ 48
Kolekcja Dictionaries, obiekty Dictionary i XRecord .....................................................53
Kolekcja DimStyles i obiekt DimStyle ............................................................................57
Kolekcja Layers i obiekt Layer ........................................................................................58
Kolekcja Linetypes i obiekt Linetype ..............................................................................60
Kolekcje Groups i SelectionSets oraz obiekty Group i SelectionSet...............................61
Kolekcja TextStyles i obiekt TextStyle............................................................................65
Kolekcja UserCoordinateSystems i obiekt UCS..............................................................68
Obiekt Utility...................................................................................................................69
Ustalanie aktywnych właściwości obiektu Document .....................................................75
Paski menu i paski narzędziowe ............................................................................. 76
Kolekcja MenuGroups i obiekt MenuGrup......................................................................76
Kolekcje MenuBar i PopUpMenu oraz obiekt PopUpMenuItem ....................................76
Kolekcja Toolbars oraz obiekty Toolbar i ToolbarItem...................................................78
Rozdział 3. Przykłady aplikacji ......................................................................... 83
Przygotowanie dokumentu — dodawanie warstw i typów linii ............................. 83
Generowanie składników rysunkowych ................................................................. 86
Rysowanie otworów według zadanych współrzędnych...................................................86
Umieszczanie składników na ustalonej warstwie ............................................................89
Bloki składników..................................................................................................... 92
Atrybuty bloków ..................................................................................................... 97
Kreskowania............................................................................................................ 98
Działania na obiektach rysunku ............................................................................ 103
Rysunki 3D............................................................................................................ 109
4
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Linia śrubowa — krzywe sklejane ........................................................................ 117
Generowanie powierzchni 3D............................................................................... 121
Rozdział 4. Zdarzenia ..................................................................................... 127
Dostęp do obsługi zdarzeń — biblioteki typów.................................................... 127
Importowane biblioteki typów .......................................................................................127
Nawiązanie połączenia z obiektami interfejsu OLE
przy użyciu modułu importowego ...............................................................................129
Obsługa zdarzeń programu AutoCAD .................................................................. 130
Rozdział 5. Aplikacje dla mechaników............................................................ 139
Oznaczenia połączeń spawanych .......................................................................... 139
Elementy połączeń śrubowych.............................................................................. 157
Obliczenia i rysowanie połączenia wpustowego .................................................. 179
Dobór i generowanie rysunków profili zamkniętych prostokątnych
na podstawie obliczeń wytrzymałościowych...................................................... 190
Przetwarzanie informacji zapisanych w tabelce rysunku ..................................... 194
Automatyzacja rysowania schematów pneumatycznych i hydraulicznych .......... 196
Literatura ......................................................................................................... 201
Polskie Normy....................................................................................................... 202
Dodatek A Wykaz metod, zdarzeń i właściwości interfejsu
automatyzacji OLE programu AutoCAD 2000............................... 203
Dodatek B Programy na płycie CD................................................................... 24
Skorowidz......................................................................................................... 251
W tym rozdziale przedstawiono zaawansowane programy wykorzystujące techniki pro-
gramowania obiektowego, korzystające z klas i dziedziczenia, posługujące się relacyj-
nymi bazami danych i językiem
SQL. Podjęte zadania dotyczą automatyzacji:
¨ oznaczania i generowania symboli połączeń spawanych,
¨ połączeń śrubowych przy zastosowaniu dziedziczenia do opisu rodzin elementów,
¨ obliczenia i rysowania połączenia wpustowego,
¨ doboru i generowania rysunków profili zamkniętych prostokątnych na podstawie
obliczeń wytrzymałościowych, wyznaczanie linii wpływowej ugięć dla dobranej belki,
¨ przetwarzania informacji zapisanych w tabelce rysunku z automatycznym przesłaniem
ich do arkusza kalkulacyjnego MS Excel,
¨ rysowania schematów pneumatycznych i hydraulicznych.
Oznaczenia połączeń spawanych
Przy projektowaniu konstrukcji spawanych niezbędne jest określenie wielu parametrów
dla złącza oraz narysowanie odpowiedniego symbolu na rysunku. W konstrukcji, w której
występuje wiele różnego typu spoin, zautomatyzowanie procesu opisu złącza spawanego
może znacznie ułatwić wykonanie dokumentacji rysunkowej. Symbol oznaczenia bu-
duje się z różnych składników zdefiniowanych w przedmiotowej normie. Zautomaty-
zowanie opisu spoin zrealizowano programowo w ten sposób, że użytkownik w oknie
dialogowym wybiera właściwości i parametry spoiny. W trakcie tej czynności w oknie
pojawia się automatycznie rysunek symbolu spoiny z oznaczeniami, które użytkownik
wprowadza. Po interaktywnym uzgodnieniu oznaczenia złącza spawanego skompono-
wany symbol jest generowany w programie AutoCAD we wskazanym miejscu na ak-
tywnym rysunku. Symbole oznaczeń mogą być również wyeksportowane do pliku
wmf.
Program nazwano
PolSpaw, formatkę tego programu przedstawiono na rysunku 5.1.
Umieszczono na niej następujące komponenty:
¨ przyciski z ikonami
,
¨ grupy przycisków
,
¨ znaczniki
,
¨ okienka edycji
,
¨ przyciski zmiany wartości
,
140
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Formatka
(Form1:TForm)
Obramowanie
podglądu spoiny
(Panel1:TPanel)
Podgląd spoiny
(Image1:TImage)
Etykieta
wymiaru
wzdłużnego
spoiny
(Label2:TLabel)
Etykieta wymiaru
poprzecznego spoiny
(Label1:TLabel)
Okienko edycji
wymiaru
wzdłużnego
spoiny
(Edit2:TEdit)
Okienko edycji
wymiaru
poprzecznego
spoiny
(Edit1:TEdit)
Obramowanie
obszaru wyboru
rodzaju spoiny
(Form1:TForm)
Przyciski wyboru
rodzaju spoiny
SpeedButton1..15:
TSpeedButton
Etykieta okienka
technologii
(Label4:TLabel)
Okienko wyboru technologii
(ComboBox1:TComboBox)
Etykieta okienka
nr poz.
(Label3:TLabel)
Wybór położenia linii
identyfikacyjnej
(RadioButton1:
TRadioButton)
Wybór położenia wymiaru
(RadioGroup2:
TRadioGroup)
Wybór kształtu lica spoiny
(RadioGroup3:
TRadioGroup3)
Wybór spoiny dookólnej
(CheckBox1:TCheckBox)
Wybór spoiny
wyk. w montażu
(CheckBox2:TCheckBox)
Obramowanie
elementów wyboru
znaków dodatkowych
(GroupBox:
TGroupBox)
Wybór znaku
dodatkowego dolnego
(RadioGroup4:
TRadioGroup4)
Okienko wprowadzania nr
pozycji
(Edit3:TEdit)
Przyciski zmiany nr poz.
(UpDown1:TUpDown)
Wybór programu CAD
(RadioGroup5:
TRadioGroup)
Dialog zapisu pliku WMF
(SaveDialog1:TSaveDialog)
Przycisk
zamknięcia
programu
(Button2:TButton)
Przycisk zapisu
do pliku WMF
(Button3:TButton)
Przycisk uruchamiania procedury
rysowania w programie CAD
(Button1:TButton)
Rysunek 5.1. Formatka programu PolSpaw
¨ obramowania grup
,
¨ ramkę
,
¨ etykiety tekstowe
,
¨ ilustrację
,
¨ dialog zapisu
,
¨ przyciski bez ikon
.
Opracowano także wymienione niżej moduły:
¨ OznaczFrm do obsługi formatki i interaktywnego ustawiania właściwości spoiny,
Rozdział 5.
K
Aplikacje dla mechaników
141
¨ SpoinaSpaw do przechowywania ustawień spoiny i aktualizacji podglądu oznaczenia
na formatce,
¨ RysSpoina do zgromadzenia procedur rysowania oznaczenia spoiny w programach
CAD.
Komponentom zgromadzonym na formatce programu
PolSpaw nadano odpowiednie
ustawienia. Tabela 5.1 zawiera zestawienie tych ustawień, które są różne od ustawień
domyślnych komponentów.
Tabela 5.1.
Ustawienia komponentów programu PolSpaw
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Caption
Oznaczenie spoiny
OnCreate
FormCreate
BorderStyle
bsSingle
OnDestroy
FormDestroy
biMaximize
False
Form1
Autosize
False
Panel1
BevelOuter
byLowered
Image1
Align
alClient
Label1
Caption
Wymiar
charakterystyczny
przekroju
poprzecznego spoiny
Label2
Caption
Wymiar
charakterystyczny
przekroju wzdłużnego
spoiny
Label3
Caption
Nr pozycji
Label4
Caption
Metoda spawania
Text
OnChange
Edit1Change
Edit1
MaxLength
3
Text
OnChange
Edit2Change
Edit2
MaxLength
5
Edit3
Text
0
Associate
Edit3
OnChange
Edit3Change
UpDown1
Max
999
Button1
Caption
Rysuj
OnClick
Button1Click
Button2
Caption
Zakończ
OnClick
Button2Click
142
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Tabela 5.1.
Ustawienia komponentów programu PolSpaw — ciąg dalszy
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Button3
Caption
Zapisz WMF
OnClick
Button3Click
CheckBox1
Caption
Dookólna
CheckBox2
Caption
W montażu
Text
OnChange
Edit3Change
ComboBox1
Style
csDropDownList
GroupBox1
Caption
Znaki dodatkowe
GroupBox2
Caption
Rodzaj spoiny
Caption
Linia identyfikacyjna
OnClick
RadioGroup1Click
Items.Strings
powyżej linii odn.
poniżej linii odn.
RadioGroup1
ItemIndex
0
Caption
Położenie znaku
OnClick
RadioGroup2Click
Items.Strings
powyżej linii odn.
poniżej linii odn.
RadioGroup2
ItemIndex
0
Caption
Kształt lica
OnClick
RadioGroup3Click
Items.Strings
brak
płaska
wklęsła
wypukła
usunięcie nadlewu
usunięcie karbów
RadioGroup3
ItemIndex
0
Caption
Znaki dodatkowe
OnClick
RadioGroup4Click
Items.Strings
brak
pełny przetop
podkładka
RadioGroup4
ItemIndex
0
Rozdział 5.
K
Aplikacje dla mechaników
143
Tabela 5.1.
Ustawienia komponentów programu PolSpaw — ciąg dalszy
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Caption
Wybierz program
OnClick
RadioGroup5Click
Items.Strings
AutoCAD
interCAD
RadioGroup5
ItemIndex
0
DefaultExt
wmf
SaveDialog1
Filter
*.wmf|*.wmf
Hint
Spoina brzeżna —
przetop całkowity
OnClick
SpeedButton1Click
SpeedButton1
GroupIndex
1
Hint
Spoina brzeżna —
przetop częściowy
OnClick
SpeedButton1Click
SpeedButton2
GroupIndex
1
Hint
Spoina I
OnClick
SpeedButton1Click
SpeedButton3
GroupIndex
1
Hint
Spoina grzbietowa
OnClick
SpeedButton1Click
SpeedButton4
GroupIndex
1
Hint
Spoina V
OnClick
SpeedButton1Click
SpeedButton5
GroupIndex
1
Hint
Spoina 1/2 V
OnClick
SpeedButton1Click
SpeedButton6
GroupIndex
1
Hint
Spoina Y
OnClick
SpeedButton1Click
SpeedButton7
GroupIndex
1
Hint
Spoina 1/2 Y
OnClick
SpeedButton1Click
SpeedButton8
GroupIndex
1
Hint
Spoina U
OnClick
SpeedButton1Click
SpeedButton9
GroupIndex
1
Hint
Spoina 1/2 U (J)
OnClick
SpeedButton1Click
SpeedButton10
GroupIndex
1
144
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Tabela 5.1.
Ustawienia komponentów programu PolSpaw — ciąg dalszy
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Hint
Spoina pachwinowa
OnClick
SpeedButton1Click
SpeedButton11
GroupIndex
1
Hint
Spoina otworowa
podłużna
OnClick
SpeedButton1Click
SpeedButton12
GroupIndex
1
Hint
Spoina otworowa
okrągła
OnClick
SpeedButton1Click
SpeedButton13
GroupIndex
1
Hint
Bezotworowa
punktowa
OnClick
SpeedButton1Click
SpeedButton14
GroupIndex
1
Hint
Bezotworowa liniowa
OnClick
SpeedButton1Click
SpeedButton15
GroupIndex
1
Obsługa elementów formatki umieszczona jest w module
OznaczFrm.
!"#
!
$%#&'()*+*%)'
, -& ., /
"#-0,"#
"#10,"#
#" -0,#"
2" -0,2"
2" 10,2"
*-0,*
+ -0,+
! #-0,! #
34-0,34
-0,
3410,34
10,
! #10,! #
"#50,"#
6-0,6
4" -0, 4"
3450,34
3470,34
Rozdział 5.
K
Aplikacje dla mechaników
145
50,
-0,
! #50,! #
! #70,! #
#" 10,#"
"#-0, "#
"#10, "#
"#50, "#
"#70, "#
"#80, "#
"#90, "#
"#:0, "#
"#;0, "#
"#<0, "#
"#-=0, "#
"#--0, "#
"#-10, "#
"#-50, "#
"#-70, "#
"#-80, "#
"#12. 0,4>/
2" -2. 0,4>/
2" 12. 0,4>/
. 0,4>/
! #-2. 0,4>/
-. 0,4>/
1. 0,4>/
! #12. 0,4>/
5. 0,4>/
"#52. 0,4>/
! #72. 0,4>/
! #52. 0,4>/
"#-2. 0,4>/
"#-2. 0,4>/
. 0,4>/
-0, -
0,
!0,!
*?#?
, -@"#12. 0,4>/
?@,
, -@2" -2. 0,4>/
!"!#! $%&
@20&2" -@2
, -@2" 12. 0,4>/
!"!#! &
@ #0&2" 1@2
, -@ . 0,4>/
0&,@ &%&" '
@ 0&+ -@ "
@A0&+ -@A
146
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
@ !0&+ -@6
4" -@+ @3 .' @'/ %
" &
!0&,!@
!@!%0&A%BC!!$,C!
!@%.$%#,#/
. .!@! .''// , "#/@0&,#
"#-@2. .!@! .''//
, "#/
"#-@0&,#
"#-@2. "#-/
!@
-@, 0&'' 1@, 0&'' ! $
-@. -/ 1@. -/
, -@! #-2. 0,4>/
% (&&
! #-@+ + &=
@ 3+0&,#
@ 3+0&
, -@ -. 0,4>/
)
@D *0& -@,
, -@ 1. 0,4>/
)
@D 0& 1@,
, -@! #12. 0,4>/
! #1@+ + &=
@ D20&,#
@ D20&
, -@ 5. 0,4>/
! % & *%
.,+. 5@, /E=/. 4" -@, FE''/
@! 0&,#
@! 0&
@$*0&,+. 5@, /
@,0&. 4" -@, -*.'' 4" -@, /G-/
, -@"#52. 0,4>/
"% %(
6-@ #
@6,.6-@$ /
, -@! #72. 0,4>/
%
Rozdział 5.
K
Aplikacje dla mechaników
147
@D 0&! #7@+ +
, -@! #52. 0,4>/
$
@D 0&! #5@+ +
, -@"#-2. 0,4>/
&! +,
!0&,?@
?@
.$H+ .? // !!
!@!#>
!@
?@!
, -@ "#-2. 0,4>/
& )
& "#-@D20&-
& "#1@D20&1
& "#5@D20&5
& "#7@D20&7
& "#8@D20&8
& "#9@D20&9
& "#:@D20&:
& "#;@D20&;
& "#<@D20&<
& "#-=@D20&-=
& "#--@D20&--
& "#-1@D20&-1
& "#-5@D20&-5
& "#-7@D20&-7
& "#-8@D20&-8
@! 4 ( "%
, -@ . 0,4>/
0+
%
!0&,!@
!@!%0&A%BC!!$,C!
!@%.$%#,#/
0&=
%)
F #
IJ , "#
. IJ , "#/@
!@.'' IJ@$ /
0& #
+./
!@
@
148
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
% "
#. *.?@ $ //
@
Ustawienia uproszczonego symbolu spoiny przechowywane są w polach klasy
zdefiniowanej w module
SpoinySpaw. Klasa
zawiera również metody automa-
tycznego rysowania podglądu symbolu spoiny. Sekcja
!
modułu
SpoinySpaw
przedstawia się następująco:
(&% -' *&!&
&!& &! "%
" &
,& .,(/
(0,(6
30,
"0,
D20+
20"
#0"
== 3+ D , D2D2 0+
*0+
3+0"
D *0
D 0
! 0"
D20"
=D2#0+
$*0+
,0
D 0+
D 0+
"% "
!D2
!2
! #
!!
!3+
!D
!$*,
!D
!D
))
D2.H#0+/
2.H#0"/
#.H#0"/
*.H#0+/
3+.H#0"/
D *.H#0/
D .H#0/
! .H#0"/
Rozdział 5.
K
Aplikacje dla mechaników
149
D2.H#0"/
=D2#.H#0+/
$*.H#0+/
,.H#0/
D .H#0+/
D .H#0+/
?!. 2220#4/
*>D2
!0,6
D20+D2D2
20"22
#0" # #
D 0+D D
! 0"! !
*0+**
D20" D2 D2
=D2#0+=D2#=D2#
3+0" 3+ 3+
D *0D *D *
D 0D D
$*0+$*$*
,0,,
D 0+D D
! 4 (
@@@
@
Procedury rysowania symbolu spoiny w programie AutoCAD zgromadzone są w klasie
"
zdefiniowanej w module
RysSpoina.
!
"% % $, +,
% . "%%*
$+, * (& /01,
*?#?? 3
2% -+,' "% *+,
,?&
== ==3+D2=D2#,* D
D2 %0#4
*%%+%D20+
? 4>03H
*
! 4?
!2?
!D2?
!D2 ?
!D2 ?
150
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
!#>
!0,?
$&'3'
,?@ " !
*0&1 0&G- 0&5@8 3+0&-K5L
D20& D0&1LM=@:-LL3.@D */
D2 0&3+
@ 3+
%+0&-
%+0&G-
@ D2
%D20&-
%D20&G-
% (& * *
@ D2&@ 3+
=D2#0&%D2L.3+M=@-L/
D2 0&=
=D2#0&%D2L=@-L " % %!
D2 0&%+L3+
*%
.@,FE''/.@$*E=/
,0&G *0&
,0&= *0&=
!
*D? &)%!!
D >
(#>
>,3
&
3+>.$/&)%"
? @3@? .$/
&
?2 0&? @3@+ .$/
? @?630&?2
? @?63@0&!
,?@
Rozdział 5.
K
Aplikacje dla mechaników
151
" 3
H+ .? /
* &)%!, +,"!
,?@*
"%3$ "%
=E = $
%0&- D0& D
$%
%0&G- D0&%L.G D/
D20&%D2LD2
! % &!&
%0&.. =G =/KN.N. =G =/MN.=G=///
=E=45.
%0&1L*G%
,?@!#>
& %
! 4?
,?@! 4?
2*20H
"%
$ ! ( ).$
0&7LML.3.@D */M3.@D //
D0&1LML3.@D */
2*20&H?.I=1J6#4/ " $
2*20&? @@*.'2OPOP2'/
=0&2*2I=J =0&2*2I-J
2*20&? @@*.'2OPOQP2 4#'/
=0&2*2I=J =0&2*2I-J
*
? @? 3.1. ==/1. ==//
!2?
? @? 3.1. ==/1. =M%L=// $
% (&
? 4>0&? @? 3.1. =M%L-K1L=M%+L3+/
1. =M%L=M%+L3+//
? 4>@3,0&'A+$'
!D2?
%D2E=$!
? @? , .@D *1. =M DGL
.3.@D */M-@8/=M-@-L=D2#//
? @? , .@D 1. =M DM1L=M-@-L=D2#//
$!
? @? , .@D *1. =M DGL
.3.@D */M-@8/=M-@-L=D2#G//
? @? , .@D 1. =M DML
.3.@D */G-@8/=M-@-L=D2#G//
!D2 ? %
!D2 ? %
152
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
@2 $%
? @? .1. ==/-K5L/
@#* !
? @? 3.1. ==/1. ==M1L//
? @? 3.1. ==M1L/1. =G%LL.*K-1/
=M1LGL.*K9///
? @? 3.1. ==M/1. =G%LL.*K-1/
=M1LGL.*K9///
%%
.@,FE''/.@$*E=/
? @? 3.1. =M%L=/1. =M%L
.ML.*K7//=ML.*K7///
? @? 3.1. =M%L=/1. =M%L
.ML.*K7//=GL.*K7///
%E= *%
.@,FE''/
? @? , .@,1. =M%L.M/=M,GK1//
@$*E= &
? @? , .+,.@$*/1. =M%L.M/
=M*G/-@7L/
.@,FE''/
? @? , .@,1. =M%L
.ML3.@,//=M,GK1//
@$*E= &
? @? , .+,.@$*/1. =M%L
.MML3.+,.@$*///=M*G/-@7L/
?@!
.'* 2 #2#P'M
R-5M'2Q P#SPT 3'MR-5M
R-5M' #OQU@' I 4%J=/
,?@!2?
"%
? @? 3.1. ==/1. =MK.*K17/L
.%M*K17/=MK.*K17/L.%M*K17///
? @? 3.1. ==/1. =MK.*K17/L
.%G*K17/=MK.*K17/L.%G*K17///
? @? 3.1. =MK.*K17/L.%M*K17/
=MK.*K17/L.%M*K17//1. =MK.*K17/L
.%G*K17/=MK.*K17/L.%G*K17///
,?@!D2?
&
D2+
67 &%
? @? .1. =M DGK7=MD2M=D2#/
1. =M DGK7=M=D2#//
? @? .1. =M DMK7=MD2M=D2#/
1. =M DMK7=M=D2#//
D2*
Rozdział 5.
K
Aplikacje dla mechaników
153
&
? @? .1. =M DG=M=D2#/
1. =M DG=M=D2#MD2//
? @? .1. =M DG=M=D2#MD2/
1. =M DM=M=D2#MD2//
? @? .1. =M DM=M=D2#/1. =M DM=M=D2#MD2//
? @? .1. =M DG=M=D2#/1. =M DM=M=D2#//
@D2
-04'"
? @? .1. =M DG=@1L=MD2M=D2#/
1. =M DG=@1L=M=@8LD2M=D2#//
? @? .1. =M DM=@1L=MD2M=D2#/
1. =M DM=@1L=M=@8LD2M=D2#//
@ D2%)
? @? ?.1. =M DG=@:L=M=D2#M=@8LD2/
=@8L5K1L*1L*/
? @? ?.1. =M DM=@:L=M=D2#M=@8LD2/
=@8L*5K1L*/
? @? ?.1. =M DG=@:L=M=D2#M=@8LD2/
=@8L=*K1/
? @? ?.1. =M DM=@:L=M=D2#M=@8LD2/
=@8L*K1*/
10D2+ '" ).
50D2+ '6
70D2+ ' "
804'8
? @? .1. =M DGKN.5/=MD2M=D2#/
1. =M D=M=D2#//
? @? .1. =M D=M=D2#/
1. =M DMKN.5/=MD2M=D2#//
904'9:8
? @? 3.1. =M DGK1=MD2M=D2#/
1. =M DGK1=M=D2#//
? @? 3.1. =M DGK1=M=D2#/
1. =M DGK1ML.*K7/=MD2M=D2#//
:04';
? @? 3.1. =M D=M-K5LD2M=D2#/
1. =M D=M=D2#//
? @? 3.1. =M DGN.5/=MD2M=D2#/
1. =M D=M=D2#M-K5LD2//
? @? 3.1. =M D=M=D2#M-K5LD2/
1. =M DMKN.5/=MD2M=D2#//
;04'9:;
? @? 3.1. =M DGK1=MD2M=D2#/
1. =M DGK1=M=D2#//
? @? 3.1. =M DGK1=M=D2#M-K5LD2/
1. =M DGK1ML.*K7/=MD2M=D2#//
<04'<
154
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
? @? 3.1. =M D=M-K7LD2M=D2#/
1. =M D=M=D2#//
@ D2
? @? ?.1. =M D=MD2M=D2#/5K7L*1L*/
? @? ?.1. =M D=MD2M=D2#/5K7L=*/
-=04'9:<
? @? 3.1. =M DG5K;L=MD2M=D2#/
1. =M DG5K;L=M=D2#//
@ D2
? @? ?.1. =M DG5K;L=MD2M=D2#/
5K7L5K1L*1L*/
? @? ?.1. =M DG5K;L=MD2M=D2#/
5K7L=*K1/
--04'*
? @? 3.1. =M DGK1=MD2M=D2#/
1. =M DGK1=M=D2#//
? @? 3.1. =M DGK1=M=D2#/
1. =M DMK1=M=D2#//
? @? 3.1. =M DMK1=M=D2#/
1. =M DGK1=MD2M=D2#//
-10D2* '
-50D2* ' !
-70'"
? @? .1. =M D=MD2K1M=D2#/K1/
-804'" %
? @? 3.1. =M DG5K7L=M7K9LD2M=D2#/
1. =M DM5K7L=M7K9LD2M=D2#//
? @? 3.1. =M DG5K7L=M1K9LD2M=D2#/
1. =M DM5K7L=M1K9LD2M=D2#//
? @? .1. =M D=MD2K1M=D2#/K1/
,?@!D2 ?
%
@D
=0 "
-0
? @? 3.1. =M DGL.*K9/=MD2 /
1. =M DML.*K9/=MD2 //
@ D2
? @? ?.1. =M D=MD2 MD2K1/:K9L*--K9L*/
? @? ?.1. =M D=MD2 MD2K1/*K98K9L*/
10
? @? 3.1. =M DGK1=MD2 /
1. =M DMK1=MD2 //
? @? 3.1. =M DMK1=MD2 /
1. =M DMK1=MD2 GD2K1//
? @? 3.1. =M DMK1=MD2 GD2K1/
1. =M DGK1=MD2 GD2K1//
? @? 3.1. =M DGK1=MD2 GD2K1/
Rozdział 5.
K
Aplikacje dla mechaników
155
1. =M DGK1=MD2 //
,?@!D2 ?
$
@D2FE--% **
@D
=0 "
-04
? @? 3.1. =M DGK1=M=D2#M-@1LD2/
1. =M DMK1=M=D2#M-@1LD2//
104%
@ D2
? @? ?.1. =M D=M=D2#M:K7LD2/K18K7L*:K7L*/
? @? ?.1. =M D=M=D2#M:K7LD2/K1*K75K7L*/
504
@ D2
? @? ?.1. =M D=M=D2#M5K7LD2/K1*K75K7L*/
? @? ?.1. =M D=M=D2#M5K7LD2/K1
8K7L*:K7L*/
704 % $ *!"
? @? 3.1. =M DGK1=M=D2#M8K7LD2/
1. =M DMK1=M=D2#M8K7LD2//
? @? .1. =M D=M=D2#M8K7LD2MD2K7/K7/
804 3 "$= =
? @? 3.1. =M D=M=D2#M<K7LD2/
1. =M D=M=D2#M9K7LD2//
@ D2
? @? ?.1. =M DM-K7L=M=D2#M9K7LD2/K7*1L*/
? @? ?.1. =M DG-K7L=M=D2#M9K7LD2/K7*1L*/
? @? ?.1. =M DM-K7L=M=D2#M9K7LD2/K7=*/
? @? ?.1. =M DG-K7L=M=D2#M9K7LD2/K7=*/
% *& &
@D
=0 "
-04
? @? 3.1. =M DG.K1GK1L.*K7//=M=D2#
M5K1LD2L.*K7//1. =M DG.K1G5K1LL.*K7//
=M=D2#MD2K1L.*K7///
104%
@ D2
? @? ?.1. =M DGK1M5K1LL.*K7/
=M=D2#M5K1LD2L.*K7//K1*5K1L*/
? @? ?.1. =M DGK1M5K1LL.*K7/
156
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
=M=D2#M5K1LD2L.*K7//K1*K1*/
504
@ D2
? @? ?.1. =M DGK1MK1L.*K7/
=M=D2#MD2K1L.*K7//K1=*K1/
? @? ?.1. =M DGK1M-K1LL.*K7/
=M=D2#M-K1LD2L.*K7//K15K1L*1L*/
704 % $ *!"
? @? 3.1. =M DG.K1GK1L.*K7//
=M=D2#M5K1LD2L.*K7//1. =M DG
.K1G5K1LL.*K7//=M=D2#MD2K1L.*K7///
? @? .1. =M DGK1M8K7LL.*K7/
=M=D2#M8K7LD2L.*K7//K7/
804 3 "$
? @? 3.1. =M DG.K1G1LL.*K7//
=M=D2#M1LD2L.*K7//1. =M DG
.K1G8K7LL.*K7//=M=D2#M8K7LD2L.*K7///
@ D2
? @? ?.1. =M DGK1ML.*K7/
=M=D2#M5K1LD2L.*K7//K75K7L*:K7L*/
? @? ?.1. =M DGK1M5K1LL.*K7/
=M=D2#MD2L.*K7//K75K7L*:K7L*/
? @? ?.1. =M DGK1ML.*K7/
=M=D2#M5K1LD2L.*K7//K7*K78K7L*/
? @? ?.1. =M DGK1M5K1LL.*K7/
=M=D2#MD2L.*K7//K7*K78K7L*/
@
Rysunek 5.2.
Okno programu
PolSpaw przy pracy
w programie AutoCAD
Rozdział 5.
K
Aplikacje dla mechaników
157
Elementy połączeń śrubowych
Przy projektowaniu urządzeń często stosuje się połączenia gwintowe. Istnieje wiele ich
odmian przystosowanych do różnych zastosowań. Korzystna jest automatyzacja wyko-
nywania rysunków i doboru tych elementów. Mając na uwadze określoną firmę czy też
projektowanie konkretnych urządzeń, można programowo przygotować selekcję ele-
mentów, preferując ich unifikację. Przedstawiony w tym punkcie przykład dotyczy au-
tomatycznego generowania rysunków elementów połączeń śrubowych wraz z atrybu-
tami przechowującymi informacje o ich oznaczeniach.
Przy budowie programu
PolaczGwint do opisu elementów połączeń śrubowych zasto-
sowano podejście obiektowe z wykorzystaniem
dziedziczenia i metod abstrakcyjnych.
Dzięki tym technologiom uzyskano większe możliwości programu w zakresie komple-
tacji połączenia.
Przedstawiony przykład dotyczy elementów połączeń śrubowych, takich jak:
¨ śruby z łbem sześciokątnym z gwintem na całej długości lub częściowym opisanych
w normach [33], [32],
¨ śruby z łbem walcowym opisane w normie [34],
¨ nakrętki zwykłe i zmniejszone opisane w normach [35], [36],
¨ podkładki okrągłe zgrubne i dokładne opisane w normach [38], [39],
¨ podkładki sprężyste zwykłe i lekkie opisane w normach [40], [41],
¨ gwinty zewnętrzne i wewnętrzne opisane w normie [37].
Przedstawiony program może być rozszerzany o inne elementy i modyfikowany do współ-
pracy z różnymi programami CAD.
Program do połączeń śrubowych nazwano
PolaczGwint i zbudowano go z następujących
modułów:
PGwintFrm, RysSruby, RysNakr, RysGwint, RysPodkl, które opracowano do
rysowania danego typu elementu.
Formatkę programu
PolaczGwint przedstawiono na rysunku 5.3. Umieszczono na niej
komponent
, w którym zdefiniowano odpowiednio cztery zakładki dla wy-
różnienia grup elementów. Rysunek 5.3 przedstawia zakładkę dla elementów typu śruba
i zgromadzone odpowiednie komponenty, jak
,
, itp., służące do wy-
selekcjonowania elementu o określonych wymiarach. Dla pozostałych elementów przy-
gotowano analogiczne zakładki i umieszczono na nich odpowiednie komponenty.
W dolnej części formatki poza obszarem komponentu
umieszczono kom-
ponenty
oraz
,
i
wspólne dla wszystkich zakładek,
pozwalające na wybór sposobu rysowania elementu.
Wymiary i inne dane elementów zgromadzono w plikach relacyjnych baz danych z roz-
szerzeniem
db (Paradox), natomiast dostęp do tych danych zrealizowano za pomocą ję-
zyka SQL obsługiwanego przez komponent
#$
.
158
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Wybór widoku elementu
(RadioGroup1:TRadioGroup)
Etykieta wyboru
powłoki
(Label3:TLabel)
Rysowanie osi
(CheckBox1:TCheckBox)
Okno wyboru powłoki
(ComboBox2:TComboBox)
Rysowanie
wskazanego elementu
(Button1:TButton)
Element pobierający
dane
o elemencie z tabeli
BD (Query2:TQuery)
Element pobierający dane
o elemencie z tabeli BD
(Query1:TQuery)
Element pośredniczący
w przekazywaniu danych
(DataSource1:TDataSource)
Okno wyświetlania
rysunku elementu
(Image1:TImage)
Formatka
(Form1:TForm)
Panel, obramowanie rysunku
(Panel1:TPanel)
Karty z zakładkami
(PageControl1:
TPageControl)
Tabela z nazwami elementów
(DBTable1:TDBTable)
Etykieta tabeli
(Label1:TLabel)
Grupa przycisków radiowych
wyboru rodzaju gwintu
(RadioGroup2:TRadioGroup)
Grupa przycisków
rad. wyboru elementu
(RadioGroup3:
TRadioGroup)
Etykieta wyboru długości
(Label2:TLabel)
Okno wyboru
długości
(ComboBox1:
TComboBox)
Etykieta wyboru
wytrzymałości
(Label4:TLabel)
Okno wyboru
wytrzymałości
(ComboBox3:
TComboBox)
Wybór klasy dokładności
(RadioGroup4:TRadioGroup)
Rysunek 5.3.
Formatka programu PolaczGwint
Tabela 5.2.
Ustawienia komponentów umieszczonych na zakładce Śruby formatki programu PolaczGwint
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Button2
Caption
&Zakończ
OnClick
Button2Click
CheckBox1
Caption
&Rysuj osie
ComboBox1
ComboBox2
Text
Items.Strings
Fe-Zn
Fe-Cd
Fe-Fg
Fe-Ox
ComboBox3
Caption
Widok
Items.Strings
z &góry
z &boku
RadioGroup1
ItemIndex
0
Rozdział 5.
K
Aplikacje dla mechaników
159
Tabela 5.2.
Ustawienia komponentów umieszczonych na zakładce Śruby formatki programu PolaczGwint
— ciąg dalszy
Właściwości
Zdarzenia
Obiekt
Nazwa
Wartość
Nazwa
Metoda
Caption
Rodzaj gwintu
OnClick
RadioGroup3Click
Items.Strings
&zwykły
&drobnozwojowy
RadioGroup2
ItemIndex
0
Caption
Rodzaj śruby
OnClick
RadioGroup4Click
Items.Strings
Łeb
&sześciokątny
&Cała
gwintowana
Łeb &walcowy
RadioGroup3
ItemIndex
0
Caption
Klasa dokł.
OnClick
RadioGroup5Click
Items.Strings
I
II
III
ItemIndex
0
RadioGroup4
Columns
3
Columns[0].FieldName
Nazwa
OnClick
DBGrid1CellClick
DataSource
DataSource1
dgEditing
False
DBGrid1
dgColumn- Resize
False
Query1
Query2
DataSource1
DataSet
Query1
Obsługę formatki programu
PolaczGwint i dostęp do zgromadzonych danych zrealizo-
wano w module
PGwintFrm. Procedury do wykonywania rysunków śrub, nakrętek,
gwintów i podkładek umieszczono odpowiednio w modułach:
RysSruby, RysNakr,
RysGwint i RysPodkl. Przedstawione zostaną przykładowe moduły PolaczGwint i Rys
Sruby. Moduły dotyczące rysowania pozostałych elementów zbudowano podobnie jak
moduł
RysSruby; dostępne są one na płycie CD załączonej do książki.
160
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
Kod modułu
PGwintFrm:
*
" 4",4 !
!#4!* 2!$2!
$%#&'()*+*%)'
, -& ., /
2" -0,2"
! #-=0,! #
3450,34
4" 10, 4"
! #--0,! #
! #-10,! #
! #-50,! #
+ -0,+
*-0,*
*10,*
+ 10,+
*50,*
+ 50,+
*70,*
+ 70,+
! #<2. 0,4>/
! #82. 0,4>/
! #-12. 0,4>/
" 52.# 0,# /
! #-52. 0,4>/
" 12.# 0,# /
. 0,4>/
*-0,*
,4-0,,4
,410,,4
,450,,4
,470,,4
#-0,#
V#-0,V#
V#10,V#
" -0,"
"#-0,"#
! #10,! #
! #-0,! #
" 10,"
34-0,34
" 50,"
" 70,"
! #50,! #
3410,34
4" -0, 4"
3470,34
4" 50, 4"
3490,34
! #<0,! #
Rozdział 5.
K
Aplikacje dla mechaników
161
! #90,! #
! #80,! #
4" 90, 4"
34;0,34
34-=0,34
4" ;0, 4"
! #:0,! #
! #;0,! #
34--0,34
34-10,34
! #70,! #
*-. 0,4>/
! #12. 0,4>/
. 0,4>/
! #:2. 0,4>/
! #92. 0,4>/
! #;2. 0,4>/
! #52. 0,4>/
" -2.# 0,# /
! #72. 0,4>/
"#-2. 0,4>/
#!0 %
#!* 0 % "
#!
!;1-=- ) "
!;1-=8
!;15=1
!;1-77
!;1-98
!=1=-5
!D=1=-5
!;1==8
!;1==9
!;1==;
-0, -
$,4 #0
!0,!
,.0/0#4 &3*$%"
(& &%" *%"
>%"?@A%"B
*.'.'/FE=
0&.*.'.'/M-*.'/'/G1/
!#0&,./
. .'%>PW#X PS@'IJ//
!#0&=
, -@#!
162
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
.V#-@?6/.V#-@ "$ .'$'/@?FE''/
#!0&V#-@ "$ .'$'/@?
*.' '#!/FE= & %
#!* 0&.#!-*.' '#!/G-/9:C9D
#!* 0&#! 9:
.*.' '#!/FE=/.*.'.'#!/FE=/
#!* 0&#!* M'/' %) %*
, -@ . 0,4>/
% $
& "
!0&,!@
!@!%0&A%BC!!$,C!
!@%.$%#,#/
! #-@+ + 0&!@! +.''/
! #-@+ + 0&= "
!@
#!0&'-=' )% " 9E
*-@. -/
, -@*-. 0,4>/
%& " &!
V#-@?60&
V#-@V3@ &!* 3
V#-@V3@? .'L( 'M$,4/
*-@?6*@,4+
=0! #5@2.*-/
-0! #8@2.*-/
10! #9@2.*-/
50! #:@2.*-/
!" % $
*-@?6*@,4+ &1
4" 1@4 0&
4" 1@4 0&,#
, -@! #92. 0,4>/
! #<@+ + 0&! #9@+ +
! #1@+ + 0&! #9@+ +
V#-@4 !) %$
V#-@?60&
! #9@+ + &= % ) 'F0
V#-@V3I=J0& .'L( XX2X'
I'Y")C=1=-5Y''$''YX XY'J/
Rozdział 5.
K
Aplikacje dla mechaników
163
V#-@V3I=J0& .'L( XX2X'
I'Y")C=1=-5Y''$''YX XY'J/
V#-@?60&,#
V#-@3.'$'#!IJ/ &&
V#-@4 !) %$
! #-5@2.! #9/
" 5@2." 5@# I=J/
, -@! #:2. 0,4>/
&G
! #;@+ @
! #:@+ + &=
! #;@+ @? .'ZD#4'/
! #;@+ @? .'Z2P '/
! #;@+ @? .'ZD2P'/
! #;@+ @? .'Z322'/
! #;@+ + 0&=
! #;@2.! #:/
, -@! #;2. 0,4>/
#!
V#-@4
V#-@?60&
! "
.! #:@+ + &=/.! #;@+ + &=/
! #-=@H40&
! #--@H40&
V#-@V3I=J0&'L( Y")* 22DC;1==8Y '
+ 7@*#@3 .');1==8@4 '/
!
.! #:@+ + &=/.! #;@+ + &-/
! #-=@H40&,#
! #--@H40&,#
! #-=@+ + &= %
V#-@V3I=J0&'L( Y")* 22C;1==9Y '
&
V#-@V3I=J0&'L( Y")* 22C;1==9Y'M
'DD # '
+ 7@*#@3 .');1==9@4 '/
! #:@+ + &-
! #-=@H40&
! #--@H40&
! #;@+ + &=
V#-@V3I=J0&'L( Y")* 2DC;1==;Y '
V#-@V3I=J0&'L( Y")* 23C;1==;Y '
164
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
+ 7@*#@3 .');1==;@4 '/
V#-@?60&,#
V#-@3.'$'#!* IJ/
V#-@4
, -@! #12. 0,4>/
0#4
! * &
! #<@+ + 0&! #1@+ +
! #9@+ + 0&! #1@+ +
V#-@4
V#-@?60&
" %% )) "
! #7@+ +
=0
0&-@9 0&-9=
-0
0&5 0&5<
10
0&8 0&81
"% && 666%
0&8 0&81
! #1@+ + &=
V#-@V3I=J0& .'L( XX2X'M
'E&XF&X '
I$,4'$''YX XY' J/
V#-@V3I=J0& .'L( XX2X'
I$,4'$''YX XY'J/
V#-@?60&,#
V#-@3.'$'#!IJ/
V#-@4
, -@! #52. 0,4>/
" "%% &) "
! #5@+ +
=0$,40&'Y")#4C;1-=-Y'
-0$,40&'Y")#4C;1-=8Y'
10$,40&'Y")#4C;15=1Y'
$) "
! #5@+ +
=0+ -@*#@3 .');1-=-@4 '/
-0+ -@*#@3 .');1-=8@4 '/
10+ -@*#@3 .');15=1@4 '/
Rozdział 5.
K
Aplikacje dla mechaników
165
! #1@2.! #5/
! #7@2.! #5/
" -@2." -@# I=J/
, -@! #<2. 0,4>/
" "%% &
! * &
! #1@+ + 0&! #<@+ +
! #9@+ + 0&! #<@+ +
V#-@4
V#-@?60&
,BH
.! #<@+ + &=/..! #-1@+ + &=/
.! #-1@+ + &-//
V#-@V3I=J0& .'L( XX2X'
I$,4'$''YX XY'J/
,BH "&
.! #<@+ + &-/..! #-1@+ + &=/
.! #-1@+ + &-//
V#-@V3I=J0& .'L( XX2X'
I$,4'$''YX XY'J/
+
.! #<@+ + &=/.! #-1@+ + &1/
V#-@V3I=J0& .'L( XX2X'M
'X #'I$,4'$''YX XY''-'J/
+ "&
.! #<@+ + &-/.! #-1@+ + &1/
.'$2S2#42T2'M
' 2P @'/
! #<@+ + 0&=
V#-@?60&,#
V#-@3.'$'#!IJ/
V#-@4
, -@! #72. 0,4>/
% )) "%))
! #7@+ + &=
4" 5@+ @
4" 5@+ @ , 0&.'8@98@;9@;;@;-=@<-1@<'/
! #7@+ + &-
4" 5@+ @
4" 5@+ @ , 0&.'8@98@;;@;-=@<-1@<'/
! #7@+ + &1
4" 5@+ @
4" 5@+ @ , 0&.'5@97@;8@;'/
! #1@+ + &-
.'[#4#42T2 2P @'/
166
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
! #1@+ + 0&=
, 4" . /@$ FE' 4" 5'
4" 5@, 0& 4" 5@+ I=J
! #1@2.! #7/
, -@" -2.# 0,# /
%*% &) " ) )
) "%"*+"HC
&! ).%
0+
. 4" 5@, FE'7@9'/. 4" 5@, FE'8@9'/
. 4" 5@, FE';@;'/.V#-@ "$ .''/@?E81/
. -@*-@?6*@,4+ &=/
4" 5@+ @
4" 5@+ @ , 0&.'7@98@9;@;'/
.' E81 # P\U07@98@9;@;'/
)) "
V#1@?60& V#1@V3@
! #5@+ + %) ""% 66
10V#1@V3@? . .'#( X'M
'#F&X#E&X'
I'Y")++C##4Y'V#-@ "$ .'3 '/@?
V#-@ "$ .'3 '/@?J//
% *) " 6
V#1@V3@? . .'#( X'M
'#F&X#E&X'
I'Y")+C##4Y'V#-@ "$ .'3 '/@?
V#-@ "$ .'3 '/@?J//
V#1@?60&,# 4" -@+ @ V#1@
0&=V#1@! #G-
4" -@+ @? .V#1@ "$ .'#'/@?/
V#1@$
) %) & )% )
4" -@, 0& 4" -@+ I!# . 4" -@+ @#K1/J
#!
, -@" 12.# 0,# /
#!
, -@! #-52. 0,4>/
$ $
! #-5@+ +
=0+ 5@*#@3 .')=1=-5@4 '/
-0+ 5@*#@3 .')D=1=-5@4 '/
, -@" 52.# 0,# /
0+
Rozdział 5.
K
Aplikacje dla mechaników
167
#!
V#1@?60& V#1@V3@
V#1@V3@? .'#( Y")+C##4Y'/
V#1@?60&,# 4" ;@+ @ V#1@
0&=V#1@! #G-
4" ;@+ @? .V#1@ "$ .'#'/@?/
V#1@$
4" ;@, 0& 4" ;@+ I!# . 4" ;@+ @#K1/J
, -@! #82. 0,4>/
"$ &
! #8@+ +
=0$,40&'Y")$2C;1-77Y'
-0$,40&'Y")$2C;1-98Y'
$ 7"
! #8@+ +
=0+ 1@*#@3 .');1-77@4 '/
-0+ 1@*#@3 .');1-77@4 '/
! #<@2.! #</
! #-1@2.! #8/
, -@! #-12. 0,4>/
% %* )
! #-1@+ + &1
4" 9@+ @
4" 9@+ @ , 0&.'78'/
4" 9@+ @
4" 9@+ @ , 0&.'89;-=-1'/
, 4" . /@$ FE' 4" 9'
4" 9@, 0& 4" 9@+ I=J
! #<@2.! #-1/
, -@"#-2. 0,4>/
*-@?6*@,4+ "$ &%
=0) "
! #5@+ + "$ &) "
=0!;1-=- " )!
-0!;1-=8 " )! & )
10!;15=1 "%
-0
! #8@+ + "$ &
=0!;1-77 )!
-0!;1-98 )! &
10
! #-5@+ + "$ &
=0!=1=-5
-0!D=1=-5
50
168
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
! #:@+ + "$ &
=0 !
! #;@+ +
=0!;1==8 ! "
-0!;1==9 !
-0!;1==;
, -@!;1-=-
40#4
! #7@+ + &1
0&V#-@ "$ .'!C+++'/@?
0&V#-@ "$ .'!'/@?
,. 4" -@, /F&-18
40&,.V#-@ "$ .'"'/@?/
,. 4" -@, /F&1==
40&,.V#-@ "$ .'"-18'/@?/
40&,.V#-@ "$ .'"1=='/@?/
" )
V#-
;1-=-0&,;1-=-@. "$ .' '/@?
"$ .'2'/@? "$ .''/@?
,. 4" -@, /4 "$ .'$'/@?
4" 5@, ! #7@+ I! #7@+ + J
4" 1@, 2" -@2 /
! #-@+ +
=0;1-=-@!
-0;1-=-@!"
;1-=-@ %"
, -@!;1-=8
0#4
! #7@+ + &1
0&V#-@ "$ .'?C+++'/@?
0&V#-@ "$ .'!C+++'/@?
0&V#-@ "$ .'?'/@?
0&V#-@ "$ .'!'/@?
" )
V#-
;1-=80&,;1-=8@.
"$ .' '/@?
"$ .'2'/@? "$ .''/@?
,. 4" -@, / "$ .'$'/@?
Rozdział 5.
K
Aplikacje dla mechaników
169
4" 5@, ! #7@+ I! #7@+ + J
4" 1@, 2" -@2 /
! #-@+ +
=0;1-=8@!
-0;1-=8@!"
;1-=8@ %"
, -@!;15=1
40#4
40&,.V#-@ "$ .'"'/@?/
,. 4" -@, /FV#-@ "$ .'3'/@?
40&,. 4" -@, /G=@-8LV#-@ "$ .' '/@
?GV#-@ "$ .'!'/@? & )
" )
V#-
;15=10&,;15=1@. "$ .' '/@?
"$ .'2'/@? "$ .''/@?
,. 4" -@, / "$ .'!'/@?
4 "$ .'34'/@? "$ .'$'/@?
4" 5@, ! #7@+ I! #7@+ + J
4" 1@, 2" -@2 /
! #-@+ +
=0;15=1@!
-0;15=1@!"
;15=1@ %"
, -@!;1==8
" )
V#-
* ;1==80&,* ;1==8@. "$ .' '/@?
"$ .' '/@? "$ .''/@?
4" 1@, 2" -@2 /
! #-@+ +
=0* ;1==8@!
-0* ;1==8@!"
* ;1==8@ %"
, -@!;1==9
(0#4
! #--@+ + &=
0&= (0&=
170
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
0&V#-@ "$ .' '/@?
(0&V#-@ "$ .' '/@?
" )
V#-
! #-=@+ + &=
* ;1==90&,* ;1==9@. "$ .' '/@?
"$ .' '/@? "$ .''/@?
( '' 4" 1@, 2" -@2 /
* ;1==90&,* ;1==9@. "$ .' '/@?
"$ .' '/@? "$ .''/@?
( 'D ' 4" 1@, 2" -@2 /
! #-@+ +
=0* ;1==9@!
-0* ;1==9@!"
%"
* ;1==9@
, -@!;1==;
,#0
! #;@+ + &=
,#0&'D'
,#0&'' %
" )
V#-
* ;1==;0&,* ;1==;@. "$ .' '/@?
"$ .' '/@? "$ .''/@?,#
4" 1@, 2" -@2 /
! #-@+ +
=0* ;1==;@!
-0* ;1==;@!"
* ;1==;@ %"
, -@!;1-77
" )
V#-
! #-1@+ +
,
=0$2;1-770&,$2;1-77@. "$ .' '/@?
"$ .''/@? "$ .''/@?
"$ .'-?"'/@? "$ .'$'/@?
4" 1@, '?' 4" 9@, 2" -@2 /
H
-0$2;1-770&,$2;1-77@. "$ .' '/@?
"$ .''/@? "$ .''/@?
Rozdział 5.
K
Aplikacje dla mechaników
171
"$ .'-?"'/@? "$ .'$'/@?
4" 1@, '"' 4" 9@, 2" -@2 /
+
10$2;1-770&,$2;1-77@. "$ .' '/@?
"$ .''/@? "$ .''/@?
"$ .'-'/@? "$ .'$'/@?
4" 1@, '' 4" 9@, 2" -@2 /
! #-@+ +
=0$2;1-77@!
-0$2;1-77@!"
$2;1-77@ %"
, -@!;1-98
!;1-77
, -@!=1=-5
" )
V#-
=1=-50&,@. "$ .' '/@?,.
4" ;@, / "$ .'22'/@? "$ .'$'/@
?2" -@2 /
! #-@+ +
=0=1=-5@!
-0=1=-5@!"
=1=-5@ %"
, -@!D=1=-5
" )
V#-
D=1=-50&,D@. "$ .' '/@?,.
4" ;@, / "$ .'22'/@? "$ .'$'/@
?2" -@2 /
! #-@+ +
=0D=1=-5@!
-0D=1=-5@!"
D=1=-5@ %"
, -@ . 0,4>/
&
!0&,!@
!@!%0&A%BC!!$,C!
!@%.$%#,#/
!@+.''! #-@+ + /
172
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
!@
% "
#. *.?@ $ //
@
W module
RysSruby umieszczono definicję klasy
zawierającą pola i metody
wspólne dla wszystkich obiektów opisujących elementy połączeń śrubowych użytych
w programie
PolaczGwint, dziedziczącą po nim klasę
%&
, opisującą cechy wspólne
dla śrub i wyprowadzone z niej klasy
%&'('
,
%&'()
i
%&*(&
określające odpo-
wiednio śruby z łbem sześciokątnym, śruby z łbem sześciokątnym z gwintem na całej
długości i śruby z łbem walcowym. Strukturę dziedziczenia dla obiektów elementów
połączeń gwintowych przedstawiono na rysunku 5.4.
TSr82105
(śruby z łbem
sześciokątnym i gwintem
na całej długości)
TSr82x
(śruby)
TElGwint
(pola, właściwości i metody wspólne dla wszystkich
obiektów gwintowanych)
TNakr
(nakrętki)
TPodkl
(podkładki)
TGwint
(gwinty metryczne)
TSr82101
(śruby z łbem
sześciokątnym)
TNak82144
(nakrętki sześciokątne)
TGwinWewn
(gwinty wewnętrzne)
TPod82005
(podkładki okrągłe
zgrubne)
TGwinZewn
(gwinty zewnętrzne)
TPod82006
(podkładki okrągłe
dokładne)
TSr82302
(śruby z łbem walcowym)
TPod82008
(podkładki
sprężyste)
Rysunek 5.4.
Hierarchia obiektów opisujących elementy połączeń gwintowych
Kod modułu
RysSruby przedstawia się następująco:
!#4
*?#?? 3
2&=@1 $ )
,&
% "B %
== -1220#4
$"2#$$ #*20
!#>0"
"2!(4>!("203H
4>$*20+
Rozdział 5.
K
Aplikacje dla mechaników
173
. 0#4 ***0 !*0"/
!
!"
!? ".0#4/
!? .0#4/
!?
!D?
!?
>
42
#$.D$0/0
"2+>.$0/0"
!?
!? "
0
0#4
.H#0/
.H#0#4/
42?
>?
0
0#4
(&% &!*) "& % *-1%G
"% *% &!*) "I-' J:9E9B-' J:9EDB-' J:4E:
,;1 & .,/
20#4
%20
$%%) "
!34? "
!,? "
!? ".0#4/
. 20#4 *%2
**0 *0"/
!? &!) " $
,;1-=-& .,;1 /) "" )!
40#4
!? "
. 240#4 *
%20 **0 *0"/
!? " &!) "
,;1-=8& .,;1 /) "" )!
0#4 & )
!? "
. 20#4 *%2
**0 *0"/
!? "
174
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
,;15=1& .,;1 /) ""%
3440#4
!? "
. 2434*0#4 *
%2**0 *0"/
!? K &! $
!? "
;1-=-0,;1-=-
;1-=80,;1-=8
;15=10,;15=1
,@. 0#4 ***0
!*0"/ 2 % "&
=0&G-== =0&G-== *20&- 0&G-
*20&** #0&#$.*/ !#>0&!*
0& 0&=@1L K1L.*K7/ 0&
*D? &)%!!
D > (#> >,3
,;1 @. 20#4 *%2
**0 *0"/ 2 % "&) "
. ****/
20&2 0& 0&
0& .'[#4X XGXGXXX'I*%2
*2$$ J/
,;1-=-@. 240#4 *
%2**0 *0"/ 2 ) "" )
$$ 0&'*$G;1-=-'
. 2*%2***/
40&4
" $-' J:9ED-' J:4E:
,@ " 3
*
,@ 42? "%
?@ %&
"2!(0&? @+"2.? @@*.
Rozdział 5.
K
Aplikacje dla mechaników
175
'2O#2'/$"2#---=/
"2!(@ )"%
?@! $
.'* 2 #2#P'M
R-5M'2Q P#SPT 3'MR-5M
R-5M' #OQU@' I 4%J=/
,@ >? % 7
03+
0&?4# +64 "
"2@? ?4#.5@8 ''1. ==/'$'/
"2@? ?4#.5@8 ''1. ==/'$!'$$ /
,@!" "
$H+ .? /!? "
,@! $
$H+ .? /!?
,@.H#0/
0&H#
,@ 42
42?
,;1 @!? ".0#4/ )%"
!#>
4>!(0&"2@? 3.1. =G-@8L2=/1. =M=//
4>!(@0&?! 4>!(@30&''
,;1-=-@!? " ) "" )! 7"7
$"2#0&M'C"'
"2+>.$"2#/
"20&? @"2@? .1. ==/$"2#/
!34? "
!,? "
!? "
>?
42?
" $-' J:9ED-' J:4E:
,;1-=-@!? " "7
176
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
"2@? 3.1. =MG4=G K1/1. =MG4=M K1//
4>!(0&"2@? 3.1. =MG4=G K1M/
1. =M=G K1M// %
4>!(@0&! % "%
4>!(@.1. ==/1. =M=//
"2@? 3.1. =MG4=G K1M/1.
=MG4G.K.*K9//=G K1// "
4>!(@0&!
4>!(@.1. ==/1. =M=//
,;1-=8@!? " "
"2@? 3.1. =M=G K1/1. =M=M K1//
4>!(0&"2@? 3.1. =M=G K1M/
1. =M=G K1M//
4>!(@0&! 4>!(@.1. ==/1. =M=//
4>!(0&"2@? 3.1. =M=G K1M/1.
=MG.K.*K9//=G K1//
4>!(@0&! 4>!(@.1. ==/1. =M=//
,;15=1@!? "
"2@? 3.1. =MG4=G K1/1. =MG4=M K1//
4>!(0&"2@? 3.1. =MG4=G K1M/
1. =M=G K1M//
4>!(@0&! 4>!(@.1. ==/1. =M=//
4>!(0&"2@? 3.1. =MG4=G K1M/
1. =MG4G.K.*K9//=G K1//
4>!(@0&!
4>!(@.1. ==/1. =M=//
,@#$.D$0/0
> C ?@A C
D$0&, .D$/
.*.'.'D$/FE=/.*.'/'D$/FE=/
!#0&.D$*.'.'D$/M-*.'/'D$/G1/
!#0&D$
,@"2+>.$0/0"
!#0&
"2!(0&
"2!(0&? @"2@+ .$/ $" "%
!#0&,#
?@! " " %
. .'"2X>@'MR-5M''M
'>T42'I$J/+( I"%J=/
?@ "%
,@!? $ 7
4>!(0&"2@? ?.1. ==/ K1,! .58/,! .5=8//
4>!(@0&!
"2@? .1. ==/. K1/G/
Rozdział 5.
K
Aplikacje dla mechaników
177
,@!D? $ 7
4>!(0&"2@? ?.1. ==/ K1G,! .58/
,! .5=8//
4>!(@0&!
"2@? .1. ==/ K1/
,@!? " )! B $ 7
"2@? .1. ==/K1/ !
4>!(0&"2@? 3.1. =MK1=/1.
=MK1L.*K5/=MK1//@?*.91L*1. ==// )!
,;1 @!34? " " )%) "7"7
"2@? 3.1. ==GK1/1. ==MK1// ") "
"2@? 3.1. =G2=GK1/1. =G2=MK1//
"2@? 3.1. =G2=GK1/1. =G2M-=GK1// #%
"2@? 3.1. ==GK1/1. =G2M-=GK1//
"2@? 3.1. =G2=MK1/1. =G2M-=MK1// # $
"2@? 3.1. ==MK1/1. =G2M-=MK1//
)
"2@? 3.1. ==GK1L.*K5//1. =G2M-=GK7//
"2@? 3.1. ==MK1L.*K5//1. =G2M-=MK7//
"2@? ?.1. =G2M=@:8L=/=@:8L*G.-K5/
*M.-K5//
"2@? ?.1. =G2M1=G5K;L/1*G.=@-18LK
1/*M.=@-18LK1//
"2@? ?.1. =G2M1=M5K;L/1*G.=@-18LK
1/*M.=@-18LK1//
,;1 @!,? " 3) ""
"2@? ?.1. =M=G K1G/*K1*/ "
"2@? ?.1. =M=M K1M/*5K1L*/
"2@? 3.1. =M=G K1/1. =MG=G K1//
"2@? 3.1. =MG=G K1/1. =M=G K1M//
"2@? 3.1. =M=G K1M/1. =M=M K1G//
"2@? 3.1. =M=M K1G/1. =MG=M K1//
"2@? 3.1. =M=M K1/1. =MG=M K1//
"2@? 3.1. =MG=G K1/1. =MG=M K1//
!? ".-@1L/ )
,;1 @!?
) "" )! 7 $ 7, +,
$"2#0&M'C'
"2+>.$"2#/
"20&? @"2@? .1. ==/$"2#/
!?
!? ./
>?
42?
,@.H#0#4/
178
AutoCAD. Automatyzacja zadań grafiki za pomocą Delphi
0&H#
0&K.*K9/
-0&=@:8LGN.N.=@:8L/GN.=@18L//
10&=@:8LL=@1:-779-
,@!? ".0#4/
) "7
!#>
4>!(0&"2@? 3.1. =G2L=/
1. =MM2L=//
4>!(@0&?! 4>!(@30&''
,@!? .0#4/
) $ 7
!#>
4>!(0&"2@? 3.1. =GK1G2L=/
1. =MK1M2L=//
4>!(@0&?! 4>!(@30&'$,!'
4>!(@?*.1*K11. ==//
,@ >
%
>?
@
Okno programu
PolaczGwint pokazano na rysunku 5.5. W oknie widać wybór śruby
M16 wraz z jej właściwościami (wykonanie, wytrzymałość, powłoka itp.). Natomiast na
rysunku 5.6 pokazano okno tego programu otrzymane po wstawieniu uprzednio wybranej
śruby i przełączeniu na zakładkę o nazwie
Nakrętki. Program automatycznie zapamiętał
ostatni wybór śruby i wyselekcjonował wstępnie do tej śruby odpowiednią nakrętkę.
Rysunek 5.5.
Okno programu
PolaczGwint podczas
wyboru )ruby
Rysunek 5.6.
Okno programu
PolaczGwint podczas
wyboru nakr*tki
Rozdział 5.
K
Aplikacje dla mechaników
179
Rysunek 5.7.
Przykłady elementów
wygenerowanych
za pomocą programu
PolaczGwint w oknie
programu AutoCAD