Professional Documents
Culture Documents
Seminar Napredna Inženjerska Informatika
Seminar Napredna Inženjerska Informatika
Seminar Napredna Inženjerska Informatika
Matej Markulin
0035186575
1
Sadraj
2
Popis slika
Slika 1: Pokretanje 1. nain................................................................................................................... 4
Slika 2: Pokretanje -2. nain .................................................................................................................... 4
Slika 3: Suelje ......................................................................................................................................... 5
Slika 4: Prikaz otvorenog modela u Solidworksu..................................................................................... 5
Slika 5: Suelje nakon pokretanja programa ........................................................................................... 6
3
1 Opis zadatka
Potrebno je napraviti program u Visual Basicu koji e analizirati sve tolerancije u modelu u Solidworks
programskom paketu, zatim ih ispisati zajedno s glavnim dimenzijama, te na kraju prikazati najstrou i
najslobodniju toleranciju. Cilj je da se i prikae model u Solidworksu u kojem moemo vizualizirati
dimenzije i tolerancije.
2 Opis programa
Program se pokree na jedan od 2 priloena naina. Prvi je da se otvori kod u Visual Studio aplikaciji,
te se pritiskom na opciju Start pokrene rad programa kao to je prikazano na Slika 1.
Drugi nain je bitno jednostavniji jer se moramo pokretati nikakav program, nego samo naemo
datoteku imena naziv.exe koja se nalazi u folderu bin--> Debug. U ovom sluaju radi se o datoteci
Tolerance model controller 2000 prikazanoj na Slika 2.
4
Program se sastoji od 4 Buttona, 2 TextBoxa, te jednog DataGridViewa i OpenFileDialoga koji je skriven.
Postoji jo jedan ListBox u koji se unose vrijednosti, ali on je napravljen da ne bude Visiable. Button
Otvori model slui za otvaranje modela u kojem elimo analizirati tolerancije. Klikom na gumb otvora
se model u Solidworksu kao to prikazuje Slika 4.
Slika 3: Suelje
Button Pronai tolerancije je gumb koji obavlja veinu posla. On pronalazi sve znaajke, zatim iz njih
sve dimenzije, pa na kraju sve tolerancije. DataGridView predstavlja tablicu u koju se pohranjuju naziv
dimenzije, nominalna vrijednost, te gornja i donja tolerancijska vrijednost. Postoje jo 2 textBoxa,
5
jedan za najstrou, a drugi za najslobodniju toleranciju. Button Zatvori model slui da se model zatvori,
te da se moe otvoriti drugi bez da se gasi program. I naravno jo postoji Button Izlaz koji zatvara
program.
Slika 5 pokazuje program nakon analize modela. Vidljivo je da program je ispunio sve zadatke, te
popunio sva polja. DataGridView je zgodan jer se proiruje koliko broj tolerancija to zahtjeva. Jedan
redak predstavlja sve podatke vezane za jednu dimenziju u modelu. Sve dimenzije su u milimetrima.
U ovom dijelu e se prikazati i objasniti dio po dio koda, ovisno kakva je njegova namjena. Na kraju e
se dati cjelokupni kod s pripadajuim komentarima. U poetku je potrebno povezati Solidworks i Visual
Basic, a to emo preko naredbe Project-->Add Reference. Tu emo pod opcijom COM nai i selektirati
Solidworks Constant type library i Solidworks 2016 Type library koji se zatim importiraju u kod.
6
Zatim slijedi deklariranje globalnih varijabli:
Odmah po uitavanju forme potrebno je dodati kod koji e u varijablu swApp staviti instancu ve
otvorenog Solidworksa.
Dvoklikom na cmdOtvori kreira se poetni kod za potprogram. Najprije je potrebno na formu te u kod
dodati OpenFileDialog da bismo mogli odabrati datoteku. Nadalje, odabranu datoteku potrebno je
otvoriti, a openita naredba koja to omoguuje je Varijala_modela=varijabla_aplikacije.OpenDoc6.
7
Glavna zadaa programa nalazi se u potprogramu cmdPronai. U ovom dijelu pronalaze se sve
tolerancije, ispisuju se u tablicu, te se pronalazi najstroa i najslobodnija. Prvo se u varijablu swPart
postavlja aktivan dokument. Zatim postavljamo prvu znaajku u varijablu swFeature.
Sada je potrebno pretraiti stablo (eng. design tree) kako bismo nali tolerancije. Kako ne znamo koliko
imamo tolerancija potrebno je pretraiti ih sve. Postupak je sljedei: pretrait emo sve znaajke kako
bismo nali sve dimenzije, a dimenzije pretraujemo da naemo sve tolerancije. Prvo naredbom Do
While Not swFeature Is Nothing pretraujemo sve znaajke. Potom postavljamo prvu dimenziju u
varijablu swDisplayDimension. Vano je naglasiti da to nije samo numerika vrijednost dimenzije ,
nego sve to ide uz nju kao to je tolerancija, kruna ili linijska mjera...Konano postavljamo toleranciju
u varijablu swDimTol. Kako svaka tolerancija ima 2 dimenzije, maksimalnu i minimalnu, pa je jasno da
e postojati 2 varijable. Te 2 varijable u koje se postavljaju max i min vrijednost su maxValueValid i
minValueValid, a njihove numerike vrijednosti su minValue i maxValue. Upravo su nam potrebne te
numerike vrijednosti. Prvo emo ih obje upisati u isti ListBox. Prije naredbe za upis potrebno ih je
pomnoiti s 1 000 da ih pretvorimo u milimetre jer inicijalno u VB mjere su u metrima.
8
Slijedi popunjavanje tablice, DataGridView, u ovom sluaju nazvanu dgwTol. Prvo je potrebno narediti
programu da odabire dimenzije samo iz Sketch-a, ne iz znaajke jer u tom sluaju bismo imali neke
dimenzije pronaene i upisane 2 puta. A to je omogueno da se izbjegne naredbom ako je
swFeature.GetTypeName<>ProfileFeature. Dalje slijedi popunjavanje tablice s time da Rows je
funkcija brojaa i, a Cells imamo onoliko koliko je tablica iroka, tj. unaprijed je odreeno. Mjerna
jedinica se ispisuje, te se tolerancije mnoe s 1000 kako bi se prikazale u milimetrima. U tablici se
prikazuju naziv dimenzije, brojana vrijednost, maksimalna i minimalna vrijednost tolerancije. Na kraju
se naredbom GetNextDisplayDimension(swDisplayDimension) trai sljedea dimenzija, zatvara se
petlja, zatim se naredbom GetNextFeature trai sljedea znaajka i naravno zatvara se petlja
naredbom Loop.
Da bi se omoguilo promjena modela bez da se zatvara aplikacija bilo je potrebno razviti jedan
potprogram. Za zatvaranje modela potreban nam je naziv tog modela koji emo spremiti u vaijablu
aktivan tipa String.Prije zatvaranja e se obrisati sve vrijednosti iz TextBox-eva, ListBox i DataGridView
tablice. U varijablu swModel traimo od Solidworksa da stavi aktivan model. Nakon toga u varijablu
aktivan stavimo naziv od trenutno otvorenog modela linijom koda aktivan=swModel.GetTitle. I na
kraju traimo od Solidworksa da zatvori datoteku s nazivom u varijabli aktivan:
swApp.CloseDoc(aktivan).
9
Postoji jo i naredba da se gumbom cmdIzlaz zatvori aplikacija.
Imports SldWorks
Imports SwConst
10
Private Sub cmdPronadi_Click(sender As Object, e As EventArgs) Handles
cmdPronadi.Click
Dim i As Integer
'postavlja se vrijednost u trenutno otvoreni dokument
swPart = swApp.ActiveDoc
'u varijablu stavimo prvu znaajku koja se nalazi u stablu
swFeature = swPart.FirstFeature
'postavljamo petlju da pretrai sve znaajke u stablu dok nije preostala niti jedna
Dim j As Integer = 1
Dim lstSize As Integer = ListBox1.Items.Count
Dim max As Double = ListBox1.Items(0)
Dim min As Double = ListBox1.Items(0)
Do While (j < lstSize - 1)
11
End If
Loop
'trai se nova znaajka
swFeature = swFeature.GetNextFeature
Loop
End Sub
4 Reference
12