mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-21 14:23:53 +00:00
Support converting drawings to PDF on the fly
This commit is contained in:
@@ -2227,9 +2227,22 @@ class CreateSheets(bpy.types.Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
props = bpy.context.scene.DocProperties
|
props = bpy.context.scene.DocProperties
|
||||||
|
name = props.sheets[props.active_sheet_index].name
|
||||||
sheet_builder = sheeter.SheetBuilder()
|
sheet_builder = sheeter.SheetBuilder()
|
||||||
sheet_builder.data_dir = bpy.context.scene.BIMProperties.data_dir
|
sheet_builder.data_dir = bpy.context.scene.BIMProperties.data_dir
|
||||||
sheet_builder.build(props.sheets[props.active_sheet_index].name)
|
sheet_builder.build(name)
|
||||||
|
svg2pdf_command = bpy.context.preferences.addons['blenderbim'].preferences.svg2pdf_command
|
||||||
|
if not svg2pdf_command:
|
||||||
|
webbrowser.open('file://' + os.path.join(bpy.context.scene.BIMProperties.data_dir, 'build', name, name + '.svg'))
|
||||||
|
return {'FINISHED'}
|
||||||
|
import subprocess
|
||||||
|
path = os.path.join(bpy.context.scene.BIMProperties.data_dir, 'build', name)
|
||||||
|
svg = os.path.join(path, name + '.svg')
|
||||||
|
pdf = os.path.join(path, name + '.pdf')
|
||||||
|
# With great power comes great responsibility. Example:
|
||||||
|
# ['inkscape', svg, '-o', pdf]
|
||||||
|
subprocess.run(eval(svg2pdf_command))
|
||||||
|
webbrowser.open('file://' + os.path.join(pdf))
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import bpy
|
import bpy
|
||||||
from bpy.types import Panel
|
from bpy.types import Panel
|
||||||
|
from bpy.props import StringProperty
|
||||||
|
|
||||||
|
|
||||||
class BIM_PT_object(Panel):
|
class BIM_PT_object(Panel):
|
||||||
bl_label = 'IFC Object'
|
bl_label = 'IFC Object'
|
||||||
@@ -1777,6 +1779,7 @@ class BIM_UL_representation_items(bpy.types.UIList):
|
|||||||
|
|
||||||
class BIM_ADDON_preferences(bpy.types.AddonPreferences):
|
class BIM_ADDON_preferences(bpy.types.AddonPreferences):
|
||||||
bl_idname = 'blenderbim'
|
bl_idname = 'blenderbim'
|
||||||
|
svg2pdf_command: StringProperty(name="SVG to PDF Command")
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
layout = self.layout
|
||||||
@@ -1786,6 +1789,8 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.operator('bim.open_upstream', text='Visit Wiki').page = 'wiki'
|
row.operator('bim.open_upstream', text='Visit Wiki').page = 'wiki'
|
||||||
row.operator('bim.open_upstream', text='Visit Community').page = 'community'
|
row.operator('bim.open_upstream', text='Visit Community').page = 'community'
|
||||||
|
row = layout.row()
|
||||||
|
row.prop(self, 'svg2pdf_command')
|
||||||
|
|
||||||
|
|
||||||
class BIM_PT_ifcclash(Panel):
|
class BIM_PT_ifcclash(Panel):
|
||||||
|
|||||||
Reference in New Issue
Block a user