STROJNISTVO.com • Poglej temo - Curve through XYZ points

Curve through XYZ points

3D CAD program - enostaven za uporabo vendar zelo zmogljiv. Vprašanja, komentarji...

Moderator: -M-

Curve through XYZ points

OdgovorNapisal/-a hartan » 25.2.2012 18:02

Zanima me, kako naj spravim Koordinate iz G-kode v določenem programu v tole Solidworksovo tabelo od ukaza "Curve through XYZ points". Ko mam enkrat same koordinate v txt datoteki, al pa v excelovi tabeli, kaj je treba potem naret, da mi prepozna in mi naloži v tabelo?
hartan
Strokovnjak
Strokovnjak
 
Prispevkov: 411
Pridružen: 12.4.2008 7:53

OdgovorNapisal/-a ManiaC » 25.2.2012 18:08

.txt datoteko moraš imeti podane v 3 stolpcih samo z številkami.

torej, 1. x, 2. y, 3. z koordinata:

10 20 30
1 2 3
40 50 60

Da jo naložiš daš tam browse, prestaviš spodaj na .txt datoteke in jo poiščeš na disku.
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a hartan » 26.2.2012 14:46

Zdaj je pa malo problem, ker če so Koordinate v G-kodi modalne, je v G-kodi v stavku navadno podana le koordinata, ki se spremeni...


Npr.:
X-89.255 Y240.527 Z-44.632
X-89.317 Y241.077 Z-44.631
X-89.354 Y241.633
X-89.366 Y242.194 Z-44.63
X-89.35 Y242.759 Z-44.631

Tu v tretji vrstici nimam podanega Z-ja, ker pač krmilnik jemlje enako vrednost, kot je bla nazadnje podana.

Če hočem to potem spravit v tako obliko, da bo SW znal dat v tabelo, moram povsod, kjer ni podane vrednosti, le to vnesti sam... Če mam teh koordinat veliko, se zna zadeva fajn zakomplicirat...

Zdaj sem nekaj načaral tako, da sem koordinate prenesel v Word, potem v wordu z ukazom "replace all" zbrisal Z-je, X-e in Y-e, besedilo pretvoril v tabelo, v tabeli potem vrednosti prerazporedil v prave stolpce, spet pretvoril to tabelo nazaj v navadno besedilo in shranil kot txt-datoteko. Skratka, dokaj zamudno... Veliko hitrejšega načina po tej poti najbrž ni...
hartan
Strokovnjak
Strokovnjak
 
Prispevkov: 411
Pridružen: 12.4.2008 7:53

OdgovorNapisal/-a ManiaC » 26.2.2012 16:05

Sem ti naredil programček, ki ti bo spravil v željen format iz takšnega, ki si ga podal v prejšnjem postu.

Dobiš ga na spodnjem naslovu:
https://docs.google.com/open?id=0B7I3Ck ... MTlVSnhyZw
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a ManiaC » 26.2.2012 17:02

P.s. preveri še prej, če program deluje ok, s tem mislim, da pravilno pretvori v vrsticah, kjer npr. manjka kak podatek (npr. za os Y), oz. X
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a hartan » 26.2.2012 17:05

Mi ga pa ne zažene...
hartan
Strokovnjak
Strokovnjak
 
Prispevkov: 411
Pridružen: 12.4.2008 7:53

OdgovorNapisal/-a ManiaC » 26.2.2012 17:19

ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a moi » 26.2.2012 17:35

ManiaC napisal/-a:Sem ti naredil programček, ki ti bo spravil v željen format iz takšnega, ki si ga podal v prejšnjem postu.

Dobiš ga na spodnjem naslovu:
https://docs.google.com/open?id=0B7I3Ck ... MTlVSnhyZw

v cem si pa naredil ta program?
moi
Strokovnjak
Strokovnjak
 
Prispevkov: 1989
Pridružen: 26.12.2005 17:21

OdgovorNapisal/-a ManiaC » 26.2.2012 17:50

Microsoft visual studio ... jezik C#
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a hartan » 26.2.2012 18:40

Ja, zaj sem ga spravo gor... Zaj pa ko ga zaženem, se mi pojavi malo okence z opcijo "odpri", kaj pa zdaj? če izberem txt. datoteko, mi je nič ne spremeni...
hartan
Strokovnjak
Strokovnjak
 
Prispevkov: 411
Pridružen: 12.4.2008 7:53

OdgovorNapisal/-a ManiaC » 26.2.2012 18:55

Naredi ti v isti mapi novo datoteko. Ki ma isto ime, le da je na koncu .popravljeno.

To datoteko si preimenuješ v neko novo ime in jo uporabiš v sw.
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje

OdgovorNapisal/-a hartan » 26.2.2012 19:12

Aja, sem najdo... Zaj na hitro sem probal nekaj pretvorit, zgleda, da dela fino fajn, hvala. Bom še probal, če je vse OK. Če ni skrivnost, mi lahko pošleš kodo programa? Zanima me, kako zgleda ta zadeva...
hartan
Strokovnjak
Strokovnjak
 
Prispevkov: 411
Pridružen: 12.4.2008 7:53

OdgovorNapisal/-a ManiaC » 26.2.2012 20:44

Ni panike,
vendar če se ne spoznaš na c# jezik (oz. nasplošno na programiranje) ti ne bo veliko pomagal...

Koda: Izberi vse
            openFileDialog1.Filter = "Txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog1.FileName = "";
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                StreamReader sr = new StreamReader(openFileDialog1.FileName);
                StreamWriter sw = new StreamWriter(openFileDialog1.FileName + ".popravljeno");
                string line;
                string x="0";
                string y="0";
                string z="0";

                while ((line = sr.ReadLine()) != null)
                {
                    string[] line1;
                    int index = 0;

                    char[] MyChar = { ' ' };
                    line = line.TrimEnd(MyChar);
                    line1 = line.Split(' ');

                    if (line1.Length == 3)
                    {
                        x = line1[0].Substring(1);
                        y = line1[1].Substring(1);
                        z = line1[2].Substring(1);
                    }

                    if (line1.Length == 2)
                    {
                        index = line1[0].IndexOf('X');

                        if (index == -1)
                        {
                            y = line1[0].Substring(1);
                            z = line1[1].Substring(1);
                        }
                        else
                        {
                            x = line1[0].Substring(1);
                            index = line1[1].IndexOf('Y');

                            if (index == -1)
                            {
                                z = line1[1].Substring(1);
                            }
                            else
                            {
                                y = line1[1].Substring(1);
                            }
                        }
                    }

                    if (line1.Length == 1)
                    {
                        index = line1[0].IndexOf('X');

                        if (index == -1)
                        {
                            index = line1[0].IndexOf('Y');

                            if (index == -1)
                            {
                                z = line1[0].Substring(1);
                            }
                            else
                            {
                                y = line1[0].Substring(1);
                            }
                        }
                        else
                        {
                            x = line1[0].Substring(1);
                        }
                    }

                    sw.WriteLine(x + " " + y + " " + z);
                }
                sr.Close();
                sw.Close();
            }
ManiaC
Strokovnjak
Strokovnjak
 
Prispevkov: 1251
Pridružen: 19.2.2005 10:41
Kraj: Celje


Vrni se na SolidWorks

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 3 gostov