Appearance
几何查询函数
NOTE
原文来源:Sentaurus Structure Editor User Guide, Version W-2024.09, Synopsys, Inc. PDF 源页码:第 10 章,对应 PDF 第 325–338 页
实体 ID 和属性
每个几何实体都有唯一 ID,你可以查询:
scheme
; 检查是否是实体
(entity? obj)
; 获取实体类型
(get-type entity)返回类型可能是:body, face, edge, vertex, region, contact。
拓扑实体类型
| 类型 | 说明 |
|---|---|
body | 三维固体实体 |
face | 二维面 |
edge | 一维边 |
vertex | 零维顶点 |
region | 材料区域,可以包含多个 body |
contact | 接触,绑定到边/面 |
选择几何对象
GUI 支持选择
交互式选择:
scheme
(define entity (get-selected-entity))执行后提示你在 GUI 中点击选择一个实体。
基于脚本选择
按名称选择区域:
scheme
(define region (find-region "region-name"))查找区域名称和材料属性
scheme
; 获取区域名称
(get-region-name region)
; 获取区域材料名称
(get-region-material region)自动区域命名
开启自动命名后,新建区域会自动根据材料命名:
scheme
; 开启自动命名
(auto-region-naming #t)
; 关闭自动命名
(auto-region-naming #f)已支持材料列表
列出当前所有定义的材料:
scheme
(list-materials)查找相交面
查找两个实体相交得到的所有面:
scheme
(define faces (find-intersecting-faces entity1 entity2))查找顶点坐标
scheme
(define pos (get-vertex-position vertex))
; pos = (x y z)顶点之间距离
scheme
(define dist (vertex-vertex-distance v1 v2))调试拓扑实体
打印实体调试信息:
scheme
(debug-entity entity)输出包括:
- 实体 ID
- 类型
- 包含子元素
- 相关属性
查找边、面、体的元素
scheme
; 获取 body 所有 face
(body-faces body)
; 获取 face 所有 edge
(face-edges face)
; 获取 face 所有 vertex
(face-vertices face)
; 获取 region 所有 body
(region-bodies region)包围盒查询
scheme
(define box (get-bounding-box entity))
; box = (xmin ymin zmin xmax ymax zmax)Scheme 函数实体查询
所有查询返回 Scheme 列表,可以用 for-each 遍历处理:
scheme
; 例子:打印一个 body 所有面
(for-each
(lambda (face)
(display "Found face: ")
(display (get-type face))
(newline)
)
(body-faces mybody)
)总结
几何查询函数允许你:
- 脚本遍历结构
- 自动检查拓扑正确性
- 批量修改属性
- 复杂参数化建模
配合 Scheme 循环和条件,可以实现非常灵活的自动建模流程。