Sap2000——Edit Area

该部分介绍的方法是面相关的操作函数,对应软件中的位置如下图所示:
在这里插入图片描述

Divide(面分割)

语法参数

SapObject.SapModel.EditArea.Divide(ByVal Name As String, 
				   ByVal MeshType As Long, 
				   ByRef NumberAreas As Long, 
				   ByRef AreaName() As String, 
				   Optional ByVal n1 As Long = 2, 
				   Optional ByVal n2 As Long = 2, 
				   Optional ByVal MaxSize1 As Double = 0, 
				   Optional ByVal MaxSize2 As Double = 0, 
				   Optional ByVal PointOnEdgeFromGrid As Boolean = False, 
				   Optional ByVal PointOnEdgeFromLine As Boolean = False, 
				   Optional ByVal PointOnEdgeFromPoint As Boolean = False, 
				   Optional ByVal ExtendCookieCutLines As Boolean = False, 
				   Optional ByVal Rotation As Double = 0, 
				   Optional ByVal MaxSizeGeneral As Double = 0, 
				   Optional ByVal LocalAxesOnEdge As Boolean = False, 
				   Optional ByVal LocalAxesOnFace As Boolean = False, 
				   Optional ByVal RestraintsOnEdge As Boolean = False, 
				   Optional ByVal RestraintsOnFace As Boolean = False) 

Parameters:
    Name:现有区域对象的名称;
    MeshType:参数值可以是123456,分别代表
    	     1 = 根据指定数量进行的网格划分
	     2 = 根据指定的最大尺寸进行网格划分
	     3 = 根据区域边缘上的点划分网格区域
	     4 = 基于线与线的相交边缘切割网格区域
	     5 = 基于点切割网格区域
	     6 = 使用通用划分工具划分网格区域
    NumberAreas:在划分指定的区域对象时创建的区域对象的数量
    AreaName:这是在划分指定的area对象时创建的每个area对象的名称数组
    n1、n2:对应边的划分数量;
    MaxSize1、MaxSize2::对应边的划分最大尺寸;
    PointOnEdgeFromGrid:如果为真,则区域对象边缘上的点由可见网格线与区域对象边缘的交点确定
    PointOnEdgeFromLine:如果为真,则由所选直线物体与区域物体边缘的交点来确定区域物体边缘上的点
    PointOnEdgeFromPoint:如果为真,则区域对象边缘上的点由区域对象边缘上的选定点对象确定
    ExtendCookieCutLines:
    Rotation:
    MaxSizeGeneral:
    LocalAxesOnEdge:如果该项为真,且原区域对象沿某边的两个点具有相同的局部轴,则程序将沿该边添加点的局部轴设置为与边缘端点相同
    LocalAxesOnFace:如果这个项目是真的,如果这两点优势的原始区域对象有相同的限制/约束,然后,如果添加点和相邻的角点有相同的地方轴定义,程序包括限制/约束添加点沿边缘
    RestraintsOnEdge:如果这个项目是真的,如果这两点优势的原始区域对象有相同的限制/约束,然后,如果添加点和相邻的角点有相同的地方轴定义,程序包括限制/约束添加点沿边缘
    RestraintsOnFace:如果该项为真,且原面积对象周边的所有点都具有相同的约束条件,那么,如果一个附加点和周边点具有相同的局部轴定义,则程序将包含附加点的约束条件

在这里插入图片描述

代码示例

# create model from template
ret = SapModel.File.NewWall(2, 48, 2, 48)

# 'divide area object
NumberAreas = 2
AreaName = ""
ret = SapModel.EditArea.Divide("1", 1, NumberAreas, AreaName)

在这里插入图片描述

ExpandShrink(扩展/收缩面)

语法参数

SapObject.SapModel.EditArea.ExpandShrink(ByVal OffsetType As Long, 
					 ByVal Offset As Double)

Paremeters:
    OffsetType:012三个枚举值可选
    	       0 = Offset all area edges
	       1 = Offset selected area edges only
	       2 = Offset selected points of selected areas only
    Offset:偏移距离;
    

代码示例

# expand area object
ret = SapModel.SelectObj.ClearSelection
ret = SapModel.AreaObj.SetSelectedEdge("4", 2, True)
ret = SapModel.EditArea.ExpandShrink(1, 48)

# refresh view, updating zoom
ret = SapModel.View.RefreshView(0, False)

在这里插入图片描述

Merge(面合并)

语法参数

SapObject.SapModel.EditArea.Merge(ByRef NumberAreas As Long, 
				  ByRef AreaName() As String)

代码示例

# merge area objects
ret = SapModel.SelectObj.ClearSelection
ret = SapModel.AreaObj.SetSelected("1", True)
ret = SapModel.AreaObj.SetSelected("2", True)
ret = SapModel.AreaObj.SetSelected("4", True)


NumberAreas = 2
AreaName = ""
ret = SapModel.EditArea.Merge(NumberAreas, AreaName)

ret = SapModel.View.RefreshWindow

在这里插入图片描述

PointAdd(添加边中点)

语法参数

SapObject.SapModel.EditArea.PointAdd()

Parameters:
    None

代码示例

# merge area objects
ret = SapModel.SelectObj.ClearSelection
ret = SapModel.AreaObj.SetSelected("1", True)
ret = SapModel.AreaObj.SetSelected("2", True)
ret = SapModel.AreaObj.SetSelected("4", True)

# add point to area object
ret = SapModel.SelectObj.ClearSelection
ret = SapModel.AreaObj.SetSelectedEdge("4", 2, True)
ret = SapModel.EditArea.PointAdd()

ret = SapModel.View.RefreshWindow

在这里插入图片描述

PointRemove(移除边中点)

语法参数

SapObject.SapModel.EditArea.PointRemove()

Parameters:
    None
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章