How to embed an .h3d (Hyperworks output file) file?
avipek10 opened this issue · comments
I am trying to use the pptx python package to programmatically embed an existing h3d file (Hyperworks output file) into a power point presentation.
I know it can be done manually by drag and drop the file into the power point but I would like to do it programmatically.
Hi @avipek10!
To embed files into PowerPoint presentation, you can use the following function:
https://python-pptx.readthedocs.io/en/stable/api/shapes.html#pptx.shapes.shapetree.SlideShapes.add_ole_object
Here is a basic example to do so:
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
slide_layout = prs.slide_layouts[5] # Title and Content layout
slide = prs.slides.add_slide(slide_layout)
slide.shapes.title.text = "Adding h3d file"
path_to_h3d = "test.h3d"
slide.shapes.add_ole_object(
object_file=path_to_h3d, prog_id="Package", left=Inches(2), top=Inches(2)
)
prs.save("add_h3d.pptx")
Further improvement possibilities:
- When .h3d is inserted by drag-and-drop, the
prog_id
is set toPackage
as the application is unknown, but if you know theprog_id
for HyperWorks, you can replace that. - You can add
icon_file
as well for better aesthetics.