SlideShare a Scribd company logo
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
Use customized material files with PreForm and your Form 1/1+
[PrintSettings]
OuterBoundaryOffset = 0.03 Distance from the model boundary - theoretically is laser's radius
InnerBoundaryOffset = 0.12 Distance between any inner boundary offset
ScanlineBoundaryOffset = 0.03 Distance from the innermost boundary offset - defines raster
outlines
ScanlineSpacing = 0.09
SliceHeight = 0.025
OffsetsNum = 3 The number of outlines
Xcorrectionfactor = 1.008 x shrinkage-correction scale
Ycorrectionfactor = 1.008 y shrinkage-correction scale
[perimeter]
modellaserpowermw = 20.7
modelxyfeedrate = 800 ; mm/s
supportlaserpowermw = 24.84
supportxyfeedrate = 800
baselaserpowermw = 24.84
basexyfeedrate = 800
[fill]
modellaserpowermw = 20.7
...
OpenFL: Hacking FL with the Form 1+ API
OpenFL.PrinterOpenFL.FLP
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
[<TimeRemaining(1891 s) at 0x10b668470>,
<XYMoveClockRate(60000 Hz) at 0x10b668890>,
<ZCurrent(80) at 0x10b6688f0>,
<TiltCurrent(80) at 0x10b668950>,
<TiltFeedRate(472 usteps/s) at
0x10b6689b0>,
<TiltMove(2362 usteps) at 0x10b668a10>,
<ZFeedRate(132 usteps/s) at 0x10b668a70>,
<ZMove(-665 usteps) at 0x10b668ad0>,
<ZFeedRate(4000 usteps/s) at 0x10b668b30>,
<WaitForMovesToComplete() at 0x10b668b90>,
...
<LaserPowerLevel(39099) at 0x106e97b90>,
<XYMove(3 points) at 0x10b667c18>,
<LaserPowerLevel(0) at 0x106e97bf0>,
<XYMove(1 points) at 0x10b667c80>,
<LaserPowerLevel(39099) at 0x106e97c50>,
<XYMove(2 points) at 0x10b667ce8>,
<LaserPowerLevel(0) at 0x106e97cb0>,
...]
>>> print laserSequence
[<LaserPowerLevel(39099) at 0x106e97c50>,
<XYMove(3 points) at 0x10b667c18>,
<LaserPowerLevel(0) at 0x106e97bf0>]
>>> print laserSequence[1].points
((38352, 32099, 69),
(38322, 32069, 3),
(38262, 32166, 8))
[ZCurrent(moving=True),
TiltCurrent(moving=True),
TiltFeedRate(usteps_per_s=472),
ZFeedRate(usteps_per_s=132),
TiltMove(usteps=2362),
ZMove(usteps=-665),
WaitForMovesToComplete(),
TiltCurrent(moving=False),
ZCurrent(moving=False)]
from OpenFL import FLP
from OpenFL import Printer
from examples.insert_material_swaps import insert_pause_before
p = Printer.Printer() # Connect to the printer
layer_i = 8
flp = p.read_block_flp(layer_i)
flp = insert_pause_before(flp, zJog_mm=150.0 - 0.2*i)
# Overexpose the next layer w/ 6 more copies of the laser moves:
flp += [laser for laser in flp
if isinstance(laser, FLP.LaserCommand)] * 6
p.write_block_flp(layer_i, x) # Send it back to the printer
p.start_printing(0, 16) # Print!
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API
OpenFL: Hacking FL with the Form 1+ API

More Related Content

PPTX
Thin Walled Composite Filled Beam
PDF
P13 040
DOCX
Talha 11009 call_quiz_addressing_modes
PDF
Design and Drawing of Reinforced concrete structures
PDF
[shaderx5] 3.2 Selective Supersampling
PDF
Javascript Array map method
DOCX
PPTX
Tacheometry
Thin Walled Composite Filled Beam
P13 040
Talha 11009 call_quiz_addressing_modes
Design and Drawing of Reinforced concrete structures
[shaderx5] 3.2 Selective Supersampling
Javascript Array map method
Tacheometry

Recently uploaded (20)

PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPT
Project quality management in manufacturing
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
Current and future trends in Computer Vision.pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
Safety Seminar civil to be ensured for safe working.
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
composite construction of structures.pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPT
Mechanical Engineering MATERIALS Selection
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
bas. eng. economics group 4 presentation 1.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Foundation to blockchain - A guide to Blockchain Tech
Project quality management in manufacturing
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Model Code of Practice - Construction Work - 21102022 .pdf
R24 SURVEYING LAB MANUAL for civil enggi
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Current and future trends in Computer Vision.pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Safety Seminar civil to be ensured for safe working.
CH1 Production IntroductoryConcepts.pptx
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
composite construction of structures.pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Mechanical Engineering MATERIALS Selection
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx

OpenFL: Hacking FL with the Form 1+ API

  • 12. Use customized material files with PreForm and your Form 1/1+ [PrintSettings] OuterBoundaryOffset = 0.03 Distance from the model boundary - theoretically is laser's radius InnerBoundaryOffset = 0.12 Distance between any inner boundary offset ScanlineBoundaryOffset = 0.03 Distance from the innermost boundary offset - defines raster outlines ScanlineSpacing = 0.09 SliceHeight = 0.025 OffsetsNum = 3 The number of outlines Xcorrectionfactor = 1.008 x shrinkage-correction scale Ycorrectionfactor = 1.008 y shrinkage-correction scale [perimeter] modellaserpowermw = 20.7 modelxyfeedrate = 800 ; mm/s supportlaserpowermw = 24.84 supportxyfeedrate = 800 baselaserpowermw = 24.84 basexyfeedrate = 800 [fill] modellaserpowermw = 20.7 ...
  • 17. [<TimeRemaining(1891 s) at 0x10b668470>, <XYMoveClockRate(60000 Hz) at 0x10b668890>, <ZCurrent(80) at 0x10b6688f0>, <TiltCurrent(80) at 0x10b668950>, <TiltFeedRate(472 usteps/s) at 0x10b6689b0>, <TiltMove(2362 usteps) at 0x10b668a10>, <ZFeedRate(132 usteps/s) at 0x10b668a70>, <ZMove(-665 usteps) at 0x10b668ad0>, <ZFeedRate(4000 usteps/s) at 0x10b668b30>, <WaitForMovesToComplete() at 0x10b668b90>, ... <LaserPowerLevel(39099) at 0x106e97b90>, <XYMove(3 points) at 0x10b667c18>, <LaserPowerLevel(0) at 0x106e97bf0>, <XYMove(1 points) at 0x10b667c80>, <LaserPowerLevel(39099) at 0x106e97c50>, <XYMove(2 points) at 0x10b667ce8>, <LaserPowerLevel(0) at 0x106e97cb0>, ...]
  • 18. >>> print laserSequence [<LaserPowerLevel(39099) at 0x106e97c50>, <XYMove(3 points) at 0x10b667c18>, <LaserPowerLevel(0) at 0x106e97bf0>] >>> print laserSequence[1].points ((38352, 32099, 69), (38322, 32069, 3), (38262, 32166, 8))
  • 20. from OpenFL import FLP from OpenFL import Printer from examples.insert_material_swaps import insert_pause_before p = Printer.Printer() # Connect to the printer layer_i = 8 flp = p.read_block_flp(layer_i) flp = insert_pause_before(flp, zJog_mm=150.0 - 0.2*i) # Overexpose the next layer w/ 6 more copies of the laser moves: flp += [laser for laser in flp if isinstance(laser, FLP.LaserCommand)] * 6 p.write_block_flp(layer_i, x) # Send it back to the printer p.start_printing(0, 16) # Print!