Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
DieterStriebel
Beiträge: 24
Registriert: 13 Mär 2023, 17:49
Wohnort: Schweiz, Breitenbach

Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von DieterStriebel » 13 Mär 2023, 19:55

Hallo zusammen

ja ich bin noch ziemlich neu hier, zu meiner Person: viewtopic.php?f=4&t=7912

Zum Start 2 Bilder:
  • 1 Anfang.jpg
    1 Anfang.jpg (20.82 KiB) 1326 mal betrachtet
  • 2 Ende.jpg
    2 Ende.jpg (217.36 KiB) 1326 mal betrachtet
Zwischen diesen Bildern liegen 5 Sekunden und folgendes Python Script:
Code.jpg
Code.jpg (262.07 KiB) 1326 mal betrachtet
Dies ist meine erst Entwicklung in Python und mit dem fischertechnik Designer. der Code ist einfach und simple gehalten, eine Fehlerbehandlung ist bewusst nicht implementiert UND zumindest die sphärische Trigonometrie hat noch Bugs (Hilfe gerne willkommen).
  • für die, die wissen wie es geht: unten der Code zum kopieren
  • für alle anderen, folgt ein Beitrag zur Einrichtung von Python und fischertechnik Designer
LG Dieter

Code: Alles auswählen

#SerienGenerator
#Autor:  Dieter Striebel
#Stand:  13.03.2023
import ftd
import math
    
lngPartCount = ftd.GetPartCount()
#get the two last added parts.                  >>> based on this parts, the serie will be generated
prt1 = ftd.GetPartAtIndex(lngPartCount-2)            
prt2 = ftd.GetPartAtIndex(lngPartCount-1)            
#select ONLY the two last added partsftd.DeSelectAll()
ftd.SelectPart(prt1.Name)
ftd.CoSelectPart(prt2.Name)
#move selected parts zu new phase
lngPhase = prt1.Phase + 1
prt1.Phase = lngPhase
prt2.Phase = lngPhase
ftd.RepaintPhaseView()

#get Object3D
o3d1 = prt1.Object3D
o3d2 = prt2.Object3D
pos1 = o3d1.Position
pos2 = o3d2.Position
dir1 = o3d1.Direction
dir2 = o3d2.Direction   

lngDir1x = math.degrees(math.asin(dir1.x))
lngDir2x = math.degrees(math.asin(dir2.x))
lngDir1y = math.degrees(math.asin(dir1.y))
lngDir2y = math.degrees(math.asin(dir2.y))
lngDir1z = math.degrees(math.asin(dir1.z))
lngDir2z = math.degrees(math.asin(dir2.z))

#calculate difference
lngPosDx = pos2.x - pos1.x
lngPosDy = pos2.y - pos1.y
lngPosDz = pos2.z - pos1.z
lngDirDx = lngDir2x - lngDir1x
lngDirDy = lngDir2y - lngDir1y
lngDirDz = lngDir2z - lngDir1z

#store new starting point
lngPosSx = pos2.x
lngPosSy = pos2.y
lngPosSz = pos2.z
lngDirSx = dir2.x
lngDirSy = dir2.y
lngDirSz = dir2.z
                                                #orgNumber = prt2.OrgNumber
orgNumber = prt2.Name[1:6]
lngNumber = int(ftd.InputDlg("Serie erstellen", "Anzahl Bauteile", "0"))
for i in range(lngNumber):
    #create new part
    strN = ftd.AddPart(orgNumber)
    ftd.CoSelectPart(strN)
    prtN = ftd.GetPartAtIndex(lngPartCount + i)
    prtN.Phase = lngPhase
    ftd.RepaintPhaseView()
    o3dN = prtN.Object3D
    posN = o3dN.Position
    dirN = o3dN.Direction
    #   set new coordinates based on the starting-point and the different of the origianly two last added parts
    posN.x = lngPosSx + lngPosDx
    posN.y = lngPosSy + lngPosDy
    posN.z = lngPosSz + lngPosDz
    dirN.x = math.sin(math.radians(lngDirSx + lngDirDx))
    dirN.y = math.sin(math.radians(lngDirSy + lngDirDy))
    dirN.z = math.sin(math.radians(lngDirSz + lngDirDz))
    prtN.CommitChanges(0)     
    #   and store it as new starting point 
    lngPosSx = posN.x
    lngPosSy = posN.y
    lngPosSz = posN.z
    lngDirSx = dirN.x
    lngDirSy = dirN.y
    lngDirSz = dirN.z
Zuletzt geändert von DieterStriebel am 15 Mär 2023, 18:35, insgesamt 2-mal geändert.

Benutzeravatar
laserman
Beiträge: 209
Registriert: 05 Nov 2010, 16:06
Kontaktdaten:

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von laserman » 14 Mär 2023, 18:11

Hallo Dieter,
na da bin ich (und bestimmt auch viele andere) mal sehr gespannt.
1. arbeite ich auch sehr gerne mit dem Designer
2. wollte ich mal was mit Python machen, das hat aber nicht so geklappt: Script ausführen
Viele Grüße, Laserman

DieterStriebel
Beiträge: 24
Registriert: 13 Mär 2023, 17:49
Wohnort: Schweiz, Breitenbach

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von DieterStriebel » 14 Mär 2023, 21:11

Hallo laserman

Danke für die Antwort, dann geht es jetzt für Dich hier weiter: «fischertechnik Designer» und Python: Konfiguration - Verwendung - Probleme und Lösungen...

LG Dieter

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von PHabermehl » 15 Mär 2023, 09:30

Hochinteressante Sache!

Leider hab ich den Designer unter Linux/Wine laufen, ob da noch 'was mit Python geht???

Gruß Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

DieterStriebel
Beiträge: 24
Registriert: 13 Mär 2023, 17:49
Wohnort: Schweiz, Breitenbach

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von DieterStriebel » 15 Mär 2023, 10:15

Ausprobieren.
- ist Python unter Linux installiert, welche Version?
- und dann den «fischertechnik Designer» konfigurieren, wie hier «fischertechnik Designer» und Python: Konfiguration - Verwendung - Probleme und Lösungen... beschrieben.

bin gespannt auf das Ergebnis Deiner Versuche, aber bitte im oben erwähnten Thread posten (passt dort besser)

LG Dieter

DieterStriebel
Beiträge: 24
Registriert: 13 Mär 2023, 17:49
Wohnort: Schweiz, Breitenbach

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von DieterStriebel » 16 Mär 2023, 19:12

PHabermehl hat geschrieben:
15 Mär 2023, 09:30
Leider hab ich den Designer unter Linux/Wine laufen, ob da noch 'was mit Python geht???
Hallo Peter, spannend, ich habe zwar nur einen Raspberry Pi aber darauf sollte WINE auch laufen.
Wenn Du mir in etwa beschreibst, wie du WINE und den x86-Emulator (welchen? https://eltechs.com/ scheint es nicht mehr zu geben) installiert hast versuche ich es auch mal.

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von PHabermehl » 16 Mär 2023, 20:26

DieterStriebel hat geschrieben:
16 Mär 2023, 19:12
PHabermehl hat geschrieben:
15 Mär 2023, 09:30
Leider hab ich den Designer unter Linux/Wine laufen, ob da noch 'was mit Python geht???
Hallo Peter, spannend, ich habe zwar nur einen Raspberry Pi aber darauf sollte WINE auch laufen.
Wenn Du mir in etwa beschreibst, wie du WINE und den x86-Emulator (welchen? https://eltechs.com/ scheint es nicht mehr zu geben) installiert hast versuche ich es auch mal.
Ach du Schreck, ich habe einfach wine unter OpenSuse 15.4 gestartet, das war da gleich mal mitinstalliert. Ich habe da gar nicht genauer hingeschaut.

Gruß Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

juh
Beiträge: 903
Registriert: 23 Jan 2012, 13:48

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von juh » 16 Mär 2023, 22:07

PHabermehl hat geschrieben:
15 Mär 2023, 09:30
Leider hab ich den Designer unter Linux/Wine laufen, ob da noch 'was mit Python geht???
Hallo Peter (und Dieter),

soweit ich Wine verstehe, müsstest du wahrscheinlich Python (für Windows) mit in das selbe Wineprefix installieren, in dem auch der Designer läuft. Denn ich denke vom unter Linux installierten Python wird der unter wine laufende Designer nichts wissen. Falls du kein extra Wineprefix angelegt hast, wahrscheinlich einfach nur eine Python Installations exe runterladen und per wine installieren, das geht dann ins default Wineprefix. Danach müsste dann Dieters Anleitung anwendbar sein (klasse Projekt übrigens).

vg
Jan

kräml
Beiträge: 272
Registriert: 14 Aug 2020, 06:47

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von kräml » 19 Mär 2023, 22:27

Hallo,

ah hier ist das mit Linux und wine.

So wie es juh beschrieben hat, geht es bei mir leider nicht UND ich habe noch keine Lösung.

Über winetricks kann man Python2.6 installieren. Das klappt bedauerlicherweise auch nicht.

Habe dann den msi Installer für 2.5 durchlaufen lassen. Leider auch keinen Erfolg im Designer.

Was ich noch nicht gemacht habe, ist eine win-cli unter wine um python zu testen. Da müsste ich erstmal wissen, wie ich das mit wine machen sollte.

Hat evtl. noch jemand eine Idee?

Gruß Kräml

DieterStriebel
Beiträge: 24
Registriert: 13 Mär 2023, 17:49
Wohnort: Schweiz, Breitenbach

Re: Eine Kette mit 99 Gliedern in 5 Sekunden oder «fischertechnik Designer» und Python

Beitrag von DieterStriebel » 19 Mär 2023, 23:38

bei mir läuft es und geht jetzt hier weiter
viewtopic.php?f=8&t=7920&p=61522#p61531

Antworten