Kirjoittaja Aihe: [Purkkaratkaisu]Kysymys FreeCAD:stä ...  (Luettu 561 kertaa)

kamara

  • Käyttäjä
  • Viestejä: 2951
    • Profiili
[Purkkaratkaisu]Kysymys FreeCAD:stä ...
« : 09.04.24 - klo:18.04 »
Kuinka FreeCAD:ssä pystyy käyttämään kappaletta templatena s.e. runko pysyy 2:ssa kappaleessa samana, mutta toiseen kappaleeseen tulee kolot ja toiseen väkäset, jotka tarttuvat koloon kiinni ?

Kloonaamalla pystyy tekemään yhdelle muutokset, mutta kahta kloonia samasta rungosta en osaa tehdä ilman, että malli hajoaa.

Kuva kertoneen mitä yritän tehdä...

Kyseinen on tehty OpenSCAD:llä, ja haluaisin oppia tekemään saman asian FreeCAD:llä.
« Viimeksi muokattu: 11.04.24 - klo:10.08 kirjoittanut kamara »

qwertyy

  • Käyttäjä
  • Viestejä: 5675
    • Profiili
Vs: Kysymys FreeCAD:stä ...
« Vastaus #1 : 09.04.24 - klo:20.53 »
Jonkin verran olen 3D CAD ohjelmia käyttänyt, mutta nyt menee kyllä jotenkin täysin ohi. Omasta mielestäni kyseessä on kokoonpano. Yleensä tehdään vaikka se perusrunko tallennetaan, kopioidaan/tuodaan tiedosto uudelleen (export/import) ja tehdään muutokset ja tallennetaan uusi "body/osa".

Tosin FreeCAD:lla osaan tehdä vain todella alkeellisia juttuja.

kamara

  • Käyttäjä
  • Viestejä: 2951
    • Profiili
Vs: Kysymys FreeCAD:stä ...
« Vastaus #2 : 10.04.24 - klo:10.34 »
Yleensä tehdään vaikka se perusrunko tallennetaan, kopioidaan/tuodaan tiedosto uudelleen (export/import) ja tehdään muutokset ja tallennetaan uusi "body/osa".

Kyllähän sen voi niinkin värkätä, mutta tavoitteenani olisi, että tämän jälkeen voisi muuttaa alkuperäistä body-osaa s.e. body-osaan tehdyt muutokset tulisivat myös niistä kopioituihin kappaleisiin.

OpenSCAD:llä se on mahdollista s..e. tekee rungosta modulin, ja tämän jälkeen kutsuu modulia, ja tekee kutsun moduliin esim. boolean toimintoja.

Esim.
Koodia: [Valitse]
module connector() {
...
}

difference() {
    connector();
    translate([-10,5,10]) cube([2,10,3],center=true);
    translate([10,-5,10]) cube([2,10,3],center=true);
}
translate ([200,0,0]) union()
{
    connector();
    translate([-4,0,-10]) cube([2,10,20],center=true);
    translate([-4,0,10]) cube([2,10,20],center=true);
}

Tämä ei varmaan tee mitään järkevää, mutta ajatus on siinä, että yhdessä osassa tehdään connector()-body-osalle lovet, ja toisessa osassa lisätään samaan connector()-body-osalle pari kuutiota.

Nyt, jos muokkaan connector()-modulia, niin muokkaukset menevät sekä lovet sisältävälle body-osalle että sille kappaleelle, jossa on kaksi kuutiota.

FreeCAD:ssä kloonaus-työkalulla voi kloonata kertaalleen kyseisen connector-body-osan, ja kun teen muutokset kloonatulle kappaleelle, niin muutokset jäävät kloonatulle kappaleelle. Se on se mitä haen, mutta haluaisin saman ominaisuuden kahteen kertaan.

Eli s.e. onnistuisin kloonaamaan myös toiseen kertaan connector-body-osan s.e. kun muokkaan alkuperäistä kloonin lähdettä, niin muutokset menisivät molemmille klooneille, ja halutessani muokata vain jompaa kumpaa kloonia, niin muutokset tulisi vain kyseiselle kloonille.

qwertyy

  • Käyttäjä
  • Viestejä: 5675
    • Profiili
Vs: Kysymys FreeCAD:stä ...
« Vastaus #3 : 10.04.24 - klo:22.30 »
Tuo tapa hiukan sotii vastaan tuota kokoonpanoa minusta, koska otetaan aina huomioon kahden osan sijainti avaruudessa. Mutta hiukan kiertäen tuota, niin miksi et mitoita osia muuttujilla ja käytä niitä? En nyt muista tarkkaa nimeä FreeCAD:ssä, mutta siellä näytti olevan mahdollista käyttää muuttujia mitoituksille. Niitä käyttämällä saat ainakin mitoitusmuutokset heijastumaan samaan aikaan. Siis ainakin F360:ssä ja en usko, että FreeCAD tuon osalta poikkeaa.

Tästä on muistaakseni parempikin video, mutta hiukan tähän tyyliin tarkoitan. Käytät vain kummankin osan mitoitukseen samaa muuttujaa (alias taisi olla videolla)
https://www.youtube.com/watch?v=Jze6ftGc6BQ

Toivottavasti vähänkään vastaa ajatustasi.

kamara

  • Käyttäjä
  • Viestejä: 2951
    • Profiili
Vs: Kysymys FreeCAD:stä ...
« Vastaus #4 : 11.04.24 - klo:10.04 »
Tästä on muistaakseni parempikin video, mutta hiukan tähän tyyliin tarkoitan. Käytät vain kummankin osan mitoitukseen samaa muuttujaa (alias taisi olla videolla)
https://www.youtube.com/watch?v=Jze6ftGc6BQ

Kiitos, olen toki ollut tietoinen kyseisestä ominaisuudesta, mutta en haluaisi tehdä sen avulla, sillä siitä tulee vähän purkkamainen ratkaisu. Tosin kyllä sen sillä saa todennäköisesti tehdyksi. En tosin ole aiemmin nähnyt tutoriaalia, jossa opetetaan tämän käyttöä, siksi se on varsin tervetullot videon pätkä.

Toivottavasti vähänkään vastaa ajatustasi.

Kiitos nyt kuitenkin.
« Viimeksi muokattu: 11.04.24 - klo:10.08 kirjoittanut kamara »

kamara

  • Käyttäjä
  • Viestejä: 2951
    • Profiili
Vs: [Purkkaratkaisu]Kysymys FreeCAD:stä ...
« Vastaus #5 : 12.04.24 - klo:18.39 »
Ok, taitaa olla oikeaoppista käyttää Taulukkoa, ja sen avulla hallita kappaleen muotoja.

Olen kuitenkin vielä varsin nyyppä FreeCAD:n käyttäjänä. Eikä minulla ole juuri muutakaan kokemusta 3D-cad:stä. Mitä nyt joskus kokeillut ketsuppia käyttää, mutta sen ominaisuudet eivät ole minun käyttööni riittävät.

Ilmeisesti oikeaoppisesti käyttäminen olisi, että aluksi tekisi kappaleen runko-osalle, ja sen jälkeen kopioisi kappaleen, ja taulukon avulla huolehtisi muutoksista, jotka koskettavat molempia runko-osia.

Lisäongelmana oli myös FreeCAD:n tapa viedä malli stl-formaattiin. Jos jättää merkkaamatta mallia, niin malli ei tule stl-tiedostoon. Jos taas merkkaa kaikki kappaleet Ctrl+A:lla, niin keskelle tulee aika ikävän näköinen sätös, jossa  on kaikkien sketsien ja pad:ien jätökset yhtenä sekasotkuna.

Ilmeisesti oikeaoppisesti pitää luoda kaksi kappaletta, ja varmuuden vuoksi molempien kappaleiden sijainniksi kannattaa laittaa muu kuin origo, jotta huomaa, jos vienti-toiminnossa on liikaa tavaraa viedyssä mallissa.

Pidän ratkaisua purkkaratkaisuna, kun ei ilmeisestikään FreeCAD:ssä ole haluamaani toimintoa.

OpenSCAD:n lähestymistapa on kuitenkin aivan erilainen, joten ratkaisustakin on erilainen.

Tosin FreeCAD sisältää OpenSCAD:n toiminnallisuuden, mutta sitä ei ole aivan täydellisen sulavasti kytketty.