Doel:€250.00
Donaties:€105.00

Per saldo:€-145.00

Steun ons nu!
Actie: steun €2.50 via de Wim Vink kalender 2021!

Laatst bijgewerkt
op 26-10-2020
Algemeen

De stichting

Recente berichten

DR4088 aansluiting en diodeschakeling door VvKan
Vandaag om 22:59:21
Een kleine baan in een grote schaal: Laden en lossen in 1:22.5 door NS1220
Vandaag om 22:52:02
Digitaal pendelen met Lenz ABC-systeem - Esu Lokpilot V5 door VvKan
Vandaag om 22:50:03
Grunn, NS modelbaan tijdperk IIIa door NS1220
Vandaag om 22:49:33
Postwagen/Dg HSM P445 / NS 2001 in messing. Schaal 0. door mwdb
Vandaag om 22:48:50
BR 81 met rookgenerator in O voor belachelijk lage prijs door Reinier Z.
Vandaag om 22:39:18
Projekt 083-338 door 44
Vandaag om 22:31:13
Multimaus programmeren : probleem 2 locs zelfde adres door Bahn-AG
Vandaag om 22:24:40
Tortoise en DR4018 maakt een halve beweging door Klaas Zondervan
Vandaag om 22:24:27
Rocrail gebruikersgroep door Hans1963
Vandaag om 22:17:15
Waarom bij Lenz geen diodes bij ongedetecteerde railstukken? door Klaas Zondervan
Vandaag om 22:01:24
Van Fleischmann spoor N, naar beginner Märklin spoor h0 digitaal door Bahn-AG
Vandaag om 21:50:40
Ontraxs 2021 GEANNULEERD, nieuwe datum n.n.b. door Gerard van de Weijer
Vandaag om 21:47:38
Toon hier je nieuwe (model-) spooraanwinst(en)... door roadster36
Vandaag om 21:42:30
Ergensnergens in H0e door NS1220
Vandaag om 21:41:42
Paul's model train stuff door Duikeend
Vandaag om 21:38:19
NS modelbaan Hoekdam H0 door Rob E.
Vandaag om 21:33:40
Kopen in de VS door Alexander
Vandaag om 21:27:19
Laag-Baarlo door Mark Lin
Vandaag om 21:26:56
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door Rob E.
Vandaag om 21:14:48
Spoor op industrieterrein Lage Weide door Jos_1972
Vandaag om 21:08:35
Goederenloods Apeldoorn door Bart spruitje
Vandaag om 21:05:22
EifelBurgenBahn door Reinout van Rees
Vandaag om 20:59:08
Onlangs gespot - gefotografeerd, de foto's door Erik Mijd
Vandaag om 20:24:05
De bouw van een modulebaan met Nederlands Landschap door AntonM
Vandaag om 19:18:27
Philotrain NS C10c (ex. SS), kit 15c door ingenium
Vandaag om 19:00:32
BNLS-Module: Grasland - de keerlussen met schaduwbakken door St00mboy
Vandaag om 18:30:06
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door St00mboy
Vandaag om 18:28:43
Probleem met Cobalt IP digital wisselmotoren door BrightonBelle
Vandaag om 17:46:00
Schwarzburg-Neuffen-Bahn door Ruud K
Vandaag om 17:43:48
  

Auteur Topic: 3D/RM Automatisch gegenereerde draaistellen in python  (gelezen 2560 keer)

Papierbouwer

  • Offline Offline
  • Berichten: 839
    • sec geplot
3D/RM Automatisch gegenereerde draaistellen in python
« Gepost op: 06 oktober 2017, 02:28:20 »
Hallo iedereen,

Een tijd geleden al heb in autocad een motordraaistel getekend voor een tram. Mijn vader was er erg blij mee, en wil nu voor een andere tram met een andere radstand ook zo'n draaistel... En omdat ik te lui ben om het bestand voor alle radstanden en dergelijke aan te passen, ben ik maar begonnen met een programmaatje in python om automatisch een draaistel te genereren met een paar parameters.
Ik ga het draaistel wat ik al had geprint als voorbeeld gebruiken voor de gegenereerde draaistellen. Zo zag die eruit:


Ik ben eerst begonnen met het opzoeken van de specificaties van STL-bestanden. Gelukkig zijn die niet al te ingewikkeld opgebouwd en is er een modus waarbij het bestand een gewoon ascii-bestand is. Dat is wel zo makkelijk te schrijven en debuggen. Voor diensten die een binair STL-bestand nodig hebben, zijn er vast wel conversietooltjes geschreven...
Een STL-bestand heeft de volgende indeling:
De eerste regel is een regel waarin een object wordt gedefinieerd en er een naam aan wordt toegewezen:
solid nameDaarna volgen de faces, dat zijn de losse driehoeken waaruit een 3D-model is opgebouwd. Een face bestaat dus uit drie verteces (een driehoek heeft tenslotte drie hoeken). De verteces detineren de coördinaten van de hoekpunten.
facet normal ni nj nk
    outer loop
        vertex v1x v1y v1z
        vertex v2x v2y v2z
        vertex v3x v3y v3z
    endloop
endfacet
Deze code komt in het bestand voor alle driehoeken voor.
Als laatste wordt het object afgesloten met deze regel:
endsolid name
Na een beetje oefenen met een STL-bestand en een viewer om een beetje door te krijgen hoe zo'n bestand nu precies in de praktijk werkt, ben ik begonnen om in python code te schrijven om een 3D-model op te kunnen slaan, en om te zetten in een STL-bestand. Na flink wat geprogrammeer, was het me gelukt om een werkend STL-bestand uit de code te krijgen! Traditioneel gezien moet je dan natuurlijk eigenlijk een theepot maken om je programma te testen, maar dat was me net iets te veel werk.. Dus dan maar met een "simpele" kubus.

Ik zou zeggen dat de code werkt... Nu nog maar eens een basismodel maken voor het draaistel.

Ik heb nog wel een vraag over de normal van een face die in het STL-bestand gedefinieerd staat: Wat is de functie daarvan? De kubus lijkt gewoon te werken met een normal van 0 0 0 voor alle face's... Het lijkt me dat de printer ook niet echt de normal nodig heeft voor het printen.

Erik
« Laatst bewerkt op: 06 oktober 2017, 02:32:43 door Papierbouwer »

Hans van de Burgt

  • BMB & EMV
  • Offline Offline
  • Berichten: 4655
    • Medway Valley Line
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #1 Gepost op: 06 oktober 2017, 07:14:30 »
@Eric,



Klik op het plaatje om een filmpje te starten.

Misschien is het nieuwe Feature Script van Onshape.com iets voor jou.
Zie: https://www.onshape.com/featurescript

Als je in Onshape een CAD tekening maakt, wordt deze automatisch ook in Feature Script opgeslagen. Je kunt dan als je wil, je ontwerpen editen in Feature Script, gewoon de parameters aanpassen.

Maar je kunt ook alles ontwerpen door vanuit Feature Script te starten.

Het voordeel van Onshape is dat je een waslijst aan bestanden van bestaande CAD systemen kunt importeren. Klik hier voor een overzicht.

Onshape.com is gratis verkrijgbaar voor de hobbyist.

Gr, Hans
https://britsemodulebaan.wordpress.com/ (BMB-groep)
https://medwayvalleyline.wordpress.com/ (Wateringbury, Stoneham Lock en Beltring & Branbridges Halt)
http://www.eindhovenmodelbouw.nl/ (EMV)
https://maakonderwijs.wordpress.com (Techniek onderwijs)

jowi

  • Offline Offline
  • Berichten: 2078
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #2 Gepost op: 06 oktober 2017, 08:09:11 »
Ik ben hem even kwijt hoor ??? Als je het ding al getekend hebt in een pakket (bijv. Sketchup ofzo) dan exporteer je het toch gewoon als STL... ik begrijp even niet waarom je een python script moet schrijven...

Dutch

  • Offline Offline
  • Berichten: 278
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #3 Gepost op: 06 oktober 2017, 08:17:41 »
In inventor kan ik een Excel bestand importeren om parameters te wijzigen. Ik denk dat alle moderne CAD programma's dat kunnen. Hans geeft hierboven al aan dat Onshape ook zoiets kan ;).

Op het werk gebruiken we deze functies om speciale onderdelen te maken en robots aan te sturen. Erg leuke functies.
Mvg, Bjorn.

Papierbouwer

  • Offline Offline
  • Berichten: 839
    • sec geplot
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #4 Gepost op: 06 oktober 2017, 09:24:33 »
Ik ben hem even kwijt hoor ??? Als je het ding al getekend hebt in een pakket (bijv. Sketchup ofzo) dan exporteer je het toch gewoon als STL... ik begrijp even niet waarom je een python script moet schrijven...
Dat is natuurlijk mogelijk, maar naast de praktische kant van het programma, is het natuurlijk ook de hobby om het programma te schrijven ;) .

Erik

Verstuurd vanaf mijn D5503 met Tapatalk


Hans van de Burgt

  • BMB & EMV
  • Offline Offline
  • Berichten: 4655
    • Medway Valley Line
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #5 Gepost op: 06 oktober 2017, 09:34:26 »
Ik ben hem even kwijt hoor ??? Als je het ding al getekend hebt in een pakket (bijv. Sketchup ofzo) dan exporteer je het toch gewoon als STL... ik begrijp even niet waarom je een python script moet schrijven...

@Jowi,

Je begrijpt dat ik een ander script gebruik.
Als je heel vaak gevels tekent, kun je dat doen met een parametrisch script. Je geeft de breedte en de hoogte op, en de posities van deuren en ramen. De laatste hebben immers standaard maten. Dus met een paar handelingen ben je klaar.

Gr, Hans
https://britsemodulebaan.wordpress.com/ (BMB-groep)
https://medwayvalleyline.wordpress.com/ (Wateringbury, Stoneham Lock en Beltring & Branbridges Halt)
http://www.eindhovenmodelbouw.nl/ (EMV)
https://maakonderwijs.wordpress.com (Techniek onderwijs)

Reinout van Rees

  • Team forummoderators
  • Offline Offline
  • Berichten: 5662
  • Forummoderator
    • Persoonlijke website + weblog
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #6 Gepost op: 06 oktober 2017, 12:22:25 »
Geinig idee, om dat zelf in python te bouwen! Moet inderdaad prima kunnen.

Ik weet niet hoe je je python script hebt opgezet. Iets om naar te kijken is "jinja2" als templatetaal. Dat STL formaat ziet eruit als iets waarbij je veel hebt aan loopjes enzo. Een combi van python en jinja2 werkt dan vaak lekker.

Klus ze!

Reinout
Bouw v/d EifelBurgenBahn (h0, zijlijn in de Eifel)
Eifelgeschiedenis (verhalen en video's over de Eifelburgenbahn)

Papierbouwer

  • Offline Offline
  • Berichten: 839
    • sec geplot
Re: 3D/RM Automatisch gegenereerde draaistellen in python
« Reactie #7 Gepost op: 06 oktober 2017, 13:05:24 »
Ik heb voor de verteces, faces en solids nu classes aangemaakt om de objecten op te kunnen slaan. In een model zit een array van triangles en in een triangle een array van verteces. Op die manier is het schrijven van een STL bestand is eenvoudig omdat je direct de hiërarchie van het model kan gebruiken voor het aanmaken van het bestand. Ik zat er zelf aan te denken om zelf een template-opmaak te bedenken. Hij hoeft tenslotte toch niet super veel uitgebreide functies te bezitten. Ik ga wel kijken naar jinja2, het ziet er wel interessant uit.
De code is voor iedereen in te zien op Github: https://github.com/papierbouwer/draaistelCreator

Erik