Pomysły projektów na długie zimowe wieczory?

Polish forum

Moderators: PrzemoF, kaktus

Forum rules
Regulamin forum i pomocne informacje

WAŻNE! Przeczytaj zanim poprosisz o pomoc
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Pomysły projektów na długie zimowe wieczory?

Post by kwahoo »

Dla zabicia codziennej monotonii tli się we mnie chęć pokucowania[1]. Zastanawiam się co by można zrobić z wykorzystaniem FreeCAD-a i jednocześnie stworzyć coś pożytecznego.

Na początek przyszły mi do głowy dwie rzeczy:
1. czysto programowy: moduł fotogrametrii, integracja OpenMVG https://github.com/openMVG/openMVG/ Uzyskałem ładne efekty nawet tanim, 10-letnim cyfrakiem http://imgur.com/a/xQkaj Do szczęścia brakuje przyjaznego GUI, może by spróbować zrobić ładny moduł w FreeCAD-zie? Tutaj trochę problem leży w moich umiejętnościach, bo pomimo, że mam przy łóżku stos książek o C++ i Pythonie, to ciągle nie mogę znaleźć czasu na ich dobre zgłębienie (nie jestem programistą a konstruktorem) a i umysł chyba nieco mniej chłonny niż 10 lat temu...

2. programowo-sprzętowy: prosta obrabiarka CNC "Castorama edyszyn". Trochę zainspirował mnie ten post viewtopic.php?f=24&t=11684 ale mam chęć na coś bardziej niskopoziomowego, bez Arduino i kobylastych bibliotek i pewnie bez G-Codu. Wala się u mnie parę płytek z Atmegami i mały komputerek z LPT http://wkupiesila.blogspot.com/2015/01/ ... rator.html, który jest równie dobry (ostatnio nawet przeportowałem sobie na niego (z AVR) sterownik wyświetlacza PCF8833;).
Chciałbym wykorzystać Path z FreeCAD-a i implementację sterownika silników krokowych, wzorowaną na rasteryzacji - tylko zamiast pikseli byłyby kroki silników.To też pytanie czy warto bawić się w silniki bipolarne i duet L297 L298 (co kiedyś dla mnie działało https://wtryskpaliwa.wordpress.com/ukla ... echniczne/) czy iść na łatwiznę i w ULN2003 + silniki unipolarne.

[1] programowania, lutowania, skręcania i innych twórczych czynności

Może jakieś inne pomysły?

Zima zimna, wieczory długie, szkoda je przesypiać, lub tracić tylko na sączenie piwa.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by PrzemoF »

Bardzo mi się podoba 1 i miałbym zastosowanie od ręki :D Projektuję komputer rowerowy opatry ma raspberry pi i zamiast modelować wszystkie elementy (gps, czujnik cisnienia/temp, akcelerometr, baterię, moduł ładowania, ekran itp) mógłbym operować na skanie i chmurze punktów albo zrobić modele na tej podstawie. Z pythonem chętnie pomogę (jest w miarę prosty, przynajmniej do pewnego momentu), C++ nie lubię i używam tylko jak muszę. Co do umysłu to tylko wykręt - jestem tego pewnien ;)
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by kwahoo »

Na pewno przy projekcie 1 jest szansa na szersze grono odbiorców.

Jak chcesz sprawdzić jak to działa, to tzw. rzadką chmurę punktów udawało mi się wygenerować tym skryptem Pythona https://github.com/openMVG/openMVG/blob ... line.py.in

To co jest na screenshotach, to gęsta (dense) chmura, którą się robi na bazie rzadkiej - niestety tu musiałem się posiłkować już dodatkowym oprogramowaniem, którego chciałbym uniknąć. I tu jest cały szkopuł...
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by PrzemoF »

Przez jakiś czas pracowałem z chmurą wygenerowaną przez skaner laserowy w autocadzie i dokladnie wiem czego tam brakuje. Nie mam chwilowo czasu popatrzeć w szczegóły, ale raspberry pi + kamera + FreeCAD i mógłby powstac bardzo ciekawy skaner 3D.

Masz jakies pliki z chmurą punktów kompatybilne z FreeCADem? W FreeCADzie jest Points wb, ale nie wiem czy i jak działa.
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by kwahoo »

Zajrzyj do tego katalogu https://drive.google.com/folderview?id= ... sp=sharing

pliki structure* to sparse mesh, option-0000.ply to dense mesh. Niestety importer PLY FreeCAD-a nie daje sobie rady, choć to zwykły ASCII w stylu:
x y z red green blue

Code: Select all

0.0244736 -0.155054 -0.146626 0 255 0

Otworzyłem więc plik PLY w Meshlabie i zapisałem jako XYZ (bez normalnych). Potem zmieniłem rozszerzenie na ASC (patrz option-0000.asc) i to już Point Workbench strawił. Niestety bez kolorów, bo pliki tego typu mają format
x y z

Code: Select all

-0.414759 -1.206610 3.460400
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by PrzemoF »

OK, dzięki! Muszę popatrzeć w importer, kolory by się przydały. asc działa tak jak piszesz.
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by kwahoo »

Wygląda na to, że mając tylko jeden obiekt (chmurę punktów), można mieć tylko jeden kolor.

Code: Select all

>>> import Points
>>> Points.open('3points.asc')
>>> p = App.ActiveDocument._points.Points
>>> p.Points
[Vector (-0.4147590100765228, -1.2066099643707275, 3.460400104522705), Vector (-0.41023901104927063, -1.2066999673843384, 3.462860107421875), Vector (-0.4029189944267273, -1.2068599462509155, 3.461899995803833)]
>>> vp = Gui.ActiveDocument.getObject("_points")
>>> vp.ShapeColor
(0.800000011920929, 0.800000011920929, 0.800000011920929, 0.0)
Skleciłem skrypt, który otwiera plik PLY i wstawia każdy punkt jako osobny obiekt, razem z kolorem:

Code: Select all

import Part
f = open('option-0000.ply', 'r')
lines = f.readlines()[13:1000]
i = 0
for line in lines:
    pos = [float(x) for x in line.split()]
    App.ActiveDocument.addObject("Part::Vertex","Vertex"+str(i))
    App.ActiveDocument.getObject("Vertex"+str(i)).X = pos[0]
    App.ActiveDocument.getObject("Vertex"+str(i)).Y = pos[1]
    App.ActiveDocument.getObject("Vertex"+str(i)).Z = pos[2]
    FreeCADGui.ActiveDocument.getObject("Vertex"+str(i)).PointColor = (pos[6]/255.0, pos[7]/255.0, pos[8]/255.0)
    i += 1

f.close()
Niestety wydajność pozostawia wiele do życzenia, otwarcie czegokolwiek ponad 1000 punktów (f.readlines()[13:1000]) trwa wieczność - co jest zresztą oczywiste.. Pytanie jak zrobić wyświetlanie,kolorów bez osobnych obiektów, pewnie skończy się na napisaniu własnego viewprovidera.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by PrzemoF »

Hmmm. w FemTools jest funkcja ktora przyjmuje liste id węzłow i listę wartości. Lista id wezłów jest z siatki fem, lista wartości to może byc cokolwiek. Ta lista wartości jest zamieniana na skale kolorów i jako rezultat otrzymujemy pokolorowaną siatkę.

Właśnie sprawdziłem, że węzły i krawędzie nie sa kolorowe, czyli mój pomysł, żeby użyć siatki FEM nie ma sensu, przynajmniej bez modyfikacji viewprovidera :( Kolorowe są tylko powierzchnie (Jaki jest polski odpowiednik słowa face??)
User avatar
kwahoo
Posts: 680
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by kwahoo »

PrzemoF wrote:(Jaki jest polski odpowiednik słowa face??)
Stawiałbym na "ściany", bo "facetki" mi nie leży...
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: Pomysły projektów na długie zimowe wieczory?

Post by PrzemoF »

Ściana brzmi nieźle.. Czyli siatka MES ma kolorowe ściany, ale węzły zostają bez koloru :)
Post Reply