kurse:efcomputergrafik:kw48

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:kw48 [2019/11/28 09:37]
Ivo Blöchliger [Text-Analyse mit Python]
kurse:efcomputergrafik:kw48 [2019/12/04 11:48] (current)
Ivo Blöchliger [Text-Analyse mit Python]
Line 112: Line 112:
   * Shift-Ctrl-C: Object to Path (Kreise, Rechtecke, Text wird erst *nicht* als Pfad gespeichert.) Bei Text ist danach noch eine Gruppe aufzulösen.   * Shift-Ctrl-C: Object to Path (Kreise, Rechtecke, Text wird erst *nicht* als Pfad gespeichert.) Bei Text ist danach noch eine Gruppe aufzulösen.
   * Ctrl-K: Combine (mehrere Pfade in einen Pfad zusammenfassen).    * Ctrl-K: Combine (mehrere Pfade in einen Pfad zusammenfassen). 
- 
-===== Text-Analyse mit Python ===== 
-=== Datei einlesen === 
-Von https://stackoverflow.com/questions/7409780/reading-entire-file-in-python 
-<code python> 
-with open('Path/to/file', 'r') as content_file: 
-    content = content_file.read() 
-</code> 
-=== Text finden === 
-https://www.geeksforgeeks.org/string-find-python/ 
-<code python> 
-position = content.find("<path ",startPosition)  # die Startposition ist optional, kann gebraucht werden, um weitere Vorkommen zu finden. 
-if (position!=-1): # Wirklich was gefunden 
-  # tu was damit 
-</code> 
-=== Substring === 
-<code python> 
-a="0123456789" 
-a[2:5] # -> liefert "234" 
-</code> 
-=== Text Analyse === 
-Ist der Path-String einmal gefunden, geht es darum, diesen zu analysieren. Als erster Schritt soll dieser nach Leerschlägen aufgeteilt werden: 
-<code python> 
-txt = "foo bar baz boo" 
-items = txt.split(" ") 
-</code> 
- 
-=== Convertierung in Zahlen === 
-<code python> 
-zahl = float("3.14") 
-</code> 
- 
- 
-<hidden converter.py> 
-<code python converter.py> 
- 
-def convert(elements): 
-    # Aktuelle Koordinaten 
-    x = 0 
-    y = 0 
-    # Position im elements Array 
-    e = 0 
-    # letztes Kommando 
-    lastCMD = "" 
-    while e < len(elements): 
-        if elements[e]=="M":  # Move absolute 
-            x = float(elements[e+1]) 
-            y = float(elements[e+2]) 
-            e = e+3   # 3 Element konsumiert 
-        elif elements[e]=="m":  # Move relative 
-            x = x + float(elements[e+1]) 
-            y = y + float(elements[e+2]) 
-            e = e+3   # 3 Element konsumiert 
- 
- 
- 
-with open('text.svg', 'r') as content_file: 
-    content = content_file.read() 
-     
-# print(content) 
-# Anfangsposition vom path 
-position = content.find("<path") 
-if position<0: 
-    raise BaseException("Kein <path gefunden!") 
- 
-#print("Position %d" % position) 
-# Erste 20 Zeichen vom path 
-#print(content[position:(position+20)]) 
- 
-# d=" suchen... (ab der Position position) 
-while True: 
-    position = content.find("d=\"", position) 
-    if position<0: 
-        BaseException("Kein d= gefunden") 
-         
-    if content[position-1]<'0': # kein Buchstabe vor d 
-        break 
-     
-    position+=1 
-# Erste 20 Zeichen vom d 
- 
-start = position+3 
-ende = content.find("\"", start) 
- 
-pfaddef = content[start:ende] 
-print(pfaddef) 
-pfaddef = pfaddef.replace(",", " ") 
-print(pfaddef) 
-elemente = pfaddef.split(" ") 
-print(elemente) 
- 
-</code> 
-</hidden> 
-===== G-Code für den Plotter ===== 
-Der Nullpunkt befindet sich bei den Radien $r_1=r_2=1445$ (in mm). Pro Motorschritt verändern sich die Radien um $\approx 0.0157029$ (mm). Die Motoren haben einen Abstand von 1930 mm. 
- 
-Der G-Code bezieht sich direkt auf die Motorenschritte (was eigentlich gerade nicht der Sinn von G-Code ist). 
- 
-Nur G1 (lineare Interpolation) ist implementiert: 
-  * G1 X-400 Y800  (Gehe zur absoluten Position -400 Schritte (Motor links) und +800 Schritte (Motor rechts). 
-  * G1 Z0 (Stift hoch, nicht zeichnen) 
-  * G1 Z1 (Stift runter, zeichnen) 
-Nach jedem Kommando muss auf ein 'OK\n' gewartet werden. 
  
  
  • kurse/efcomputergrafik/kw48.1574930221.txt.gz
  • Last modified: 2019/11/28 09:37
  • by Ivo Blöchliger