Skip to content

Commit

Permalink
update to new session and settings
Browse files Browse the repository at this point in the history
  • Loading branch information
tomvanmele committed Oct 30, 2024
1 parent 129f3e6 commit 9961c8a
Show file tree
Hide file tree
Showing 20 changed files with 248 additions and 378 deletions.
36 changes: 15 additions & 21 deletions plugin/RV_force.py
Original file line number Diff line number Diff line change
@@ -1,50 +1,44 @@
#! python3
# venv: rhinovault
# r: compas>=2.4, compas_rui, compas_session, compas_tna>=0.5
# r: compas, compas_rui, compas_rv, compas_session, compas_tna


import rhinoscriptsyntax as rs # type: ignore

import compas_rv.settings
from compas.geometry import Box
from compas.geometry import bounding_box
from compas.scene import Scene
from compas_rv.datastructures import ForceDiagram
from compas_rv.datastructures import FormDiagram
from compas_rv.scene import RhinoForceObject
from compas_rv.scene import RhinoFormObject
from compas_session.namedsession import NamedSession
from compas_rv.session import RVSession


def RunCommand(is_interactive):
def RunCommand():
session = RVSession()

session = NamedSession(name="RhinoVAULT")
scene: Scene = session.scene()

formobj: RhinoFormObject = scene.find_by_itemtype(itemtype=FormDiagram)
formobj: RhinoFormObject = session.scene.find_by_itemtype(FormDiagram)
if not formobj:
return

forceobj: RhinoForceObject = scene.find_by_itemtype(itemtype=ForceDiagram)
forceobj: RhinoForceObject = session.scene.find_by_itemtype(ForceDiagram)
if forceobj:
scene.remove(forceobj)
session.scene.remove(forceobj)

rs.UnselectAllObjects()
rs.EnableRedraw(False)
scene.redraw()
session.scene.redraw()
rs.EnableRedraw(True)
rs.Redraw()

# =============================================================================
# Init the force diagram
# =============================================================================

form: FormDiagram = formobj.mesh

force: ForceDiagram = ForceDiagram.from_formdiagram(form)
force.default_edge_attributes.update({"lmin": 0.1})
force: ForceDiagram = ForceDiagram.from_formdiagram(formobj.mesh)
force.update_default_edge_attributes(lmin=0.1)

bbox_form = Box.from_bounding_box(bounding_box(form.vertices_attributes("xyz")))
bbox_form = Box.from_bounding_box(bounding_box(formobj.mesh.vertices_attributes("xyz")))
bbox_force = Box.from_bounding_box(bounding_box(force.vertices_attributes("xyz")))

y_form = bbox_form.ymin + 0.5 * (bbox_form.ymax - bbox_form.ymin)
Expand All @@ -59,19 +53,19 @@ def RunCommand(is_interactive):
# Update scene
# =============================================================================

scene.add(force, name=force.name)
session.scene.add(force, name=force.name)

rs.UnselectAllObjects()
rs.EnableRedraw(False)
scene.redraw()
session.scene.redraw()
rs.EnableRedraw(True)
rs.Redraw()

# =============================================================================
# Save session
# =============================================================================

if compas_rv.settings.SETTINGS["Session"]["autosave.events"]:
if session.settings.autosave:
session.record(name="Init Force Diagram")


Expand All @@ -80,4 +74,4 @@ def RunCommand(is_interactive):
# =============================================================================

if __name__ == "__main__":
RunCommand(True)
RunCommand()
19 changes: 7 additions & 12 deletions plugin/RV_force_modify.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
#! python3
# venv: rhinovault
# r: compas>=2.4, compas_rui, compas_session, compas_tna>=0.5
# r: compas, compas_rui, compas_rv, compas_session, compas_tna


import rhinoscriptsyntax as rs # type: ignore

import compas_rv.settings
from compas_rv.datastructures import ForceDiagram
from compas_rv.scene import RhinoForceObject
from compas_session.namedsession import NamedSession
from compas_rv.session import RVSession


def RunCommand(is_interactive):
def RunCommand():
session = RVSession()

session = NamedSession(name="RhinoVAULT")
scene = session.scene()

force: RhinoForceObject = scene.find_by_itemtype(itemtype=ForceDiagram)
force: RhinoForceObject = session.scene.find_by_itemtype(ForceDiagram)
if not force:
return

Expand All @@ -32,7 +29,6 @@ def RunCommand(is_interactive):
return

if option == "VertexAttributes":

force.show_free = True
force.show_fixed = True
force.show_supports = True
Expand All @@ -47,7 +43,6 @@ def RunCommand(is_interactive):
force.update_vertex_attributes(vertices)

elif option == "EdgeAttributes":

force.show_edges = True

rs.EnableRedraw(False)
Expand Down Expand Up @@ -83,7 +78,7 @@ def RunCommand(is_interactive):
# Save session
# =============================================================================

if compas_rv.settings.SETTINGS["Session"]["autosave.events"]:
if session.settings.autosave:
session.record(name="Modify Force Diagram")


Expand All @@ -92,4 +87,4 @@ def RunCommand(is_interactive):
# =============================================================================

if __name__ == "__main__":
RunCommand(True)
RunCommand()
24 changes: 10 additions & 14 deletions plugin/RV_form.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,24 @@
#! python3
# venv: rhinovault
# r: compas>=2.4, compas_rui, compas_session, compas_tna>=0.5
# r: compas, compas_rui, compas_rv, compas_session, compas_tna


import rhinoscriptsyntax as rs # type: ignore

import compas_rv.settings
from compas.geometry import Box
from compas.geometry import bounding_box
from compas.geometry import scale_vector
from compas.geometry import sum_vectors
from compas.scene import Scene
from compas_rv.datastructures import FormDiagram
from compas_rv.datastructures import Pattern
from compas_rv.scene import RhinoPatternObject
from compas_session.namedsession import NamedSession
from compas_rv.session import RVSession


def RunCommand(is_interactive):
def RunCommand():
session = RVSession()

session = NamedSession(name="RhinoVAULT")
scene: Scene = session.scene()

pattern: RhinoPatternObject = scene.find_by_itemtype(itemtype=Pattern)
pattern: RhinoPatternObject = session.scene.find_by_itemtype(Pattern)
if not pattern:
return

Expand Down Expand Up @@ -64,27 +60,27 @@ def RunCommand(is_interactive):
diagonal = bbox.points[2] - bbox.points[0]
zmax = 0.25 * diagonal.length

compas_rv.settings.SETTINGS["TNA"]["vertical.zmax"] = zmax
session.settings.tna.vertical.zmax = zmax

# =============================================================================
# Update scene
# =============================================================================

pattern.show = False

scene.add(form, name=form.name)
session.scene.add(form, name=form.name)

rs.UnselectAllObjects()
rs.EnableRedraw(False)
scene.redraw()
session.scene.redraw()
rs.EnableRedraw(True)
rs.Redraw()

# =============================================================================
# Save session
# =============================================================================

if compas_rv.settings.SETTINGS["Session"]["autosave.events"]:
if session.settings.autosave:
session.record(name="Init Form Diagram")


Expand All @@ -93,4 +89,4 @@ def RunCommand(is_interactive):
# =============================================================================

if __name__ == "__main__":
RunCommand(True)
RunCommand()
19 changes: 7 additions & 12 deletions plugin/RV_form_modify.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
#! python3
# venv: rhinovault
# r: compas>=2.4, compas_rui, compas_session, compas_tna>=0.5
# r: compas, compas_rui, compas_rv, compas_session, compas_tna


import rhinoscriptsyntax as rs # type: ignore

import compas_rv.settings
from compas_rv.datastructures import FormDiagram
from compas_rv.scene import RhinoFormObject
from compas_session.namedsession import NamedSession
from compas_rv.session import RVSession


def RunCommand(is_interactive):
def RunCommand():
session = RVSession()

session = NamedSession(name="RhinoVAULT")
scene = session.scene()

form: RhinoFormObject = scene.find_by_itemtype(itemtype=FormDiagram)
form: RhinoFormObject = session.scene.find_by_itemtype(FormDiagram)
if not form:
return

Expand All @@ -32,7 +29,6 @@ def RunCommand(is_interactive):
return

if option == "VertexAttributes":

form.show_vertices = True
form.show_free = True
form.show_fixed = True
Expand All @@ -56,7 +52,6 @@ def RunCommand(is_interactive):
form.update_vertex_attributes(vertices)

elif option == "EdgeAttributes":

form.show_edges = True

rs.EnableRedraw(False)
Expand Down Expand Up @@ -93,7 +88,7 @@ def RunCommand(is_interactive):
# Save session
# =============================================================================

if compas_rv.settings.SETTINGS["Session"]["autosave.events"]:
if session.settings.autosave:
session.record(name="Modify Form Diagram")


Expand All @@ -102,4 +97,4 @@ def RunCommand(is_interactive):
# =============================================================================

if __name__ == "__main__":
RunCommand(True)
RunCommand()
31 changes: 11 additions & 20 deletions plugin/RV_pattern.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
#! python3
# venv: rhinovault
# r: compas>=2.4, compas_rui, compas_session, compas_tna>=0.5
# r: compas, compas_rui, compas_rv, compas_session, compas_tna


import rhinoscriptsyntax as rs # type: ignore

import compas_rhino
import compas_rhino.conversions
import compas_rhino.objects
import compas_rv.settings
from compas_rv.datastructures import Pattern
from compas_session.namedsession import NamedSession
from compas_rv.session import RVSession


def RunCommand(is_interactive):
def RunCommand():
session = RVSession()

session = NamedSession(name="RhinoVAULT")

scene = session.scene()

patternobj = scene.find_by_itemtype(itemtype=Pattern)
patternobj = session.scene.find_by_itemtype(Pattern)

if patternobj:
result = rs.MessageBox(
Expand All @@ -28,12 +24,12 @@ def RunCommand(is_interactive):
title="RhinoVAULT",
)
if result == 6:
scene.clear()
session.scene.clear()
else:
return

else:
scene.clear()
session.scene.clear()

# =============================================================================
# Make a Force "Pattern"
Expand All @@ -42,7 +38,6 @@ def RunCommand(is_interactive):
option = rs.GetString(message="CableMesh From", strings=["RhinoLines", "RhinoMesh", "RhinoSurface", "MeshGrid", "Triangulation"])

if option == "RhinoLines":

guids = compas_rhino.objects.select_lines("Select lines")
if not guids:
return
Expand All @@ -56,7 +51,6 @@ def RunCommand(is_interactive):
rs.HideObjects(guids)

elif option == "RhinoMesh":

guid = compas_rhino.objects.select_mesh("Select a mesh")
if not guid:
return
Expand All @@ -67,7 +61,6 @@ def RunCommand(is_interactive):
rs.HideObject(guid)

elif option == "RhinoSurface":

guid = compas_rhino.objects.select_surface("Select a surface")
if not guid:
return
Expand All @@ -93,7 +86,6 @@ def RunCommand(is_interactive):
rs.HideObject(guid)

elif option == "MeshGrid":

DX = rs.GetInteger(message="X Size", number=10)
if not DX:
return
Expand All @@ -113,7 +105,6 @@ def RunCommand(is_interactive):
pattern = Pattern.from_meshgrid(dx=DX, nx=NX, dy=DY, ny=NY)

elif option == "Triangulation":

raise NotImplementedError

else:
Expand All @@ -123,14 +114,14 @@ def RunCommand(is_interactive):
# Update scene
# =============================================================================

scene.add(pattern, name=pattern.name)
scene.draw()
session.scene.add(pattern, name=pattern.name)
session.scene.draw()

# =============================================================================
# Save session
# =============================================================================

if compas_rv.settings.SETTINGS["Session"]["autosave.events"]:
if session.settings.autosave:
session.record(name="Make Pattern")


Expand All @@ -139,4 +130,4 @@ def RunCommand(is_interactive):
# =============================================================================

if __name__ == "__main__":
RunCommand(True)
RunCommand()
Loading

0 comments on commit 9961c8a

Please sign in to comment.