Skip to content

几何查询函数

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 循环和条件,可以实现非常灵活的自动建模流程。

基于 Sentaurus TCAD 官方文档构建

代码块