欢迎大家同时关注我在仿真秀中的账号——“ANSA攻城狮 ”,会有更多干货文章以及课程。
在进行ANSA二次开发中,为了让用户更加直观地看到某些单元或者实体,常常需要进行高亮显示或者隐藏等操作。
下面就介绍下ANSA二次开发 中最常用的几个能帮助你大大增加工作效率的显示操作
在ANSA中我们可以通过选择下面这个按钮,对特定的单元或实体进行高亮显示,那么使用python完成上述操作呢。
通过之前介绍Entity的文章,我们知道ANSA中基本你能看到的物体都可以称作是Entity
同样,高亮显示也是一个Entity,可以把这个Entity看作是一个容器,里面是不同的Entity的高亮显示
所以首先第一步,需要使用CreateEntity()创建HIGHTLIGHT_CONTAINER用来装不同的高亮显示
import ansa
from ansa.base import *
from ansa import constants
deck = constants.OPTISTRUCT
def Hightlight(ent,color="RED",deck = constants.OPTISTRUCT):
highlight = CreateEntity(deck,"HIGHLIGHT_CONTAINER")
AddToHighlight(highlight, ent, color)
再有了这个容器后,我们将所要高亮显示的Entity用AddToHighlight()这个函数进行高亮显示,高亮现实的颜色可以选择:
BLACK, RED, GREEN, BLUE, CYAN, YELLOW, BROWN,LIGHT_BROWN, GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN, LIGHT_RED, LIGHT_MAGENTA,MAGENTA, WHITE
import ansa
from ansa.base import *
from ansa import constants
deck = constants.OPTISTRUCT
def Hightlight(ent,color="RED",deck = constants.OPTISTRUCT):
highlight = CreateEntity(deck,"HIGHLIGHT_CONTAINER")
AddToHighlight(highlight, ent, color)
shells = CollectEntities(deck, None, "SHELL")[0:500]
RemoveHighLight(shells)
效果如下图
这里高亮会一直存在,如果想要取消高亮,则需要借助RemoveFromHighLight()这个函数。我们通过CollectEntities()将所有的HIGHTLIGHT_CONTAINER中高亮的该Entities取消高亮。
import ansa
from ansa.base import *
from ansa import constants
deck = constants.OPTISTRUCT
def Hightlight(ent,color="RED",deck = constants.OPTISTRUCT):
highlight = CreateEntity(deck,"HIGHLIGHT_CONTAINER")
AddToHighlight(highlight, ent, color)
def RemoveHighLight(ent,deck = constants.OPTISTRUCT):
container = CollectEntities(deck,None,"HIGHLIGHT_CONTAINER")
for i in container:
RemoveFromHighlight(i,ent)
shells = CollectEntities(deck, None, "SHELL")[0:5000]
RemoveHighLight(shells)
除了上述操作还可以通过GetHighlightColor(container,ent)来查看在该容器内ent的高亮颜色
通过GetHighlightContainerContents(container)将HIGHTLIGHT_CONTAINER中所有的Entity组成的列表
在进行建模 时,有时由于部件过多,为了提高操作效率,通常会针对某一个部件进行单独显示,或者隐藏某一些部件
这里提供给大家几个非常好用的隐藏、单独显示Entity的二次开发命令
这个函数和Or()不同的是,Or()是只显示选择的Entities,而And()是把选择的Entities添加到屏幕显示