Sen Structure Editor Ug Modified
Sen Structure Editor Ug Modified
User Guide
Version D-2010.03, March 2010
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Registered Trademarks ()
Synopsys, AMPS, Astro, Behavior Extracting Synthesis Technology, Cadabra, CATS, Certify, CHIPit, Design Compiler,
DesignWare, Formality, HDL Analyst, HSIM, HSPICE, Identify, Leda, MAST, ModelTools, NanoSim, OpenVera, PathMill,
Physical Compiler, PrimeTime, SCOPE, Simply Better Results, SiVL, SNUG, SolvNet, Syndicated, Synplicity, the
Synplicity logo, Synplify, Synplify Pro, Synthesis Constraints Optimization Environment, TetraMAX, UMRBus, VCS, Vera,
and YIELDirector are registered trademarks of Synopsys, Inc.
Trademarks ()
AFGen, Apollo, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, BEST, Columbia, Columbia-CE, Confirma, Cosmos,
CosmosLE, CosmosScope, CRITIC, CustomExplorer, CustomSim, DC Expert, DC Professional, DC Ultra, Design
Analyzer, Design Vision, DesignerHDL, DesignPower, DFTMAX, Direct Silicon Access, Discovery, Eclypse, Encore,
EPIC, Galaxy, Galaxy Custom Designer, HANEX, HAPS, HapsTrak, HDL Compiler, Hercules, Hierarchical Optimization
Technology, High-performance ASIC Prototyping System, HSIMplus, i-Virtual Stepper, IICE, in-Sync, iN-Tandem, Jupiter,
Jupiter-DP, JupiterXT, JupiterXT-ASIC, Liberty, Libra-Passport, Library Compiler, Magellan, Mars, Mars-Rail, Mars-Xtalk,
Milkyway, ModelSource, Module Compiler, MultiPoint, Physical Analyst, Planet, Planet-PL, Polaris, Power Compiler,
Raphael, Saturn, Scirocco, Scirocco-i, Star-RCXT, Star-SimXT, StarRC, System Compiler, System Designer, Taurus,
TotalRecall, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim, and VMC are trademarks of Synopsys, Inc.
ii
Contents
About This Guide
xxv
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Typographic Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Accessing SolvNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Contacting the Synopsys Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Contacting Your Local TCAD Support Team Directly. . . . . . . . . . . . . . . . . . . . . . xxvii
Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Chapter 1 Overview
13
iii
Contents
29
iv
Contents
49
Contents
Editing 3D Shapes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Chamfering Edges in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Rounding Edges in 3D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Tapering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Creating 3D Objects from 1D and 2D Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Extruding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Sweeping a 2D Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Sweep Distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Sweep Along a Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Sweep Around an Axis (Regular and Corner Sweeps). . . . . . . . . . . . . . . . . . . . . . 93
Sweep Along a Wire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Sweep Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Sweeping Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Default Skinning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Skinning with Normals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Skinning with Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Skinning with Guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Skinning Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Editing 2D and 3D Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Explicit Boolean Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Changing the Material of a Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Changing the Name of a Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Deleting Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Separating Lumps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Two-dimensional Cuts from a 3D Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
SplitInsert Stretching of a Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Extending a 2D Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Trimming a 3D Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Coordinate Systems and Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Work Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Local Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Device Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Entity Transformations: Scaling, Translation, Rotation, and Reflection. . . . . . . . . . 123
Local Scaling of Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Difference between sdegeo:scale and sdegeo:scale-selected . . . . . . . . . . . . . . . . 125
Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Scheme Extensions for Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
vi
Contents
133
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Base Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Default Coordinate System Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Sentaurus Process Coordinate System Convention . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Selecting the Coordinate System Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Mask Layout Input and Mask Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Mask Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
TCAD Layout Reader of Sentaurus Structure Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Loading TCAD Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Finding Layer Names and Layer IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Applying a Stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Selecting the Simulation Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Finding Coordinates of Bounding Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Creating and Using Masks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Coordinate System Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Layout-driven Contact Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Layout-driven Meshing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Process Emulation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Syntax and Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Process Emulation Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
The lop-move Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
The lopx Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
The PT Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
The sweep Algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Converting Between Earlier and Current Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Restrictions on Handling Mixed Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Process Emulation Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Defining Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Generating Substrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Patterning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Patterning Keywords and Keyword Combinations . . . . . . . . . . . . . . . . . . . . . . . 160
Anisotropic Patterning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Isotropic Patterning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Photo Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Photo Keywords and Keyword Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Deposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Deposition Keywords and Keyword Combinations . . . . . . . . . . . . . . . . . . . . . . . 163
Anisotropic Deposition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
vii
Contents
193
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Defining and Activating a Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Deleting a Contact. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Assigning Edges or Faces to a Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Assigning a Region Boundary to a Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Removing Edges or Faces from a Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Creating New Edges or Faces for Use in Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Contact Assignment Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Chapter 8 Generating Mesh and Doping Profiles
205
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Defining Areas for Mesh Refinement or Doping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Line-Segment Ref/Eval Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Rectangular and Polygonal Ref/Eval Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
viii
Contents
249
ix
Contents
261
275
283
Contents
body? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
convert-to-degree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
convert-to-radian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
edge? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
edge:circular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
edge:circular? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
edge:elliptical? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
edge:end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
edge:length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
edge:linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
edge:linear? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
edge:mid-point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
edge:start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
edge:type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
entity:box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
entity:copy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
entity:debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
entity:deep-copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
entity:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
entity:display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
entity:dist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
entity:edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
entity:erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
entity:faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
entity:loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
entity:lumps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
entity:set-color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
entity:shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
entity:vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
exists-empty-mask-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
exists-mask-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
extract-refwindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
face:area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
face:conical? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
face:cylindrical? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
face:planar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
face:plane-normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
face:spherical?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
face:spline? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
face:toroidal?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
filter:type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
xi
Contents
find-body-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
find-body-id-drs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
find-drs-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
find-edge-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
find-edge-id-drs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
find-face-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
find-face-id-drs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
find-material-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
find-region-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
find-vertex-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
find-vertex-id-drs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
get-body-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
get-drs-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
get-empty-mask-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
get-mask-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
gvector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
gvector:+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
gvector:- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
gvector? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
gvector:copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
gvector:cross . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
gvector:dot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
gvector:from-to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
gvector:length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
gvector:parallel? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
gvector:perpendicular? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
gvector:reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
gvector:scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
gvector:set! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
gvector:set-x! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
gvector:set-y! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
gvector:set-z!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
gvector:transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
gvector:unitize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
gvector:x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
gvector:y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
gvector:z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
journal:abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
journal:append. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
journal:clean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
journal:load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
xii
Contents
journal:off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
journal:on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
journal:pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
journal:resume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
journal:save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
journal:step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
loop? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
loop:external? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
lump?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
mask-refevalwin-extract-2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
mask-refevalwin-extract-3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
merge-collinear-edges-2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
part:entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
part:load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
part:save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
part:save-selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
position? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
position:distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
position:set! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
position:set-x! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
position:set-y! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
position:set-z! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
position:x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
position:y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
position:z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
refinement:props . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
render:rebuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
roll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
sde:add-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
sde:attach-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
sde:bg-image-transparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
sde:build-mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
sde:check-3d-license-status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
sde:checkout-3d-license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
sde:clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
sde:create-bg-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
sde:create-dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
sde:define-parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
sde:define-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
sde:delay-graphics-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
xiii
Contents
sde:delay-graphics-update? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
sde:delete-bg-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
sde:delete-parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
sde:delete-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
sde:dialog-add-input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
sde:dialog-add-pixmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
sde:dialog-delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
sde:dialog-ok-command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
sde:dialog-show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
sde:display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
sde:exact-coords? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
sde:extract-tdr-boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
sde:fix-imprint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
sde:fix-orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
sde:get-default-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
sde:get-view-params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
sde:gui-get-integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
sde:gui-get-real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
sde:gui-get-string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
sde:hide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
sde:hide-bg-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
sde:hide-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
sde:hide-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
sde:hide-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
sde:hide-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
sde:hide-refinement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
sde:hide-region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
sde:info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
sde:load-sat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
sde:material-type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
sde:new-region-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
sde:off-lights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
sde:on-lights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
sde:open-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
sde:part-load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
sde:pick-point-on-wp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
sde:pick-two-points-on-wp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
sde:post-message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
sde:refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
sde:remove-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
sde:restore-cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
xiv
Contents
sde:round-dfise-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
sde:save-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
sde:save-parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
sde:scale-dfise-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
sde:scale-scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
sde:scmwin-get-font-families . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
sde:scmwin-get-font-family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
sde:scmwin-get-font-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
sde:scmwin-select-font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
sde:scmwin-set-font-family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
sde:scmwin-set-font-size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
sde:scmwin-set-prefs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
sde:scmwin-set-window-height . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
sde:scmwin-suppress-output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
sde:selected-entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
sde:selected-refeval-windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
sde:selected-refinements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
sde:separate-lumps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
sde:set-background-color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
sde:set-default-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
sde:set-process-up-direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
sde:set-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
sde:set-rendering-mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
sde:set-selection-level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
sde:set-translucency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
sde:set-view-mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
sde:set-view-operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
sde:set-view-params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
sde:set-window-position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
sde:set-window-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
sde:set-window-style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
sde:setrefprops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
sde:setup-grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
sde:show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
sde:showattribs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
sde:show-bg-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
sde:show-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
sde:show-grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
sde:show-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
sde:show-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
sde:show-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
xv
Contents
sde:show-pcurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
sde:show-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
sde:show-region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
sde:split-solid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
sde:stripextension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
sde:test-entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
sde:toggle-lights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
sde:view-filter-reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
sde:view-set-light-intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
sde:view-set-visible-area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
sde:wait-cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
sde:window-select-2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
sde:window-select-3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
sde:write-hsf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
sde:xshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
sde:xshow-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
sde:xshow-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
sde:xshow-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
sde:xshow-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
sde:xshow-region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
sde:zoom-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
sdeaxisaligned:set-parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
sdedelaunizer:set-parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
sdedelaunizer:set-tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
sdedr:append-cmd-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
sdedr:clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
sdedr:clear-multibox-definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
sdedr:clear-multibox-placements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
sdedr:clear-profile-definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
sdedr:clear-profile-placements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
sdedr:clear-ref-windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
sdedr:clear-refinement-definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
sdedr:clear-refinement-placements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
sdedr:convert-mask-to-drs-body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
sdedr:define-1d-external-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
sdedr:define-analytical-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
sdedr:define-analytical-profile-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
sdedr:define-analytical-profile-placement (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . 408
sdedr:define-constant-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
sdedr:define-constant-profile-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
sdedr:define-constant-profile-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
xvi
Contents
sdedr:define-constant-profile-region. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
sdedr:define-erf-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
sdedr:define-gaussian-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
sdedr:define-multibox-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
sdedr:define-multibox-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
sdedr:define-particle-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
sdedr:define-particle-profile-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
sdedr:define-refeval-window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
sdedr:define-refinement-function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
sdedr:define-refinement-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
sdedr:define-refinement-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
sdedr:define-refinement-region. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
sdedr:define-refinement-size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
sdedr:define-submesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
sdedr:define-submesh-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
sdedr:define-submesh-placement (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
sdedr:del-selected-drentity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
sdedr:delete-multibox-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
sdedr:delete-profile-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
sdedr:delete-refeval-window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
sdedr:delete-refinement-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
sdedr:delete-submesh-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
sdedr:get-definition-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
sdedr:get-placement-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
sdedr:hide-mbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
sdedr:hide-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
sdedr:hide-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
sdedr:hide-rewin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
sdedr:read-cmd-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
sdedr:redefine-refeval-window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
sdedr:set-meshing-engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
sdedr:set-title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
sdedr:show-mbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
sdedr:show-profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
sdedr:show-refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
sdedr:show-rewin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
sdedr:write-cmd-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
sdedr:write-scaled-cmd-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
sdegeo:2d-cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
sdegeo:3d-cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
sdegeo:align-horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
xvii
Contents
sdegeo:align-horizontal-aut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
sdegeo:align-to-line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
sdegeo:align-vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
sdegeo:align-vertical-aut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
sdegeo:average-edge-length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
sdegeo:body-trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
sdegeo:bool-intersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
sdegeo:bool-subtract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
sdegeo:bool-unite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
sdegeo:break-nearly-axis-aligned-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
sdegeo:chamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
sdegeo:chamfer-2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
sdegeo:chop-domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
sdegeo:contact-sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
sdegeo:create-circle, sdegeo:create-circular-sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
sdegeo:create-cone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
sdegeo:create-cuboid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
sdegeo:create-cylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
sdegeo:create-ellipse, sdegeo:create-elliptical-sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
sdegeo:create-ellipsoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
sdegeo:create-linear-edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
sdegeo:create-polygon, sdegeo:create-polygonal-sheet . . . . . . . . . . . . . . . . . . . . . . . . . 452
sdegeo:create-polyline-wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
sdegeo:create-prism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
sdegeo:create-pyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
sdegeo:create-rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
sdegeo:create-reg-polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
sdegeo:create-ruled-region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
sdegeo:create-sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
sdegeo:create-spline-wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
sdegeo:create-torus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
sdegeo:create-triangle, sdegeo:create-triangular-sheet . . . . . . . . . . . . . . . . . . . . . . . . . . 461
sdegeo:curve-intersect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
sdegeo:define-2d-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
sdegeo:define-3d-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
sdegeo:define-3d-contact-by-polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
sdegeo:define-contact-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
sdegeo:define-coord-sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
sdegeo:define-work-plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
sdegeo:del-short-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
sdegeo:delete-collinear-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
xviii
Contents
sdegeo:delete-contact-boundary-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
sdegeo:delete-contact-boundary-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
sdegeo:delete-contact-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
sdegeo:delete-contact-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
sdegeo:delete-contact-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
sdegeo:delete-coord-sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
sdegeo:delete-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
sdegeo:delete-nearly-collinear-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
sdegeo:delete-region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
sdegeo:delete-short-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
sdegeo:delete-vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
sdegeo:delete-work-plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
sdegeo:distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
sdegeo:dnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
sdegeo:extend-device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
sdegeo:extrude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
sdegeo:face-find-interior-point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
sdegeo:fillet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
sdegeo:fillet-2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
sdegeo:find-closest-edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
sdegeo:find-closest-face . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
sdegeo:find-closest-vertex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
sdegeo:find-touching-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
sdegeo:get-active-work-plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
sdegeo:get-auto-region-naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
sdegeo:get-contact-edgelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
sdegeo:get-contact-facelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
sdegeo:get-current-contact-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
sdegeo:get-default-boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
sdegeo:get-region-counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
sdegeo:imprint-circular-wire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
sdegeo:imprint-polygonal-wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
sdegeo:imprint-rectangular-wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
sdegeo:imprint-triangular-wire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
sdegeo:insert-vertex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
sdegeo:max-edge-length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
sdegeo:min-edge-length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
sdegeo:mirror-selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
sdegeo:move-2d-regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
sdegeo:move-edge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
sdegeo:move-vertex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
xix
Contents
sdegeo:point-entity-relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
sdegeo:polygonal-split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
sdegeo:prune-vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
sdegeo:ray-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
sdegeo:reflect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
sdegeo:rename-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
sdegeo:revolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
sdegeo:rotate-selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
sdegeo:scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
sdegeo:scale-selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
sdegeo:set-active-coord-sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
sdegeo:set-active-work-plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
sdegeo:set-auto-region-naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
sdegeo:set-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
sdegeo:set-contact-boundary-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
sdegeo:set-contact-boundary-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
sdegeo:set-contact-edges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
sdegeo:set-contact-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
sdegeo:set-contact-faces-by-polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
sdegeo:set-current-contact-set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
sdegeo:set-default-boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
sdegeo:set-region-counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
sdegeo:set-region-counter-aut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
sdegeo:skin-wires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
sdegeo:skin-wires-guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
sdegeo:skin-wires-normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
sdegeo:skin-wires-vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
sdegeo:split-insert-device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
sdegeo:sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
sdegeo:taper-faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
sdegeo:translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
sdegeo:translate-selected. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
sdeicwb:create-boxes-from-layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
sdeicwb:define-refinement-from-layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
sdeicwb:down, sdeicwb:up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
sdeicwb:generate-mask-by-layer-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
sdeicwb:get-back. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
sdeicwb:get-dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
sdeicwb:get-domains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
sdeicwb:get-front . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
sdeicwb:get-global-bot, sdeicwb:get-global-top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
xx
Contents
sdeicwb:get-layer-ids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
sdeicwb:get-layer-names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
sdeicwb:get-layer-polygon-midpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
sdeicwb:get-left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
sdeicwb:get-polygon-bounding-boxes-by-layer-name . . . . . . . . . . . . . . . . . . . . . . . . . . 524
sdeicwb:get-polygon-by-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
sdeicwb:get-polygon-names-by-layer-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
sdeicwb:get-region-bot, sdeicwb:get-region-top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
sdeicwb:get-right. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
sdeicwb:get-xmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
sdeicwb:get-xmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
sdeicwb:get-ymax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
sdeicwb:get-ymin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
sdeicwb:load-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
sdeicwb:set-domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
sdeicwb:stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
sdeio:assign-local-refs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
sdeio:read-dfise-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
sdeio:read-tdr-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
sdeio:readbnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
sdeio:save-2d-dfise-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
sdeio:save-2d-tdr-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
sdeio:save-3d-dfise-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
sdeio:save-3d-tdr-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
sdeio:save-dfise-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
sdeio:save-tdr-bnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
sdenoffset:create-boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
sdenoffset:create-global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
sdenoffset:create-isoline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
sdenoffset:create-noffset-block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
sdenoffset:create-noffset-interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
sdepe:add-substrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
sdepe:anisotropic-deposit (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
sdepe:anisotropic-pattern (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
sdepe:clean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
sdepe:create-substrate (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
sdepe:define-pe-domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
sdepe:depo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
sdepe:doping-constant-placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
sdepe:doping-gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
sdepe:etch (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
xxi
Contents
sdepe:etch-material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
sdepe:fill-device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
sdepe:generate-domainboundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
sdepe:generate-empty-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
sdepe:generate-mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
sdepe:icon_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
sdepe:implant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
sdepe:implant-imp3d. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
sdepe:isotropic-deposit (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
sdepe:isotropic-pattern (old syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
sdepe:pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
sdepe:photo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
sdepe:polish-device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
sdepe:remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
sdepe:trim-masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
sdepp:clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
sdepp:clear-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
sdepp:load-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
sdepp:load-grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
sdepp:set-ash-factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
sdepp:set-colormap-type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
sdepp:set-data-mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
sdepp:set-face-displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
sdepp:set-num-colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
sdepp:set-palette-orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
sdepp:set-plot-type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
sdepp:show-legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
sdepp:show-mesh-edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
sdesnmesh:replace-tensor-block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
sdesp:begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
sdesp:define-step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
sdesp:finalize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
sdesp:restore-state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
set-interface-contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
skin:options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
solid? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
solid:area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
solid:massprop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
sweep:options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
xxii
Contents
system:command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
system:getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
transform:reflection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
transform:rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
transform:scaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
transform:translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
vertex? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
wire? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
wire-body? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
wire:planar?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Index of Scheme Extensions
595
xxiii
Contents
xxiv
Chapter 9 contains information about how to work with Scheme and Scheme extensions.
Chapter 11 presents additional features that are available in Sentaurus Structure Editor.
Audience
This guide is intended for users of the Sentaurus Structure Editor software package.
xxv
Related Publications
For additional information about Sentaurus Structure Editor, see:
The TCAD Sentaurus release notes, available on SolvNet (see Accessing SolvNet).
Documentation on the Web, which is available through SolvNet at
https://solvnet.synopsys.com/DocsOnWeb.
Typographic Conventions
Convention
Explanation
Blue text
Bold text
Identifies a selectable icon, button, menu, or tab. It also indicates the name of a field or an
option.
Courier font
Identifies text that is displayed on the screen or that the user must type. It identifies the names
of files, directories, paths, parameters, keywords, and variables.
Italicized text
Used for emphasis, the titles of books and journals, and non-English words. It also identifies
components of an equation or a formula, a placeholder, or an identifier.
Key+Key
Indicates keyboard actions, for example, Ctrl+I (press the I key while pressing the Control
key).
Indicates a menu command, for example, File > New (from the File menu, select New).
NOTE
Customer Support
Customer support is available through SolvNet online customer support and through
contacting the Synopsys Technical Support Center.
Accessing SolvNet
SolvNet includes an electronic knowledge base of technical articles and answers to frequently
asked questions about Synopsys tools. SolvNet also gives you access to a wide range of
Synopsys online services, which include downloading software, viewing Documentation on
the Web, and entering a call to the Support Center.
xxvi
To access SolvNet:
1. Go to the SolvNet Web page at https://solvnet.synopsys.com.
2. If prompted, enter your user name and password. (If you do not have a Synopsys user name
and password, follow the instructions to register with SolvNet.)
If you need help using SolvNet, click Help on the SolvNet menu bar.
Open a call to your local support center from the Web by going to
https://solvnet.synopsys.com/EnterACall (Synopsys user name and password required).
Send an e-mail message to your local support center:
xxvii
Acknowledgments
Portions of this software are owned by Spatial Corp. 19862010. All rights reserved.
xxviii
CHAPTER 1
Overview
This chapter introduces Sentaurus Structure Editor.
1: Overview
Introduction to Sentaurus Structure Editor
In addition, device structures can be defined using emulated process steps such as:
Substrate generation
Patterning
Isotropic and anisotropic etching and deposition, with or without shadowing and
directional effects
Implantation
The use of a state-of-the-art geometry modeling kernel (ACIS, from Dassault Systmes
S.A.) that provides a robust and reliable base for model generation.
All modes share a common kernel that provides TDR file input and output, conformal
model tessellation for the 2D and 3D Synopsys meshing engines, a link to the meshing
engines (with an appropriate user interface to the selected engine), refinement control for
tessellated curved boundaries, and other support functionalities.
The 2D and 3D device editors provide a GUI and scripting support to:
Add constant, analytic, and externally generated doping profiles to the model.
The process emulator provides additional scripting functions to emulate TCAD process steps.
All three modes share the same software infrastructure and internal data representation, and
can be combined freely. A 2D model can be extruded or swept along a curve to generate a 3D
model. Afterwards, process steps (for example, a deposition step) can be performed on the
generated 3D model. Similarly, a 2D slice can be generated from a 3D model and can be saved
in a 2D boundary file.
1: Overview
ACIS Geometry Kernel
For more information about the TDR format, refer to the Sentaurus
Data Explorer User Guide.
An entity is the most basic ACIS object. The selection tool and (sde:selected-entities)
always return the ACIS entity IDs for the selected entities. These entity IDs are used to refer to
specific entities.
Apart from the Sentaurus Structure Editor documentation, a useful resource to learn the basics
of ACIS and Scheme is:
J. Corney and T. Lim, 3D Modeling with ACIS, Stirling, UK: Saxe-Coburg Publications,
2001.
1: Overview
ACIS Geometry Kernel
CHAPTER 2
-e
Runs in batch mode (see Batch Mode on page 6), that is without the
GUI. Use with -l to run a script in batch mode.
-h heapsize
-help
-l scriptname
-mdraw
-noloadCmd
-noopenGL
-r
-S scriptname
Tests the Scheme syntax only; it implies -e, that is, no GUI.
-Sl scriptname
-tcl
-v
-var var=value
NOTE
Batch Mode
To run a Scheme script file, for example MyScript.scm, in batch mode, start Sentaurus
Structure Editor with the -e option (this disables the graphical display), and use the -l option
to give the script to be run:
sde -e -l MyScript.scm
If the -e option is not used, the GUI is launched after the specified script -l MyScript.scm
is executed.
Heap Size
By default, Sentaurus Structure Editor uses 400 MB of heap space. For most applications, the
allocated heap space should be sufficient. If Sentaurus Structure Editor does not have enough
heap space during script execution, the Scheme error file will contain the following error
message: Out of heap space.
In this case, Sentaurus Structure Editor will exit, and the script must be executed again with
increased heap space.
To increase the heap space, use the -h argument (the default value is 400000, which is
approximately 400 MB), for example:
(sde -h 600000 -e -l myscript.scm)
Interactive Mode
Sentaurus Structure Editor can be used interactively by either using the GUI menu bar and
toolbars, or entering the Scheme commands in the command-line window.
To run Sentaurus Structure Editor in interactive mode, type in a command prompt:
sde
starts Sentaurus Structure Editor and loads the MyDevice.cmd file. It also loads the
MyDevice.bnd file if available.
NOTE
NOTE
If the model was changed since the last save operation, Sentaurus
Structure Editor displays a warning in the interactive mode.
NOTE
Saving Models
To save a model:
or:
This command saves the model geometry and Ref/Eval windows in native ACIS format
(filename.sat), the Scheme file filename.scm with various parameter settings,
filename.cmd with refinement-related and doping-related information, and the boundary file
in both TDR format (filename.tdr) as well as in the deprecated DFISE format
filename.bnd.
NOTE
When saving the boundary file in TDR format, the extension will
be .tdr and not _bnd.tdr as other TCAD Sentaurus tools would
expect.
Saving Boundaries
To save only the boundary (and not the entire model) in the deprecated DFISE format:
File > Save Boundary.
or:
Saving only the boundary in TDR format is not available from the File
menu. Use the Scheme command sdeio:save-tdr-bnd.
Importing Files
To import a file:
Table 1 lists all supported file formats for loading into Sentaurus Structure Editor and the
corresponding Scheme commands.
Table 1
Format
Scheme command
(sdeio:readbnd "filename.bnd")
10
Description
mdraw-tcl2scm
(load "filename.scm")
(sdeio:read-tdr-bnd "filename.tdr")
NOTE
When importing a .sat file from the GUI the Scheme command
part:load is used. This command works well when importing a
structure into an empty database (no geometric objects defined). In this
case, the saved structure is restored correctly.
When importing a structure to a non-empty database (with pre-existing
geometric objects), overlapping regions may be generated since
part:load does not respect the active Boolean settings for overlap
handling.
The sde:load-sat function (not accessible from the GUI) can be
used to load a native .sat file with correct overlap handling. The
function is the same as part:load, except that it will observe the active
Boolean setting for overlap control (that is, overlapping regions will not
be present in the model and the overlaps will be removed based on the
active Boolean setting).
NOTE
11
In stepping mode, the Enter key must be pressed twice for each single
line of the Scheme script, including blank lines and comments. To revert
to continuous execution, enter the command (journal:step #f).
12
Journal commands
Scheme command
Description
(journal:clean "filename.jrl")
(journal:load "filename.jrl")
(journal:off)
(journal:on "filename.jrl")
(journal:pause)
Pauses recording.
(journal:resume)
Resumes recording.
(journal:save "filename.jrl")
Saves the current journal to a file, but leaves the journal session
open.
CHAPTER 3
Contact List
Material List
Toolbars
View Window
Command-Line
Window
Figure 1
13
GUI Modes
Sentaurus Structure Editor offers three different GUI modes: 3D (default mode), 2D, and
Mdraw. To set the GUI mode:
The only difference between the 3D GUI mode and the 2D GUI mode is that in the 2D GUI
mode, some toolbars and GUI operations are unavailable. In this way, a more streamlined and
simplified GUI is provided for 2D applications.
The dialog boxes related to doping, refinement, and external submeshes are the same in both
the 2D GUI mode and 3D GUI mode. However, when defining refinement/evaluation (Ref/
Eval) windows directly from these dialog boxes, in 2D GUI mode, rectangular Ref/Eval
windows are created and, in 3D GUI mode, cuboidal Ref/Eval windows are created.
The Mdraw mode is also a 2D mode, with a simplified 2D GUI. In addition to the 2D toolbars,
an Mdraw toolbar is available, which provides buttons for building meshes, gravity drawing,
and fast contact assignment (see Chapter 11 on page 275). In the Mdraw-compatibility mode,
dialog boxes related to doping, refinement, and external submeshes are simplified to provide a
similar look as the analogous Mdraw dialog boxes. These dialog boxes do not provide full
access to all features that can be defined in 2D mode or 3D mode, but may be easier to use for
former Mdraw users.
Menu Bar
Table 3 lists the menus that are available from the GUI of Sentaurus Structure Editor.
Table 3
14
Menus
Menu
Description
File
Edit
View
Draw
Mesh
Device
Table 3
Menus
Menu
Description
Contacts
Help
Version information
Toolbars
Each toolbar contains a set of predefined shortcuts and icons, which are shown in the following
tables.
Table 4
Button
Table 5
Button
Table 6
Button
Description
Ctrl+N
Ctrl+O
Button
Shortcut keys
Description
Ctrl+S
Save model
Open model
Ctrl+P
Description
Ctrl+Z
Ctrl+Y
Button
Description
Facets
Gouraud Shaded
Wireframe
Hidden Line
Flat Shaded
15
Table 7
Button
Button
Description
Isometric View
YZ Plane
XY Plane
XZ Plane
Table 8
Button
Table 9
Button
Button
Description
Button
Description
Move Region
Add Vertex
Vertex-Vertex Distance
2D Cut
Move Edge
16
Table 10
Button
Description
Button
Description
Create Rectangle
Table 11
Button
Description
Button
Description
No Snapping
Snap to Edge
Snap to Vertex
Snap to Grid
Table 12
Button
Description
Button
Description
Create Cuboid
Create Cylinder
Create Sphere
Create Ellipsoid
Table 13
Button
Description
Button
Description
17
Table 14
Button
Description
Button
Description
Table 15
Button
Description
Button
Description
Reference line
(Ref/Eval window)
Reference rectangle
(Ref/Eval window)
Reference polygon
(Ref/Eval window)
Refinement placement
Multibox placement
Table 16
Button
Description
Button
Description
18
Lists
The main window of Sentaurus Structure Editor contains four lists:
Contact list Selects the contact name to be used in the next set contact region, or face, or
edge operations.
Selection Level list Selects which type of object can be selected.
View Window
The current device is displayed in the view window. The result of all interactive operations is
reflected immediately in the view window.
Right-click in this area to open the following shortcut menus:
Selection Level
Controls which type of object can be selected by clicking (Select mode). Options are Auto
Select, Body, Face, Edge, Vertex, and Ref/Eval Window.
Toggle Visibility
Activates or deactivates a light source for shading 3D objects.
Placing the cross-hair cursor over an object and right-clicking has the effect of selecting the
object corresponding to the current selection level, and opening the above shortcut menus and
the following additional menus and options where it is appropriate in the context of the
selection made:
Contacts
If the selection level is set to Edge or Face, contacts are assigned to the selected objects. It
also allows for the creation of new contact sets.
Delete
In many contexts, the object can be deleted by selected this option.
19
Properties
Displays a window with information about the selected object. In some contexts, for
example, Ref/Eval windows, properties of the object are editable.
For Ref/Eval windows, the bounding vertex coordinates are displayed for rectangular and
cuboidal Ref/Eval windows. For these types, the vertex coordinates are editable and can be
changed. In this case, all doping/refinement/submesh (DRS) objects that use the given Ref/
Eval window are redefined using the new vertex coordinates.
Hide
If the selection level is set to Body or Ref/Eval Window, the selected entities are hidden.
Show All
All the previously hidden bodies and Ref/Eval windows are displayed again.
Command-Line Window
Most GUI operations have an associated Scheme command. After a GUI operation, the
corresponding Scheme command is echoed in the command-line window.
Use the Up Arrow and Down Arrow keys to scroll through echoed Scheme commands. Echoed
commands can be edited (use the Left Arrow and Right Arrow keys to position the cursor, and
the Delete key or Backspace key to delete parts of the command, type in new parts of the
command) and re-executed by pressing the Enter key.
Use cut-and-paste operations to save echoed Scheme commands into a text editor to
interactively build a Scheme script. Individual Scheme commands or groups of Scheme
commands can be pasted back into the command-line window as needed, for example, to test
a section of a Scheme script. Scheme commands can also be entered directly at the commandline prompt.
Activate journaling (see Recording Actions to a File on page 11) to automatically save the
echoed Scheme command to a journal file, for later editing and replaying.
Some basic rules of the Scheme scripting language are (see Chapter 9 on page 249 for more
details):
20
Comment lines start with a semicolon. In each line, a comment proceeds from the first
inserted semicolon.
New variables are defined using the keyword define. Defined variables can be reassigned
a value using the keyword set!, for example:
(define width 5)
; defines the variable width and sets its value to 5
(define height 10)
(set! width 3)
; now width is 3
Scheme has all the conventional data types such as character, string, list, array, Boolean,
number, function, and symbol.
All data types are equal. Any variable can hold any type of data. Data initialization,
memory allocation, and memory cleanup (garbage collection) are performed automatically.
NOTE
To redo an action:
The undo and redo operations work with actions supported directly by the ACIS modeling
engine, including operations that create and change Ref/Eval windows. Operations that involve
creating or changing placements cannot be undone by using the (roll) feature. However,
placements can be edited, deleted, and recreated.
21
Shortcut Keys
Table 17 lists additional shortcut key combinations to manipulate the view.
Table 17
22
Key
Action
Up Arrow
Down Arrow
Left Arrow
Right Arrow
Ctrl+Left Arrow
Ctrl+Right Arrow
Ctrl+Z
(roll)
Ctrl+Y
(roll 1)
Shift+Orbit
Ctrl+Orbit
Ctrl+Shift+Orbit
Ctrl+N
Ctrl+O
Open model
Ctrl+S
Save model
Ctrl+P
Ctrl+Q
Exit
Figure 2
The Scheme commands listed in Table 18 can be used to configure the command-line window.
Table 18
Scheme function
Description
(sde:scmwin-get-font-families)
(sde:scmwin-get-font-family)
(sde:scmwin-get-font-size)
(sde:scmwin-select-font)
(sde:scmwin-set-font-family
font-type)
(sde:scmwin-set-font-size
integer)
sde:scmwin-set-prefs
(sde:scmwin-set-window-height
number-of-lines)
23
The RGB colors for the top and bottom of the view window must be specified as integers in the
range 0255. For example, to create a graded background with red on top and blue at the
bottom:
(sde:set-background-color 255 0 0 0 0 255)
GUI Style
To change the GUI style:
The available GUI styles are Windows, Motif, Cleanlooks, Plastique, and CDE.
See sde:set-window-style on page 380.
For example:
(sde:set-window-size 640 480)
24
For example, to place the main window in the upper-left corner of the screen:
(sde:set-window-position 0 0)
NOTE
Selecting Entities
To select an entity:
1. Click the Select button (see Table 8 on page 16).
2. Select the required entity type from the Selection Level list.
3. Select an entity and hold the Shift or Ctrl key to select additional entities, or drag a box
around a set of entities.
4. Click the (blank) background to clear the selected entity list.
Entity types are Body, Face, Edge, Vertex, or Ref/Eval Window.
Figure 3
Set entity selection type: shortcut menu (left) and Selection Level list (right)
25
Snapping Modes
The default drawing mode is freehand for creating 2D regions (rectangles, circles, ellipses, and
so on). Optional features such as snap-to-grid, exact coordinates, and snap-to-existing vertices
can also be used. These features can also be accessed interactively during model generation.
Table 19
Key
Action
Esc
Resets operator
Snap-to-vertex
Snap-to-grid
Disables snapping
For example, during a 2D polygonal region generation when the E key is pressed, the pointer
will snap to the closest existing edge. When the pointer is moved, it slides along the closest
edge. When the V key is pressed, the pointer snaps automatically to the closest vertex. To move
back to freehand drawing, press the N key.
Printing
To print the current view of the structure:
1. File > Print or Ctrl+P.
2. Select the printer and set print options such as page orientation, and color or black-andwhite mode if available.
3. Select the Print to file option, and enter a file name to export the view to a portable
document format (PDF) file.
4. Click Print.
26
For example:
(sde:define-parameter "myvar1" "banana")
(sde:define-parameter "myvar2" 10)
(sde:define-parameter "myvar3" 10 0 20)
The parameters can be deleted using either the Delete button of the Parameters dialog box or
the function sde:delete-parameter:
(sde:delete-parameter parameter_name)
NOTE
Figure 4
27
Scheme variables function as parameters for various operations, such as extrusion and
chamfering, and can be used for device parameterization. These variables can be assigned not
only a value by using Edit > Parameters, but also minimum and maximum values. For
example, when myvar1 is defined with Value 10, Min. Value 0, and Max. Value 20, you can
enter myvar1 in the command-line window that will evaluate myvar1 as 10. The minimum
value is stored in a variable called myvar1_min, and the maximum value is stored in a variable
called myvar1_max.
NOTE
Parameters can also be defined by the basic Scheme command (define parameter-name
value).
28
CHAPTER 4
Controlling Views
This chapter describes the various options to control views available
in Sentaurus Structure Editor.
View > Interactive Mode, or click the corresponding toolbar button (see Figure 5).
Figure 5
Toolbar buttons for zooming, panning, and orbiting with mouse operations
29
4: Controlling Views
Interactive Cutting Plane Viewer
While the Orbit mode is active, different shortcut keys can be used to rotate the model about
the imaginary coordinate axes of the screen (in the view window). Hold the key or keys
when in Orbit mode:
Rotate about x-axis (horizontal view)
Rotate about y-axis (vertical view)
Rotate about z-axis (perpendicular to view)
Shift+Orbit
Ctrl+Orbit
Ctrl+Shift+Orbit
30
4: Controlling Views
Perspective and Orthographic Views in 3D
Figure 6
Interactive cutting plane viewer: structure with cut plane (left) and Cut Plane
Controller dialog box (right)
Figure 7
31
4: Controlling Views
Selecting the Rendering Mode
Facets
The faceted model shows a triangulated view in 2D and a triangulated surface tessellation
in 3D. When exporting the boundary file, the 2D faceting algorithm extracts the boundary
edges from the tessellated view. In 3D, the triangular elements become part of the
polyhedral boundary representation. When changing the surface refinement properties, the
faceted view always reflects the triangulation that will be used when exporting a boundary
file.
Wireframe
This rendering mode shows the boundary wires only.
Flat Shaded
A simple shaded mode where the surface normals are taken from the tessellated
(triangulated) mode. Each surface element has a uniform color.
32
4: Controlling Views
Selecting the Rendering Mode
Gouraud Shaded
In this shading method, the surface normals are interpolated (using a simple linear
interpolation) between the neighboring surface triangles. In this way, a continuously
shaded view is generated.
Figure 8
Hidden Line
This mode generates a 3D view in which nonvisible edges are hidden. Additional silhouette
edges are added to the view for the correct visualization.
Wireframe or Hidden Line with Face Parameter Lines
To better visualize faces in Wireframe mode or Hidden Line mode, additional face
parameter lines can be displayed as well. In this mode, each face is decorated with a given
number of parametric lines for each orthogonal direction. The default number is 3.
The Scheme commands for displaying face parameter lines are:
(view:display-param-lines #t)
; Turns on/off parameter lines for visualization
(option:set "u_param" 5)
; Number of parameter lines in the u direction
(option:set "v_param" 5)
; Number of parameter lines in the v direction
(render:rebuild)
33
4: Controlling Views
View Orientation
(a)
(b)
Figure 9
NOTE
(c)
(d)
Rendering modes: (a) facets, (b) wirefame, (c) hidden lines, and (d) hidden lines
with face parameter lines
View Orientation
The camera position and orientation can be selected interactively. The resulting orientation of
the coordinate axes displayed are given as follows:
Iso
3D isometric view
XY
X to the right, Y up
XZ
X to the right, Z up
YZ
Z to the left, Y up
X(-Y)
34
4: Controlling Views
Showing and Hiding Coordinate Axes
The grid lines are always shown in the current work plane. Grid lines
along the z-axis are not supported.
Displaying Ruler
To switch between the display of rulers along the x- and y-directions:
The rulers are always shown in the current work plane. A ruler along the
z-axis is not supported. The x- and y-rulers are placed such that they
cross in the upper-left corner when using the XY view orientation.
Using other view orientations may make it difficult to read the tick
labels of the rulers.
35
4: Controlling Views
Scaling View
Scaling View
You can scale the view (uniform or nonuniform). Scaling the view does not change the model
coordinates; it is applied only to the graphical scene.
To scale the view:
1. View > View Scaling.
2. Enter a view scaling factor for each of the coordinate axis.
The corresponding Scheme command is:
(sde:scale-scene x-factor y-factor z-factor)
For example, to scale the view by 2 in the y-direction, use (sde:scale-scene 1 2 1). The
command (sde:scale-scene 1 1 1) restores the original uniform unscaled model view.
Figure 10
Entity Viewer
To view geometric entities associated with a selected material, or selected regions, masks,
contacts:
The Entity Viewer is used to switch on and off the display of all different entity types (body,
face, edge, vertex, and other), masks, contacts, regions, and materials. Each can be shown or
hidden, individually or in groups, using the Show and Hide buttons. To restrict the display to
only the selected entities, click the Exclusive button.
36
4: Controlling Views
Quick Access to Placements, Refinements, and Doping Profiles
To see through the selected entities, click the Translucent button. To switch off translucency
for the selected entities, click Opaque.
Any additions, changes, and deletions to entities made through GUI actions in the view
window or through Scheme commands are reflected immediately in the Entity Viewer.
Two-dimensional or three-dimensional contacts can be visualized as separate objects. To see
only a given contact, highlight the contact name in the Entity Viewer and click Exclusive.
Related Scheme commands to display, hide, or show exclusively a given contact, respectively,
are:
(sde:show-contact contactname)
(sde:hide-contact contactname)
(sde:xshow-contact contactname)
Figure 11
Placements Viewer
To list and access all currently defined Ref/Eval windows, refinements, and doping profiles:
1. View > Placements Viewer.
2. Double-clicking any option opens the corresponding dialog box to view and edit its
properties. Additions, changes, and deletions to placements made through GUI actions in
37
4: Controlling Views
Visualizing the Internal Entity Representation
the view window or through Scheme commands are reflected immediately in the
Placements Viewer.
3. To visualize Ref/Eval windows, select one or more Ref/Eval window and click Show.
Click Exclusive to display the item while suppressing the display of all other items.
Click Hide to suppress the display of the selected item. (These two buttons only apply to
Ref/Eval windows.)
Figure 12
Topology Browser
38
4: Controlling Views
Grid and Doping Profile Viewer
highlighting of the corresponding entity in the Topology Browser. Similarly, the selection of an
entity in the Topology Browser results in the highlighting of the entity in the main window.
The Topology Browser also displays the doping/refinement/submesh (DRS)related Ref/Eval
windows as geometric objects.
39
4: Controlling Views
Grid and Doping Profile Viewer
Datasets generated
from data file input
Visualization type
Color maps
Figure 13
40
4: Controlling Views
Grid and Doping Profile Viewer
41
4: Controlling Views
Grid and Doping Profile Viewer
Hide button
This button is used to remove the selected regions and materials from the view.
Exclusive button
This button is used to show the selected regions and materials exclusively (it hides all
others from the view).
Close button
This button closes the dialog box. (The loaded TDR grid and data files are not cleared.)
The grid/data files are rendered in the main window and usually cover the entire device
structure. However, if the display of selected regions or material of the grid/data file is
suppressed, it is possible to generate a mixed view, with grid/data regions visible in some parts
of the structure and device structure in other parts.
By default, the display of the device structure is suppressed when the grid/data file is loaded.
Use the Entity Viewer to display all or parts of the device structure.
The Scheme command to restore the display of the device structure is (render:rebuild).
The command to suppress the display is (sde:xshow-material "").
Figure 14 shows a 2D fringe and isoline plot of a device, and Figure 15 on page 43 shows a 3D
model.
Figure 14
42
Two-dimensional grid/data field visualization (fringe and isoline plot); real part of
optical field for first higher order mode (TE1) in a leaky waveguide edge-emitting
laser
4: Controlling Views
Grid and Doping Profile Viewer
Figure 15
Apply Boolean conditions (IF/IF NOT, OR/AND) to the value blanking criteria.
43
4: Controlling Views
Grid and Doping Profile Viewer
Figure 16
Value Blanking dialog box (left) and result of value blanking (right)
The following text explains how to activate and deactivate different value-blanking options.
Axis-aligned Windowing
To display only the parts that fulfill conditions such as 0.06<=x<=0.12:
1. The Value Blanking dialog box is initialized with value blanking based on axis-aligned
windowing.
The entry field for the x-, y-, and z-windowing conditions are initialized to the bounding
box of the structure.
Edit the minimum and maximum values for each axis as needed. This defines three valueblanking conditions, one for each axis.
NOTE
2. Select if these three conditions should be ANDed or ORed by switching between the AND
(OR) button such that the desired option is shown.
For example, if the AND button is visible, the value blanking condition C is:
C = (xmin<=x<=xmax) AND (ymin<=y<=ymax) AND (zmin<=z<=zmax)
3. Select if areas should be shown where the value-blanking condition is true or areas where
it is false by switching between the Show If (Show If NOT) button. For example, if the
Show If NOT button is visible, only those areas are shown for which the value-blanking
condition C is false.
44
4: Controlling Views
Grid and Doping Profile Viewer
4. To activate or deactivate value blanking, switch between the Activate (Deactivate) button.
Note that value blanking is active if the Deactivate button is visible, and value blanking is
deactivated if the Active button is visible.
5. Open the Grid Postprocessing dialog box with Mesh > Mesh Viewer if not already open.
6. Click Show in the Grid Postprocessing dialog box to activate the value-blanking selections.
7. To modify the value blanking condition, repeat Steps 16 as needed.
NOTE
45
4: Controlling Views
Grid and Doping Profile Viewer
In the Value Blanking dialog box, select the Blank from Front option, or the Blank from
Back option, and dial in the value for the blanking distance, which is a percentage of the
device extension.
Data Probing
When you click the Select toolbar button during a grid and doping profile viewing, the selected
face of the grid element will be outlined and the closest vertex will be highlighted.
The Data Probing dialog box will show the x-, y-, and z-coordinates, and the data-field values
at the closest vertex and at the face center.
Figure 17
46
4: Controlling Views
Grid and Doping Profile Viewer
Cut Plane
The cut plane viewer is integrated with the grid and data viewer. Only complete grid elements
are removed, so the mesh quality can be checked visually.
To view the internal grid in a 3D structure:
1. View > Interactive Mode > Cutting Plane, or click the corresponding toolbar button (see
Table 8 on page 16).
2. Use the Cut Plane Controller or the interactive handles to adjust the cut plane as needed
(see Interactive Cutting Plane Viewer on page 30).
This will display the location of the cut plane, but not the internal grid.
3. Open the Grid Postprocessing dialog box with Mesh > Mesh Viewer if not already open.
4. Click Show in the Grid Postprocessing dialog box to activate the display of the internal grid
structure.
To change the location of the cut plane:
1. View > Interactive Mode > Cutting Plane, or click the corresponding toolbar button.
2. Adjust the location of the cut plane as discussed in Interactive Cutting Plane Viewer on
page 30.
3. Open the Grid Postprocessing dialog box with Mesh > Mesh Viewer if not already open.
4. Click Show in the Grid Postprocessing dialog box to activate the display of the entire
structure.
NOTE
Figure 18
When displaying large grid/data files, the response time for adjusting
the cut plane location may be longer than expected. A certain amount of
patience is recommended.
Grid and data visualization with an activated cut plane (left) and Cut Plane
Controller (right)
47
4: Controlling Views
Grid and Doping Profile Viewer
NOTE
The view does not cut through the elements. Instead, it renders only the
complete mesh elements that are behind the cut plane. In this way, mesh
quality can be examined inside the device structure.
(sdepp:clear-data)
Clears only the data fields from the grid and data viewer.
(sdepp:load-data file-name)
(sdepp:load-grid file-name)
(sdepp:set-ash-factor factor)
(sdepp:set-colormap-type type)
(sdepp:set-data-mapping method)
(sdepp:set-num-colors
number-of-colors)
(sdepp:set-palette-orientation
orientation)
(sdepp:set-plot-type type)
(sdepp:show-legend flag)
(sdepp:show-mesh-edges flag)
48
Only grid and data files in the deprecated data format DFISE can be
loaded with the Scheme command. Loading of TDR grid/data files with
Scheme command is not supported.
CHAPTER 5
resabs (default value 1e-6) is the tolerance used when comparing two positions in the 3D
model space. If two positions are within resabs of each other, they may be considered in
resnor (default value 1e-10) is the tolerance used when comparing the directions of two
vectors. If the directions of two vectors are within resnor of each other, the vectors may
be considered to be parallel.
Basically, the modeling range is the ratio of these two values (resabs/resnor).
Geometry modeling in Sentaurus Structure Editor is unitless. This means that you can choose
any unit for model representation. However, the modeling range and the smallest representable
feature will depend on the selected modeling unit.
For example, if you want to use micrometer as the modeling unit and a modeling range that is
8
100 m , the smallest representable feature will be resnor x 100 = 10 m , which is
5
10 nm. If the modeling unit and the modeling range are selected to be 1 m, the smallest
10
representable feature will be 10 m, which is 10 nm. From this example, it is clear that it
would not be practical to select meter as the modeling unit, since the TCAD devices could not
be represented in Sentaurus Structure Editor based on the tolerance values that are used for the
geometric calculations. Selecting micrometer as the modeling unit would be a better choice for
TCAD devices. This means that, in this case, the smallest representable geometric feature is
5
approximately 10 nm.
Based on experience in nanodevice modeling, it is suggested that you use nanometer as the
modeling unit when such devices are being modeled. This will result in a smaller modeling
range but a larger precision, which may be preferable. It is the best to select the modeling unit
in such a way that it will provide the largest precision within the necessary modeling range.
49
If there is a modeling unit mismatch between the different TCAD tools, an additional scaling
can be applied to the tessellated boundary file created by Sentaurus Structure Editor and to the
mesh command file. This operation will not introduce any modeling error, since scaling is
performed directly on the files, and no additional geometric operations are applied to the
model.
Draw > Exact Coordinates, or click the corresponding toolbar button (see Table 8 on
page 16).
In Exact Coordinates mode, after drawing any 2D shape, or after adding or moving vertices, a
dialog box is displayed that shows the drawn coordinates of the salient features of the new
shape. The dialog box allows you to edit these values before the structure is drawn.
50
Snapping
Snapping can be used as an alternative or a convenient augmentation of the Exact Coordinates
mode for creating 2D regions (rectangles circles, ellipses, and so on). The different snapping
modes are activated interactively when drawing shapes by pressing the following keys (or click
the corresponding toolbar buttons):
Grid Snapping: To activate grid snapping, press the G key or click the corresponding
toolbar button (see Table 11 on page 17). The pointer jumps from grid point to grid point.
(To visualize the grid, View > Grid.)
Vertex Snapping: To snap the pointer to the nearest vertex of an existing shape, press the
V key or click the corresponding toolbar button (see Table 11). When the pointer is moved,
it jumps from vertex to vertex. A click will insert the new vertex to be exactly on a vertex.
Edge Snapping: To snap the pointer to the nearest edge of an existing shape (it will slide
along this edge), press the E key or click the corresponding toolbar button (see Table 11).
A click will insert the new vertex to be exactly on the edge.
Free Drawing: To return to the default free-drawing mode, press the F key or click the
corresponding toolbar button (see Table 11).
NOTE
The Exact Coordinates mode can be used concurrently with all snapping
options.
Active Material
To select the active material to be used for subsequent actions:
Figure 19
51
NOTE
Naming Regions
When creating a new region, Sentaurus Structure Editor automatically assigns a default region
name. The default region names follow the sequence region_1, region_2, region_3, and
so on. To be prompted for a custom region name after creating a new region interactively,
deactivate the automatic region-naming feature.
To switch automatic region-naming on or off:
Region names can be changed later (see Changing the Name of a Region on page 111). Within
Sentaurus Structure Editor, multiple geometric objects can share the same region name.
However, when saving the final boundary, disjoint regions must have different region names.
If the region-naming does not satisfy this criterion, Sentaurus Structure Editor automatically
modifies the region names by adding the suffix _lump%N to each disjoint region (where N is a
lump counter). Use Edit > Separate Lumps to explicitly force this region-renaming step.
Overlap Behavior
In most applications, a device consists of multiple regions. When creating a device with
multiple regions in Sentaurus Structure Editor, later-added regions may intersect existing
regions. If this occurs, a predefined scheme is used to resolve the overlapping of regions.
To select the overlap resolution behavior:
Draw > Overlap Behavior, or click the corresponding toolbar button (see Table 13 on
page 17).
The types of overlap resolution behavior available in Sentaurus Structure Editor are:
Merge
The old and new structures merge, and all boundary lines between them are dissolved. The
resulting merged structure takes on the region name and material of the last-drawn
structure. The corresponding Scheme command is:
(sdegeo:set-default-boolean "AB")
52
Unresolved Overlaps
An additional option "XX" is available. The (sdegeo:set-default-boolean "XX")
command switches off the automatic overlap region handling, thereby allowing the
creation of overlapping regions. This option should be used only by experienced users. The
overlaps must be resolved manually later; otherwise, the exported final boundary will
contain an invalid topology. This option is not available from the GUI.
Current Overlap Behavior
The Scheme command (sdegeo:get-default-boolean) returns information about
the currently active overlap resolution behavior.
53
Basic 2D Shapes
Rectangles
To draw a rectangle:
1. Draw > 2D Create Tools > Rectangular Region, or click the corresponding toolbar
button (see Table 10 on page 17).
2. Drag to draw the diagonal of the rectangle in the view window.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the first vertex and second vertex of the diagonal.
The corresponding Scheme command is:
(sdegeo:create-rectangle position position material-name region-name)
For example:
(sdegeo:create-rectangle (position 0 0 0) (position 2 1 0) "Silicon"
"R.Substrate")
Regular Polygons
To draw a regular polygon:
1. Draw > 2D Create Tools > Regular Polygonal Region, or click the corresponding toolbar
button (see Table 10 on page 17).
2. Drag to draw the radius of the regular polygon in the view window. By default, a ten-sided
polygon is created.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the center point, the radius, the number of sides, as well as the starting angle.
The corresponding Scheme command is:
(sdegeo:create-reg-polygon center-position radius number_of_faces start_angle
material-name region-name)
For example:
(sdegeo:create-reg-polygon (position 0 0 0) 1.0 3 30 "Nitride"
"R.TriangleSpacer")
54
Polygons
To draw a general polygon:
1. Draw > 2D Create Tools > Polygonal Region, or click the corresponding toolbar button
(see Table 10 on page 17).
2. Click at each vertex of the polygon in the view window. To finish drawing the polygon,
click the middle mouse button. (Press both buttons when using a two-button mouse.) The
polygon closes automatically.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates for
each vertex.
The corresponding Scheme command is:
(sdegeo:create-polygon list-of-positions material-name region-name)
For example:
(sdegeo:create-polygon (list (position 0 0 0) (position 0.5 -1 0)
(position 1 -1 0) (position 1.5 0 0) (position 0 0 0))
"PolySilicon" "R.TaperedPoly")
Circles
To draw a circle:
1. Draw > 2D Create Tools > Circular Region, or click the corresponding toolbar button
(see Table 10 on page 17).
2. Drag to draw the radius of the circle in the view window.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the center point and the radius.
The corresponding Scheme command is:
(sdegeo:create-circular-sheet position radius material-name region-name)
For example:
(sdegeo:create-circular-sheet (position 0 0 0) 0.01 "Silicon" "R.Nanowire")
55
Ellipses
To draw an ellipse:
1. Draw > 2D Create Tools > Elliptical Region, or click the corresponding toolbar button
(see Table 10 on page 17).
2. Drag to draw the major axis in the view window. Then, release the mouse button and move
the pointer to select the width of the ellipse.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the center point, the endpoint of the major axis, as well as the ratio between the major and
the minor axes.
The corresponding Scheme command is:
(sdegeo:create-elliptical-sheet position position ratio material-name
region-name)
For example:
(sdegeo:create-elliptical-sheet (position 0 0 0) (position 1 0 0) 0.5 "Silicon"
"R.Ellipse")
Ruled Regions
A ruled region is a shape that is defined by two edges. The region is created by connecting the
endpoints of the two edges.
To create a ruled region:
1. From the Selection Level list, choose Select Edge.
2. Draw > 2D Create Tools > Ruled Region.
3. Select the edge and hold the Shift key to select the second edge.
The corresponding Scheme command is:
(sdegeo:create-ruled-region edge-list material-name region-name)
For example:
(sdegeo:create-rectangle (position -1.0 0.0 0) (position 1.0 1.0 0) "Silicon"
"R.Substrate")
(sdegeo:create-rectangle (position -0.5 0.0 0) (position 0.5 -0.05 0) "Oxide"
"R.Gox")
56
Figure 20
Generating ruled regions using linear edges: original structure (left), after adding
the first ruled region (middle), and after adding the remaining two ruled regions
(right)
Ruled regions can be created only for 2D models. The edges that are used for creating the ruled
region do not have to be linear. Figure 21 shows such a case. The inserted ruled region (ruled
region I) was created between two circular edges, which were created by a filleting operation.
Selected Edges II
Selected Edges I
Figure 21
57
Editing 2D Shapes
Adding a Vertex in 2D
To add a vertex:
1. Edit > 2D Edit Tools > Add Vertex, or click the corresponding toolbar button (see Table 9
on page 16).
2. Click a position on an edge where the vertex is to be placed.
The corresponding Scheme command is:
(sdegeo:insert-vertex position)
For example:
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0)
"Silicon" "region_1")
(sdegeo:insert-vertex (position 0.5 1.0 0.0))
Vertices are added to existing 2D regions in such a way that model conformity is maintained.
For regions sharing a common edge or an edge segment, the vertex is inserted onto both edges,
splitting the edges. Added vertices always are inserted onto the closest edge, by projecting the
inserted vertex to the nearest edge.
NOTE
58
Moving a Vertex in 2D
To move a vertex:
1. Edit > 2D Edit Tools > Move Vertex, or click the corresponding toolbar button (see
Table 9 on page 16).
2. Drag the vertex to the required position.
The corresponding Scheme command is:
(sdegeo:move-vertex vertex position)
For example:
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon"
"region_1")
(sdegeo:move-vertex (car (find-vertex-id (position 0 0 0)))
(position 0.25 0.25 0))
For example:
(define BODY (sdegeo:create-reg-polygon (position 0 0 0) 1 10 0 "Silicon"
"region_1"))
(sdegeo:move-vertex (sde:window-select-2d 0 -1.1 1.1 1.1 BODY "vertex")
(gvector 1 0 0))
NOTE
59
Moving a vertex is allowed only to such an extent that the expected operation results in a
topologically correct 2D region, that is, crossing edges are not allowed. If a vertex belongs to
multiple regions, all regions are modified accordingly.
For example:
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon"
"region_1")
(sdegeo:move-edge (car (find-edge-id (position 1 0.5 0))) (gvector 0.5 0.5 0))
NOTE
This operation is available only for 2D regions. Only linear edges can
be moved and only when all connecting edges are linear as well. The
edges are moved like rigid bodies (that is, all connecting edges are
moved as well). The Exact Coordinates mode can be used to precisely
control the new location.
If the new location of the moved region is such that it overlaps other regions, the overlaps are
removed automatically following the active Boolean overlap control rule.
Moving Regions in 2D
To move one or more regions in 2D:
1. Edit > 2D Edit Tools > Move Region, or click the corresponding toolbar button (see
Table 9 on page 16).
2. Select one region (or more regions by holding the Ctrl key). Release the Ctrl key, and drag
the regions to the required position.
The corresponding Scheme command is:
(sdegeo:move-2d-regions body | body-list gvector)
60
For example:
(define mb1 (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0)
"Silicon" "region_1"))
(sdegeo:move-2d-regions mb1 (gvector 1 1 0)
NOTE
If the new locations of the moved regions are such that they overlap other regions, the overlaps
are removed automatically following the active Boolean overlap control rule.
Deleting Vertices in 2D
To delete one or more vertices:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Vertex.
3. Select the vertex and hold the Shift key to select additional vertices, or drag a box around
a set of vertices.
4. Edit > 2D Edit Tools > Delete Vertex, or press the Delete key.
The corresponding Scheme command is:
(sdegeo:delete-vertices vertex-list)
1.0 1.0 0)
0.4 1.1 0)
0.0 0.0 0))
"all" "vertex"))
61
Rounding in 2D
To round one or more corners of a 2D region:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Vertex.
3. Select the vertex and hold the Shift key to select additional vertices, or drag a box around
a set of vertices.
4. Edit > 2D Edit Tools > Fillet.
5. Enter a fillet radius in the dialog box.
If the parameter fillet-radius was set before performing this operation (using Edit >
Parameters), this dialog box is suppressed, and the given value of fillet-radius is
used instead.
The corresponding Scheme command is:
(sdegeo:fillet-2d vertex-list radius)
For example:
(sdegeo:create-rectangle (position 0 0 0.0) (position 1 1 0.0) "Silicon"
"region_1")
(sdegeo:fillet-2d (list
(car (find-vertex-id (position 1 0 0)))
(car (find-vertex-id (position 0 0 0)))) 0.4)
NOTE
fillet-radius=0.4
fillet-radius=0.2
Rectangle 1 x 1
Figure 22
62
Rounded Rectangle
Chamfering in 2D
To chamfer one or more corners of a 2D region:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Vertex.
3. Select the vertex and hold the Shift key to select additional vertices, or drag a box around
a set of vertices.
4. Edit > 2D Edit Tools > Chamfer.
5. Enter a chamfer distance in the dialog box.
If the parameter chamfer-dist was set before performing this operation (using Edit >
Parameters), this dialog box is suppressed, and the given value of chamfer-dist is used
instead.
The corresponding Scheme command is:
(sdegeo:chamfer-2d vertex-list chamfer-dist)
For example:
(sdegeo:create-rectangle (position 0 0 0.0) (position 1 1 0.0) "Silicon"
"region_1")
(sdegeo:chamfer-2d (list
(car (find-vertex-id (position 1 0 0)))
(car (find-vertex-id (position 0 0 0)))) 0.4)
chamfer-distance = 0.2
chamfer-distance = 0.4
chamfer-distance = 0.2
Rectangle 1 x 1
Figure 23
NOTE
Chamfered Rectangle
63
Cutting in 2D
To cut out a rectangular part from a 2D structure:
1. Edit > 2D Edit Tools > 2D Cut.
2. Drag to draw the diagonal of the rectangle in the view window.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the first vertex and second vertex of the diagonal.
The corresponding Scheme command is:
(sdegeo:2D-cut position position)
The argument list contains the two corner positions of the rectangular area. All regions outside
of this rectangle are removed from the model.
For example:
(sdegeo:create-circular-sheet (position 0 0 0) 1 "Silicon" "region_1")
(sdegeo:2D-cut (position 0 -1.1 0.0) (position 0.8 1.1 0.0))
Splitting Structures in 2D
To split one or more 2D regions by a polygonal line:
1. Edit > 2D Edit Tools > Polygonal Region Split, or click the corresponding toolbar button
(see Table 9 on page 16).
2. Click at each vertex of the polygonal line. To finish drawing the polygonal line, click the
middle mouse button. (Press both buttons when using a two-button mouse.)
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates for
each vertex.
The first vertex and last vertex of the defined polygonal line snap to the closest edge or vertex
of the existing model. Unique region names are given to the split-off parts of the original
bodies.
The corresponding Scheme command is:
(sdegeo:polygonal-split position-list)
64
For example:
(sdegeo:create-rectangle (position -1.0 0.0 0.0) (position 1.0 1.0 0.0)
"Silicon" "region_1")
(sdegeo:create-rectangle (position -1.0 -0.1 0.0) (position 1.0 0.0 0.0)
"SiO2" "region_2")
(sdegeo:create-rectangle (position -1.0 -0.1 0.0) (position 1.0 -0.7 0.0)
"PolySi" "region_3")
(sdegeo:polygonal-split (list
(position -0.25 -1 0) (position -0.25 0.1 0) (position 0 0.2 0)
(position 0.25 0.1 0) (position 0.25 -1 0)))
Figure 24
Splitting a device using a polygonal line segment: original structure (left) and after
the split operation (right)
Simplifying 2D Structures
Sentaurus Structure Editor has a set of functions to simplify 2D structures. Such boundary
simplification is sometimes advantageous for structures generated by other tools such as
Sentaurus Process. Examples of such simplifications are aligning vertices, removing collinear
edges, and breaking nonaxis-aligned edges into axis-aligned staircases. In general, the
subsequent meshing tool will generate grids with fewer nodes if the boundary has fewer points
and if most edges are axis aligned.
Aligning Vertices in 2D
To align vertices to an axis horizontally (or vertically):
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Vertex.
3. Select the vertex and hold the Shift key to select additional vertices, or drag a box around
a set of vertices.
4. Edit > 2D Edit Tools > Align Vertices to Horizontal (or Align Vertices to Vertical).
5. Click to select the horizontal (or vertical) alignment level.
65
For example:
(sdegeo:create-polygon (list
(position 0.0 1.0 0) (position 1.0
(position 0.8 0.1 0) (position 0.6
(position 0.2 -0.1 0) (position 0.0
"Silicon" "region_1")
(define VERTICES (sde:window-select-2d
(sdegeo:align-horizontal VERTICES 0.0)
Figure 25
0.0 0)
0.1 0)
1.0 0))
Aligning vertices horizontally: original structure (left) and after alignment (right).
For better viewing, the structure is shown as a wireframe.
To automatically align the selected vertices to the average y-position (or x-position):
Edit > 2D Edit Tools > Aut. Align Vertices to Horizontal (or Aut. Align Vertices to
Vertical).
To define the line, click at the starting point and drag to the endpoint.
The corresponding Scheme command is:
(sdegeo:align-to-line vertex-list starting-position end-position)
66
For example:
(sdegeo:create-polygon (list
(position 0.0 0.0 0) (position 1.0 0.0 0) (position 1.0 1.0 0)
(position 0.8 1.1 0) (position 0.6 0.9 0) (position 0.4 1.1 0)
(position 0.2 0.9 0) (position 0.0 1.0 0) (position 0.0 0.0 0))
"Silicon" "region_1")
(define VERTICES (sde:window-select-2d -0.1 0.8 1.1 1.2 "all" "vertex"))
(sdegeo:align-to-line VERTICES (position 0.0 0.7 0) (position 1.0 1.3 0))
NOTE
The command moves the vertices along the normal to the specified line.
Therefore, both the x-coordinates and y-coordinates can be altered by
this operation.
When the vertices have been aligned, the now redundant vertices can be removed by using
either vertex deletion (see Deleting Vertices in 2D on page 61) or edge removal (see Merging
Collinear Edges on page 68).
Selected Vertices
Figure 26
Selected Vertices
Figure 27
67
For example:
(sdegeo:create-rectangle (position 0.0 0.0 0) (position 1.0 1.0 0) "Silicon"
"region_1")
(sdegeo:insert-vertex (position 0.3 0.0 0))
(sdegeo:insert-vertex (position 0.0 0.3 0))
(sdegeo:insert-vertex (position 0.0 0.6 0))
(define EDGES (sde:window-select-2d -0.1 -0.1 1.1 0.8 "all" "edge"))
(sdegeo:delete-collinear-edges EDGES)
This command removes edges only if they are exactly collinear. For noisy boundaries:
1. Edit > 2D Edit Tools > Delete Nearly Collinear Edges.
2. In the dialog box, enter a threshold distance.
Two edges (Edge 1 and Edge 2) are considered to be collinear if the distance D , defined as
shown in Figure 28, is less than the specified distance.
Edge 1
D
Edge 2
Figure 28
68
For example:
(sdegeo:create-rectangle (position 0.0 0.0 0) (position 1.0 1.0 0) "Silicon"
"region_1")
(sdegeo:insert-vertex (position 0.25 0.0 0))
(sdegeo:insert-vertex (position 0.50 0.0 0))
(sdegeo:insert-vertex (position 0.75 0.0 0))
(sdegeo:move-vertex (find-vertex-id (position 0.5 0.0 0))
(position 0.5 0.1 0))
(define EDGES (sde:window-select-2d -0.1 -0.1 1.1 0.2 "all" "edge"))
(sdegeo:delete-nearly-collinear-edges EDGES 0.2)
To remove all edges shorter than a given length by merging them with adjacent edges:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Edge.
3. Select the edge and hold the Shift key to select additional edges, or drag a box around a set
of edges.
4. Edit > 2D Edit Tools > Delete Short Linear Edges.
5. Enter the minimal-allowed edge length in the dialog box.
The corresponding Scheme command is:
(sdegeo:delete-short-edges edge-list minimal-edge-length)
For example:
(sdegeo:create-rectangle (position 0.0 0.0 0) (position 1.0 1.0 0) "Silicon"
"region_1")
(sdegeo:insert-vertex (position 0.1 0.0 0))
(sdegeo:insert-vertex (position 0.0 0.1 0))
(sdegeo:insert-vertex (position 0.0 0.2 0))
(define EDGES (sde:window-select-2d -0.1 -0.1 1.1 0.3 "all" "edge"))
(sdegeo:delete-short-edges EDGES 0.2)
NOTE
This command preserves vertices at which the angle between two edges
is 90 or more (ridges). At rounded corners. this command may result
in the unintended removal of the entire corner.
69
NOTE
works with vertices instead of edges, but it uses the same algorithm for the selected edges to
be removed. The command:
(sdegeo:dnce normal-angular-cut-off)
70
For example:
(define BODY (sdegeo:create-rectangle (position 0.0 0.0 0) (position 1.0 1.0 0)
"Silicon" "R.Substrate"))
(sdegeo:insert-vertex (position 0.1 0.0 0))
(sdegeo:insert-vertex (position 0.0 0.1 0))
(sdegeo:insert-vertex (position 0.0 0.2 0))
(sdegeo:move-vertex (find-vertex-id (position 0 0 0)) (position 0.03 0.03 0))
(sdegeo:del-short-edges BODY 0.2 10)
(merge-collinear-edges-2d "all")
; --> 244 vertices
Original Model
(length (entity:vertices (get-body-list))) ; -> 355
Figure 29
Number of edges
3723
Figure 30
230
71
For example:
(sdegeo:create-polygon (list
(position 0 0 0) (position 0.7 0.1 -0) (position 0.8 0.6 -0)
(position 0.1 0.7 -0) (position -0.2 0.4 -0) (position 0 0 0))
"Silicon" "region_1")
(define EDGES (sde:window-select-2d -0.5 -0.5 1.5 1.5 "all" "edge"))
(sdegeo:break-nearly-axis-aligned-edges EDGES 15)
Figure 31
NOTE
72
Breaking nearly axis-aligned edges into staircases: original structure (left) and
after the edge-breaking operation (right)
Axis-aligned corner
45 degree threshold
20 degree threshold
Axis-aligned boundary
Original boundary
Figure 32
For example:
(sdegeo:create-polygon (list
(position 0.0 0.0 0) (position 1.0 0.0 0) (position 1.0 1.0 0)
(position 0.8 1.02 0) (position 0.6 0.98 0) (position 0.4 1.02 0)
(position 0.2 0.98 0) (position 0.0 1.0 0) (position 0.0 0.0 0))
"Silicon" "region_1")
(define EDGES (sde:window-select-2d -0.1 -0.1 1.1 1.1 "all" "edge"))
(sdegeo:max-edge-length EDGES)
--> 1
(sdegeo:min-edge-length EDGES)
--> 0.200997512422418
(sdegeo:average-edge-length EDGES)
--> 0.501734670809496
73
Table 20 lists the boundary-simplifying Scheme functions that are also available from the GUI.
Table 20
Scheme command
Description
merge-collinear-edges-2d
sde:window-select-2d
sdegeo:align-horizontal
sdegeo:align-horizontal-aut
sdegeo:align-to-line
sdegeo:align-vertical
sdegeo:align-vertical-aut
sdegeo:average-edge-length
sdegeo:break-nearly-axis-aligned-edges
sdegeo:delete-collinear-edges
sdegeo:delete-edges
sdegeo:delete-nearly-collinear-edges
sdegeo:delete-short-edges
Deletes all edges from an edge list that are shorter than the
specified value.
sdegeo:delete-vertices
sdegeo:del-short-edges
sdegeo:max-edge-length
sdegeo:min-edge-length
sdegeo:prune-vertices, sdegeo:dnce
NOTE
74
Basic 3D Shapes
Cuboids
To draw a cuboid:
1. Draw > 3D Create Tools > Create Cuboid, or click the corresponding toolbar button (see
Table 12 on page 17).
2. Drag to draw the diagonal of the xy rectangle in the view window.
3. Release the mouse button and move the pointer to the top z-coordinate of the cuboid and
click.
4. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the first vertex and second vertex of the space diagonal.
The corresponding Scheme command is:
(sdegeo:create-cuboid position position material-name region-name)
For example:
(sdegeo:create-cuboid (position 0 0 0) (position 1 2 3) "Silicon"
"R.Substrate")
NOTE
Cylinders
To draw a cylinder:
1. Draw > 3D Create Tools > Create Cylinder, or click the corresponding toolbar button
(see Table 12 on page 17).
2. Drag to draw the radius of the base xy circle in the view window.
3. Release the mouse button and move the pointer to the top z-coordinate of the cylinder and
click.
4. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the first vertex and second vertex of the center axis as well as the radius.
75
For example:
(sdegeo:create-cylinder (position 0 0 0) (position 0 0 1) 2 "Silicon"
"region_1")
NOTE
Spheres
To draw a sphere:
1. Draw > 3D Create Tools > Create Sphere, or click the corresponding toolbar button (see
Table 12 on page 17).
2. Drag to draw the radius of the base xy circle in the view window.
3. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the center of the sphere as well as the radius.
The corresponding Scheme command is:
(sdegeo:create-sphere position radius material-name region-name)
For example:
(sdegeo:create-sphere (position 0 0 2) 2 "Silicon" "region_1")
NOTE
76
Ellipsoids
To draw an ellipsoid:
1. Draw > 3D Create Tools > Create Ellipsoid, or click the corresponding toolbar button
(see Table 12 on page 17).
2. Drag to draw the main axis of the ellipsoid in the xy plane in the view window.
3. Release the mouse button and move the pointer to define the secondary axis of the ellipsoid
and click.
4. In Exact Coordinates mode, a dialog box is displayed where you enter the coordinates of
the center of the ellipsoid, the endpoint of the major axis, as well as the ratio between the
major and the minor axes. (The two minor axes are degenerate.)
The corresponding Scheme command is:
(sdegeo:create-ellipsoid position position radius material-name region-name)
For example:
(sdegeo:create-ellipsoid (position 1 2 3) (position 1 2 5) 2 "Silicon"
"region_1")
NOTE
sdegeo:create-cone
sdegeo:create-prism
sdegeo:create-pyramid
sdegeo:create-torus
77
Editing 3D Shapes
Chamfering Edges in 3D
To chamfer (flatten) the edges of a 3D structure:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Edge (or Select Vertex).
3. Select the edge (or vertex) and hold the Shift key to select additional edges (or vertices), or
drag a box around a set of edges (or vertices).
4. Edit > 3D Edit Tools > Chamfer.
5. Enter a chamfer distance in the dialog box.
If the parameter chamfer-dist was set before performing this operation (using Edit >
Parameters), this dialog box is suppressed, and the given value of chamfer-dist is used
instead.
The corresponding Scheme command is:
(sdegeo:chamfer entity-list chamfer-dist)
For example:
(sdegeo:create-cuboid (position 0
(sdegeo:chamfer (list
(car (find-vertex-id (position
(car (find-vertex-id (position
(car (find-vertex-id (position
(car (find-vertex-id (position
Cuboid 1 x 1 x 1
Figure 33
78
0
1
0
1
1)))
1)))
1)))
1)))) 0.2)
chamfer-dist=0.2
NOTE
Rounding Edges in 3D
To round the edges of a 3D structure:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Edge (or Select Vertex).
3. Select the edge (or vertex) and hold the Shift key to select additional edges (or vertices), or
drag a box around a set of edges (or vertices).
4. Edit > 3D Edit Tools > Fillet.
5. Enter a fillet radius in the dialog box.
If the parameter fillet-radius was set before performing this operation (using Edit >
Parameters), this dialog box is suppressed, and the given value of fillet-radius is
used instead.
The corresponding Scheme command is:
(sdegeo:fillet entity-list fillet-radius)
For example:
(sdegeo:create-cuboid (position 0
(sdegeo:fillet (list
(car (find-vertex-id (position
(car (find-vertex-id (position
(car (find-vertex-id (position
(car (find-vertex-id (position
0
1
0
1
1)))
1)))
1)))
1)))) 0.2)
and:
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "region_1")
(sdegeo:fillet (list (car (find-edge-id (position 0 0 0.5)))) 0.2)
NOTE
79
fillet-radius=0.2
Cuboid 1 x 1 x 1
Figure 34
Rounded Corner
Rounded Edge
Edge filleting in 3D
Tapering
To taper one or more faces of a 3D structure:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Face.
3. Select the face and hold the Shift key to select additional faces, or drag a box around a set
of faces.
4. Edit > 3D Edit Tools > Taper.
5. Enter the draft plane center, the draft plane normal, and the draft angle in the Taper Faces
dialog box (see Figure 35).
Figure 35
The Taper Faces dialog box is initialized with the following default values: If only one face is
selected, the draft plane center is initialized, using the barycentric coordinates of the selected
face.
80
(a)
(b)
(c)
(d)
Figure 36
Tapering example
Figure 36 (a) shows a cuboid where the side face to be tapered is blue. For reference, the normal
vector of this face is also shown.
The tapering is performed with respect to an auxiliary plane, the so-called draft plane. This
plane is defined by the draft plane center point and the draft plane normal vector. Figure 36 (b)
shows the draft plane in green together with the draft plane normal vector originating from the
draft plane center point. In addition, the rotation axis, which is defined as the intersection
between the face plane (blue) and the draft plane (green), is shown.
81
With respect to these planes and axes, now two distinct rotations are performed. Figure 36 on
page 81 (c) shows the new face location after the first rotation (equivalent to tapering with an
angle of 0 ). The face is rotated around the axis such that the new face is orthogonal to the
draft plane.
Figure 36 (d) shows the face after the second rotation, with an angle of 45 . The rotation
direction is given by the right-hand rule: To determine the direction of the axis, align the thumb
of your right hand with the face plane normal and the index finger with the draft plane normal.
Then extend your middle finger orthogonally to both. This finger points now in the direction
of the axis vector. Now, point the thumb of your right hand into the axis direction and form a
fist with all other fingers. These fingers now curl like a rotation with a positive angle.
The following Scheme commands produced the graphics in Figure 36:
(sdegeo:create-cuboid (position 0.0 0.0 -0.5) (position 1.0 2.0 0.5) "Silicon"
"region_1")
(define FACE (find-face-id (position 0.0 0.5 0.0)))
(entity:set-color FACE BLUE)
(define FACE_CENTER (cdr (list-ref (face:prop (car FACE)) 2)))
(define FACE_NORMAL (face:plane-normal (car FACE)))
(wire-body:points
(list FACE_CENTER (position:offset FACE_CENTER FACE_NORMAL)))
; Figure (a)
(define DRAFT_CENTER (position -1.0 0.0 0.0))
(define DRAFT_NORMAL (gvector -1.0 2.0 0.0))
(wire-body:points
(list DRAFT_CENTER (position:offset DRAFT_CENTER DRAFT_NORMAL)))
(face:planar-disk DRAFT_CENTER DRAFT_NORMAL 2)
(wire-body:points (list (position 0.0 0.5 -2.0) (position 0.0 0.5 2.0)))
; Figure (b)
(sdegeo:taper-faces FACE DRAFT_CENTER DRAFT_NORMAL 0)
; Figure (c)
(sdegeo:taper-faces FACE DRAFT_CENTER DRAFT_NORMAL 45)
; Figure (d)
The tapering process, based on two independent rotations, allows you to perform two distinct
types of taper operation. The first type of tapering results in truncated pyramidtype shapes,
where, for example, all faces are bent inwards. For this kind of tapering, the draft normal vector
is orthogonal to the face normal vectors and the rotation angle is nonzero.
For example:
(sdegeo:create-cuboid (position
"region_1")
(sdegeo:taper-faces (list
(car (find-face-id (position
(car (find-face-id (position
(car (find-face-id (position
82
Figure 37
Figure 38 illustrates the effect of the use of different draft plane centers. For the operations, the
same draft plane normal and draft angle were used.
Draft Plane Normal
Draft Angle
Draft Plane Center
Figure 38
The second type of tapering is similar to applying a sheer force to the body. For this kind of
tapering, the draft normal vector is not orthogonal to the face normal vectors, but the rotation
angle is zero.
For example:
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 1.0 1.0 1.0) "Silicon"
"region_1")
(sdegeo:taper-faces (list
(car (find-face-id (position 0.5 0.0 0.5)))
(car (find-face-id (position 1.0 0.5 0.5)))
(car (find-face-id (position 0.5 1.0 0.5)))
(car (find-face-id (position 0.0 0.5 0.5))))
(position 0.5 0.5 0.5) (gvector 0.5 0.5 1) 0)
83
Figure 39
Sheer-type tapering
Even more general tapering can be obtained by mixing both fundamental types.
NOTE
Vent faces can only be added if there is a face on the original model that shares a vertex with
the mergeable edge, that does not have the mergeable edge in its boundary, and that will be
adjacent to the vent faces after the taper. Vent faces can also be added at tangent edges when
one of the two faces that share the edge is being tapered. However, a vent face will only be
added if there is no intersection between the surface of the face that is being tapered and the
surface of the face that is not being tapered.
Figure 40
84
Figure 41
Face tapering
85
Initial Model
Figure 42
Step 1
Step 2
Step 3
Step 4
Face tapering
For example:
(sdegeo:create-polyline-wire (list
(position 0.0 0.0 0.0) (position 1.0 0.0 0.0) (position 1.0 1.0 0.0)
(position 1.0 1.0 1.0) (position 0.0 1.0 1.0) (position 0.0 1.0 0.0)))
To draw a spline interpolated wire, use Draw > 2D Create Tools > Spline, or click the
corresponding toolbar button (see Table 10 on page 17).
86
For example:
(sdegeo:create-spline-wire (list
(position 0.0 0.0 0.0) (position 1.0 0.0 0.0) (position 1.0 1.0 0.0)
(position 1.0 1.0 1.0) (position 0.0 1.0 1.0) (position 0.0 1.0 0.0)))
Extruding
To extrude a 2D object or a face of a 3D object:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Face.
3. Select the face and hold the Shift key to select additional faces, or drag a box around a set
of faces.
4. Edit > 3D Edit Tools > Extrude.
5. Enter an extrusion distance in the dialog box.
If the parameter hext was set before performing this operation (using Edit > Parameters),
this dialog box is suppressed, and the given value of hext is used instead.
Figure 43
For example:
(sdegeo:create-rectangle (position 0.0 0.0 0) (position 1.2 1.0 0)
"Silicon" "region_1")
(sdegeo:create-rectangle (position 0.4 1.0 0) (position 0.8 1.1 0)
"Oxide" "region_2")
87
Figure 44
Extruded Faces
Figure 45
NOTE
88
Sweeping a 2D Object
A 3D object can be created by sweeping a 2D object along a path. A 3D object can also be
modified by sweeping a set of faces of the 3D object. The sweep path can be defined in several
different ways. In the simplest case, only the sweep distance is given and the sweep direction
will be normal to the face. The sweep distance and sweep direction can also be defined using
a sweep vector. In addition, the sweep path can be defined by a rotation around an axis or
explicitly by a wire body.
Sweeping and extruding can also be applied to Ref/Eval windows. If a swept Ref/Eval window
is used to place a submesh doping profile, information about the sweep creation is stored in
the .cmd file, so that the mesh generator can evaluate the swept 2D doping profile in 3D. In the
case of other doping profile types, the resulting swept Ref/Eval window (without sweep
information) is stored in the .cmd file, requiring that these elements must be valid reference
elements (doping baseline elements) or evaluation windows. The sweep operation transforms
the 2D edge contacts to 3D face contacts.
The sweep options allow additional control over the sweeping behavior and enable drafting,
twisting, and other advanced behaviors.
Sweeping is a complex operation involving several different types. In the following sections,
the supported sweep types are introduced.
Sweep Distance
The sweep distance operation is similar to extrusion. Faces of 2D bodies or 3D bodies can be
swept by a distance. The sweep distance option can be used with various sweep options.
To sweep a 2D object or a face of a 3D object using distance sweeping:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Face.
3. Select the face and hold the Shift key to select additional faces, or drag a box around a set
of faces.
4. Edit > 3D Edit Tools > Sweep.
The Sweep Operations dialog box is displayed.
5. Click Select Profiles. The entity IDs of the selected profiles are displayed in the Sweep
Profiles field.
6. Click the Sweep Distance tab.
7. Select the Selected Sweep Method option.
Sentaurus Structure Editor User Guide
D-2010.03
89
Figure 46
The examples in Figure 47 on page 91 are generated using the following Scheme commands:
(define FACE (sdegeo:create-reg-polygon (position 0 0 0) 1 6 0 "Oxide"
"region_1"))
(sdegeo:translate-selected FACE (transform:translation (gvector 3 2 0)) #t 3)
(sdegeo:sweep (sde:find-reg-region "region_1_t1_r1") 0.6
(sweep:options "solid" #t "rigid" #f "miter_type" "default"
"draft_angle" 40.0 "gap_type" "extended"))
(sdegeo:sweep (sde:find-reg-region "region_1_t1_r2") 0.6
(sweep:options "solid" #t "rigid" #f "miter_type" "default"
"draft_angle" 40.0 "gap_type" "rounded"))
90
Draft Angle
Initial 2D Body
Figure 47
Extended Faces
Rounded Faces
Natural Condition
Sweep distance with a draft angle (40o) using different gap-type options
91
Figure 48
The examples in Figure 49 are generated using the following Scheme commands:
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Oxide" "region_1")
(sdegeo:sweep (find-face-id (position 0.5 1 0.5)) (gvector 0.5 0.5 0)
(sweep:options "solid" #t "rigid" #f "miter_type" "default"))
(sdegeo:sweep (find-face-id (position 1.0 1.5 0.5)) (gvector -0.5 0.5 0)
(sweep:options "solid" #t "rigid" #f "miter_type" "default"))
Sweep Vector
Selected Face
Figure 49
92
Selected Face
93
Figure 50
The examples in Figure 51 on page 95 are generated using the following Scheme commands:
(sdegeo:create-rectangle (position 0 0 0.0) (position 1 2 0.0) "Silver"
"region_1")
(define NEWVERT (sdegeo:insert-vertex (position 0.5 2 0)))
(sdegeo:move-vertex NEWVERT (position 0.5 2.3 0))
(sdegeo:fillet-2d (sde:window-select-2d -0.1 1.9 1.1 2.4 "all" "vertex") 0.2)
(sdegeo:translate-selected (find-body-id (position 0.5 0.5 0))
(transform:translation (gvector 2 0 0)) #t 2)
(sdegeo:sweep (find-face-id (position 2.5 0.5 0)) (position 2 0 0)
(gvector 0 1 0)
(sweep:options "solid" #t "sweep_angle" 60 "rigid" #f "miter_type"
"default"))
(sdegeo:sweep (find-face-id (position 4.5 0.5 0)) (position 3 0 0)
(gvector 0 1 0)
(sweep:options "solid" #t "sweep_angle" 40 "rigid" #f "miter_type"
"default"))
94
Initial Face
Figure 51
Corner Sweep
Use this option to design crown moldings, corbels, and so on.
To perform a corner sweep:
1. Follow the procedure in Regular Sweep on page 93.
2. In Step 9, select the Sweep Corner option.
3. Enter or pick a point on the sweep axis.
The axis direction is determined automatically, and the sweep angle for corner sweeps is
always 90 .
The sweep is performed in such a way that the resulting shape contains a solid angle.
NOTE
If the selection of the sweep axis does not allow for the creation of a
solid angle, the sweep operation is suppressed.
The example in Figure 52 on page 96 is generated using the following Scheme commands:
(sdegeo:create-rectangle (position 0 0 0.0) (position 1 2 0.0) "Silver"
"region_1")
(define NEWVERT (sdegeo:insert-vertex (position 0.5 2 0)))
(sdegeo:move-vertex NEWVERT (position 0.5 2.3 0))
(sdegeo:fillet-2d (sde:window-select-2d -0.1 1.9 1.1 2.4 "all" "vertex") 0.2)
(sdegeo:sweep-corner (find-face-id (position 0.5 0.5 0))
(position -0 4 0) (gvector 1 0 0))
95
Figure 52
Corner sweeping around an axis; the initial profile is the same as in Figure 51 on
page 95
Figure 53
Figure 54
Wire sweep: initial profile with sweep wire (left) and final swept body (right)
97
Sweep Options
The sweep operation can be performed with different options that affect the outcome of the
operation. These options are controlled by the sweep:options command. For example, when
a profile is swept along a path, the profile can remain parallel to the original profile (rigid
sweep) or can follow the path in a more natural way, following the curvature of the path,
remaining perpendicular to the path during sweeping. The following sections give an overview
of the available sweep options.
Rigid Sweep
A rigid sweep is one in which the profile that is swept is translated, but not rotated, along the
sweep path. It accomplishes a rigid extrusion of a profile along a path. The rigid option
specifies whether to make the cross sections of a sweep parallel to each other. The default is
FALSE, which means the cross sections are perpendicular to the sweep path. No checks are
made when a rigid sweep is performed; consequently, the resulting surface is self-intersecting
if the given path is closed or if the direction of the path changes by more than 180 .
Mitering
The miter option determines how a corner miter is created during a sweep operation. The
available mitering options are:
new
Reflects the profile to the other side of the corner up to the discontinuous point.
The two sides are then extended and intersected, and new edges are formed as
necessary. The ending profile is the same as the starting profile. The new option
is the default mitering.
old
Intersects the plane that is perpendicular to the path at the half angle of the corner.
The resulting profile on the plane is then swept continuously along the path.
crimp
Reflects the profile to the other side of the corner up to the discontinuous point.
The portions of the two sides that do not intersect are connected using a smooth
rotation about the discontinuous point.
bend
Bend mitering requires the specification of a minimum radius to fillet the path. The
result is a smooth, curved junction. The minimum radius must be positive.
The new setting makes the sweep operation create miters by sweeping each G1 part of the path
with a copy of the profile and then filling in the gaps with linear-extended parts that are sliced
at the miter planes.
The crimp setting creates miters between profiles swept along G1-continuous path segments,
filling in gaps by revolving the profile.
98
G1 continuity refers to geometric continuity of the first degree (that is, the direction of the
tangent vector is continuous). Two curves are G1-continuous at a given point if the directions
of the tangent vectors at their joining point are the same, even though the vector magnitudes
may differ (in the case of C1 continuity, the magnitudes are also the same). G1 continuity
means that the tangent lines are smoothly connected.
Figure 55
Mitering a corner with different options: (left) new and old give the same results
for the given example, (middle) crimp, and (right) bend
WIRE
"solid" #t "rigid" #f "miter_type" "new"))
WIRE
"solid" #t "rigid" #f "miter_type" "old"))
WIRE
"solid" #t "rigid" #f "miter_type" "crimp"))
WIRE
"solid" #t "rigid" #f "miter_type" "bend" 3.5))
99
Sweeping Examples
The following example illustrates the creation of a simple MOSFET with a nonaxis-aligned
gate stack using different sweep methods.
Sweep Distance
The substrate with two shallow trench isolations is created by sweeping the 2D cross section a
given distance:
(define SUB (sdegeo:create-rectangle
(position -2.0 0.0 0.0) (position 2.0 0.0 -1.0) "Silicon" "R.Sub"))
(sdegeo:set-default-boolean "ABA")
(define STI_L (sdegeo:create-rectangle
(position -2.0 0.0 0.0) (position -1.6 0.0 -0.5) "Oxide" "R.STI_L"))
(define STI_R (sdegeo:create-rectangle
(position 1.6 0.0 0.0) (position 2.0 0.0 -0.5) "Oxide" "R.STI_R"))
(sdegeo:sweep (list SUB STI_L STI_R) -4.0
(sweep:options "solid" #t "rigid" #f "miter_type" "default"))
Figure 56
100
Figure 57
In a third version, the 2D gate-stack cross section is swept along a wire rigidly:
(roll)
(sdegeo:sweep (list GOX POL) WIRE
(sweep:options "solid" #t "rigid" #t "miter_type" "default"))
In a final version, crimping is used to round the edges that are created along the sweep path:
(roll)
(sdegeo:sweep (list GOX POL) WIRE
(sweep:options "solid" #t "rigid" #f "miter_type" "crimp"))
(entity:delete WIRE)
Figure 58
Wire sweeping creates a meandering gate stack: default (left), rigid sweep
(middle), and crimping (right)
101
Figure 59
102
Skinning
A skinning operation can be used to create a 3D body that interpolates a series of wires or faces.
The given wires or faces define the cross sections to be interpolated by the resulting 3D body.
There must be at least two wire bodies or faces to be selected. The wires can be open or closed.
The wires are copies, that is, the originals remain. The wires can share endpoints and do not
have to be C1 continuous.
Default Skinning
To skin a set of wire bodies or 2D faces using the default options:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Face.
3. Edit > 3D Edit Tools > Skin.
The Skinning Operations dialog box is displayed.
4. Select the first face or wire in the view window, and click Get Wires/Faces.
The selected profile appears in the Wires list.
5. Repeat for all other wires and faces.
6. Enter additional skinning options as needed (go to http://doc.spatial.com/ for a list of
options).
7. Select the Delete Inputs option if the initial profiles are to be deleted.
8. Click OK.
103
Figure 60
The example in Figure 61 on page 107 (b) is generated using the following Scheme commands:
(define FACE_1 (sdegeo:create-elliptical-sheet
(position 0 2 0) (position 1 2 0) 0.5 "Silicon" "region_1"))
(sdegeo:set-active-work-plane "wp_yz")
(define FACE_2 (sdegeo:create-circular-sheet
(position 2 1 2) 0.5 "Silicon" "region_2"))
(sdegeo:set-active-work-plane "base")
(define FACES (list (car (entity:faces FACE_1)) (car (entity:faces FACE_2))))
(sdegeo:skin-wires FACES)
104
The example in Figure 61 on page 107 (c) is generated using the following Scheme commands:
(define FACE_1 (sdegeo:create-elliptical-sheet
(position 0 2 0) (position 1 2 0) 0.5"Silicon" "region_1"))
(sdegeo:set-active-work-plane "wp_yz")
(define FACE_2 (sdegeo:create-circular-sheet
(position 2 1 2) 0.5 "Silicon" "region_2"))
(sdegeo:set-active-work-plane "base")
(define FACES (list (car (entity:faces FACE_1)) (car (entity:faces FACE_2))))
(sdegeo:skin-wires-normal FACES "first_normal")
The example in Figure 61 (d) is generated using the following Scheme commands:
(define FACE_1 (sdegeo:create-elliptical-sheet
(position 0 2 0) (position 1 2 0) 0.5 "Silicon" "region_1"))
(sdegeo:set-active-work-plane "wp_yz")
(define FACE_2 (sdegeo:create-circular-sheet
(position 2 1 2) 0.5 "Silicon" "region_2"))
(sdegeo:set-active-work-plane "base")
(define FACES (list (car (entity:faces FACE_1)) (car (entity:faces FACE_2))))
(sdegeo:skin-wires-vectors FACES
(list (gvector -0.5 0 1) (gvector 1 0 -0.5))
(list 2.0000 2.0000))
The example in Figure 61 (e) is generated with the same Scheme commands, but uses
magnitudes of 10.0 instead of 2.0.
105
The example in Figure 61 on page 107 (f) is generated using the following Scheme commands:
(define FACE_1 (sdegeo:create-elliptical-sheet
(position 0 2 0) (position 1 2 0) 0.5 "Silicon" "region_1"))
(sdegeo:set-active-work-plane "wp_yz")
(define FACE_2 (sdegeo:create-circular-sheet (position 2 1 2) 0.5 "Silicon"f
"region_2"))
(sdegeo:set-active-work-plane "base")
(define FACES (list (car (entity:faces FACE_1)) (car (entity:faces FACE_2))))
(define WIRE (sdegeo:create-spline-wire (list
(position -1.0 2.0 0.0) (position -1.0 2.0 1.0) (position 0.0 1.0 2.0)
(position 1.0 1.0 2.0) (position 2.0 1.5 1.0))))
(position 0.8 3.2 0.5) (position 2.0 3.2 0.5))))
(sdegeo:skin-wires-guides FACES WIRE)
106
(a)
(d)
Figure 61
(b)
(c)
(e)
(f)
Skinning option overview: (a) initial faces, with guide used in (e); (b) default
skinning; (c) skinning with first normal; (d) skinning with vectors, low magnitude;
(e) skinning with vectors, high magnitude; and (f) skinning with guide
Skinning Example
The following example illustrates how to use skinning to emulate line-edge roughness effects
in a MOSFET gate stack. First, a set of perturbed wires for the polygate and the gate-oxide
cross sections are created (see Figure 62 on page 108). Second, these wires are skinned and the
substrate is added.
The example is generated using the following Scheme commands:
(define index 0) (define PolWires (list)) (define OxiWires (list))
(define MakeWires (lambda (Xl Xr Yo)
(define PWname (string-append "PolWire_" (number->string index)))
(define OWname (string-append "OxiWire_" (number->string index)))
(define PWname (sdegeo:create-polyline-wire (list
(position
Xl
Yo 0.1) (position
Xr
Yo 0.1)
(position (- Xr 0.1) Yo 0.5) (position (+ Xl 0.1) Yo 0.5)
(position
Xl
Yo 0.1))))
(define OWname (sdegeo:create-polyline-wire (list
(position Xl Yo 0.0) (position Xr Yo 0.0) (position Xr Yo 0.1)
(position Xl Yo 0.1) (position Xl Yo 0.0))))
(set! index (+ index 1))
(set! PolWires (append PolWires (list PWname)))
(set! OxiWires (append OxiWires (list OWname)))
107
))
(MakeWires
(MakeWires
(MakeWires
(MakeWires
(MakeWires
-0.20
-0.23
-0.19
-0.16
-0.20
0.20
0.18
0.22
0.16
0.20
0.0)
0.2)
0.4)
0.6)
0.8)
Figure 62
Skinning example of MOSFET with line-edge roughness: wire bodies (left) and
final structure (right)
108
For example:
(define A (sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 2.0 1.0 1.0)
"Silicon" "region_1"))
(define B (sdegeo:create-cuboid (position 2.0 0.0 0.0) (position 3.0 3.0 1.0)
"Silicon" "region_2"))
(sdegeo:bool-unite (list A B))
Intersect
This operation is used if the direct ACIS Scheme functions are used to generate parts of the
structure or if the automatic overlap resolution is disabled.
The corresponding Scheme command is:
(sdegeo:bool-intersect body-list)
For example:
(sdegeo:set-default-boolean "XX")
(define A (sdegeo:create-rectangle (position 0.0 0.0 0) (position 3.0 2.0 0)
"Silicon" "region_1"))
(define B (sdegeo:create-circular-sheet (position 2.5 1.5 0) 1 "Silicon"
"region_2"))
(sdegeo:bool-intersect (list A B))
Figure 63
Explicit Boolean intersection: original structure (left) and after intersection (right)
109
Subtract
The first region in the body list is selected as the main region, then subsequent regions are
subtracted from the main region.
The corresponding Scheme command is:
(sdegeo:bool-subtract body-list)
For example:
(sdegeo:set-default-boolean "XX")
(define A (sdegeo:create-rectangle (position 0.0 0.0 0) (position 2.0 1.0 0)
"Silicon" "region_1"))
(define B (sdegeo:create-circular-sheet (position 0.5 0.8 0) 0.4
"Silicon" "region_2"))
(define C (sdegeo:create-circular-sheet (position 1.5 0.2 0) 0.4
"Silicon" "region_2"))
(sdegeo:bool-subtract (list A B C))
Figure 64
Explicit Boolean subtraction: original structure (left) and after subtraction (right)
110
If a list with more than one body is used, all bodies will be assigned the
same region name. Upon saving the boundary, the region will be made
unique.
For example, to change the material but preserve the region name:
(define A (sdegeo:create-rectangle (position 0.0 0.0 0) (position 3.0 2.0 0)
"Silicon" "region_1"))
(sde:add-material A "PolySilicon" (generic:get A "region"))
For example, to change the region name but to preserve the material:
(define A (sdegeo:create-rectangle (position 0.0 0.0 0) (position 3.0 2.0 0)
"Silicon" "region_1"))
(sde:add-material A (generic:get A "material") "region_new")
NOTE
If multiple bodies are selected, only the region name of the first selected
body is changed.
NOTE
111
Deleting Regions
To delete one or more regions:
1. Click the Select button (see Table 8 on page 16).
2. From the Selection Level list, choose Select Body.
3. Select the body and hold the Shift key to select additional bodies, or drag a box around a
set of bodies.
4. Edit > 2D Edit Tools > Delete Region, or press the Delete key or Backspace key, or rightclick and select Delete.
The corresponding Scheme command is:
(sdegeo:delete-region body-list)
For example:
(define BODY (sdegeo:create-cuboid (position 0.0 0.0 0.0)
(position 1.0 1.0 1.0) "Silicon" "region_1"))
(sdegeo:delete-region BODY)
NOTE
Separating Lumps
During model generation, Sentaurus Structure Editor never allows the generation of
overlapping regions (unless (sdegeo:set-default-boolean "XX") is used). When the
automatic region-naming feature is switched on, a region name is attached automatically to
each generated body. As a result of this, bodies with multiple lumps (disjoint 2D or 3D parts)
can be created. These disjoint lumps have the same region-name attribute.
Since this could cause a problem during meshing, these lumps must be separated and a unique
region name must be assigned to each lump. This is performed automatically when a boundary
file is exported.
To call the lump separation explicitly, for example, to refer to individual lumps of a multiplelump regions in a Scheme script, use Edit > Separate Lumps. The same action can be
performed by using the Scheme function (sde:separate-lumps).
112
As a result, two regions are created (region_1 and region_2). However, region_1 is
composed of two disjoint lumps. After (sde:separate-lumps), the region_1 regionname attribute is removed from the silicon region, and region_1_lump_1 is assigned as the
region name to the left lump of the silicon body, and region_1_lump_2 is assigned to the
right lump. The exported boundary file will have three regions with unique region names.
The function needs two arguments: a position argument, to place the cut plane, and a gvector
argument, to specify the cut plane normal. For example, the command:
(sdegeo:3d-cut (position 0.0 0.0 0.0) (gvector 1.0 1.0 0.0))
generates a 2D cut in such a way that the cut plane goes through 0.0 0.0 0.0, and the cut plane
is perpendicular to the 1.0 1.0 0.0 vector.
A third optional Boolean argument determines the placement of the newly created 2D
structure. When this argument is set to #f (default), the slice remains at its original location. If
the argument is set to #t, the slice will be moved to the xy plane at z = 0. In this way, a 2D slice
can be saved to a boundary file, without the need for additional explicit transformations.
A fourth optional Boolean argument controls whether the transformation (translation vector,
rotation matrix) is written to the tessellated 2D output DFISE boundary file. If the new
additional argument is not used or is set to #f, the translation vector is set to (0,0,0) and the
rotation matrix is set to the 3x3 unit matrix. If the fourth argument is set to #t, the translation
vector and transformation matrix in the DFISE boundary output file is set in such a way that
this affine transformation places the 2D cut in the proper position in 3D space where the cut
was made.
113
NOTE
Setting the translation vector and the rotation matrix correctly in the
DFISE boundary output is needed when the 2D cut will be meshed
using snmesh -C, which uses the affine transformation from the
DFISE boundary file during meshing to place the 2D cut in the proper
space in 3D. This is needed to apply the correct doping and refinement
information from the 3D mesh command file when the 2D cross section
is meshed.
For example:
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position
"R.Substrate")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0.0 0.5 0.5) (position
"R.STI")
(sdegeo:create-cuboid (position 0.4 0.0 1.0) (position
"R.Gox")
(sdegeo:create-cuboid (position 0.4 0.0 1.1) (position
"PolySilicon" "R.Poly")
(sdegeo:3d-cut (position 0.6 0.0 1.0) (gvector 1.0 0.0
Figure 65
114
direction can be specified as well. An optional merge argument can be used to merge the split
bodies and inserted bodies.
To use the splitinsert stretching feature:
1. Edit > Device Operations > Split-Insert Device.
The Split-Insert Device dialog box is displayed.
2. Enter the split position, insert direction, and insert length.
3. Select the Merge Planes option if the inserted regions should be merged with the existing
ones.
4. Click OK.
Figure 66
For example:
(sdegeo:create-cuboid (position -1.0 0.0 0.0) (position
"Silicon" "region_1")
(sdegeo:create-cuboid (position -0.4 0.0 0.0) (position
"SiO2" "region_2")
(sdegeo:create-cuboid (position -0.4 0.0 0.1) (position
"PolySi" "region_3")
(sdegeo:split-insert-device (position 0 0 0) (gvector 1
0.1)
0.4 1.0
0.5)
0 0) 1 #t)
115
Figure 67
Extending a 2D Device
For certain applications, it is necessary to extend the device at one or more boundaries. For
example, the default reflecting boundary conditions may be inappropriate for a given
application. In such cases, it can be advantageous to simply push out one or more boundaries.
This can be achieved conveniently with the extend device feature.
To use the extend device feature:
1. Edit > Device Operations > Extend Device.
The Extend Device dialog box is displayed.
2. Select the boundary to be extended, and enter the extension length.
3. Click OK.
Figure 68
116
For example:
(sdegeo:create-rectangle (position 0.0 0.0 0.0) (position 1.0 1.0 0.0)
"Silicon" "region_1")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 0.0 0.0 0.0) (position 0.5 0.5 0.0)
"SiO2" "region_2")
(sdegeo:create-rectangle (position 0.0 -0.2 0.0) (position 0.7 0.0 0.0)
"Aluminum" "region_3")
(sdegeo:extend-device "left" 0.5 "bottom" 0.5)
The left, right, top, and bottom parts of the device can be extended sequentially or in
combination. If the combination contains a corner, the corner area will be filled as well.
Individual region names will be assigned to the extended parts, and the material property is
inherited from the original regions.
Figure 69
NOTE
Trimming a 3D Structure
A 3D structure can be trimmed such that all parts lying outside of a polygonal base plane are
removed. The base plane is restricted to the xy plane. The command is not available from the
GUI.
The Scheme command is:
(sdegeo:chop-domain coordinate-list)
117
For example:
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 1.2 0.8 1.0)
"Silicon" "R.Substrate")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0.0 0.5 0.5) (position 1.2 0.8 1.0)
"Oxide" "R.STI")
(sdegeo:create-cuboid (position 0.4 0.0 1.0) (position 0.8 0.6 1.1)
"Oxide" "R.Gox")
(sdegeo:create-cuboid (position 0.4 0.0 1.1) (position 0.8 0.6 1.5)
"PolySilicon" "R.Poly")
(sdegeo:chop-domain (list 0.0 0.0 1.2 0.4 1.2 0.6 0.6 0.6 0.6 0.4 0.0 0.4))
Figure 70
118
a hypothetical device that measures only a few nanometers in length. In this case, it becomes
necessary to scale the device structure upon saving the final boundary and the mesh input file.
Sentaurus Structure Editor provides functions for scaling a device structure as well as meshing
information before exporting the final boundary and mesh command file.
Work Planes
To define and activate a new work plane:
1. Draw > Work Planes.
2. Enter a name for the new work plane, the coordinates of the new origin, as well as the
direction vectors for the x- and y-axis.
3. Click Set to define the new work plane.
4. Select the newly created entry from the Defined Work Planes list, and click Activate to
activate the new work plane.
Figure 71
By default, Sentaurus Structure Editor uses the base work plane, which is associated with a
global coordinate system. The base work plane is defined as the xy plane at z = 0.
There are also two other predefined work planes. The wp_xz work plane is defined as the xz
plane at y = 0, and the wp_yz work plane is defined as the yz plane at x = 0, both with respect
to the global coordinate system. When you define and activate a different work plane, then
for all subsequent geometric operations, all coordinates are interpreted with respect to this new
coordinate system.
119
To activate any work plane that has already been defined, select the desired work plane from
the Defined Work Planes list (see Figure 71 on page 119).
The Work Planes dialog box and the Scheme command use different ways to define the new
coordinate system. The dialog box asks for the direction vectors for the x- and y-axis. While
the Scheme command uses three positions to define the work plane.
The two definitions are related using the expression:
px = po + ex
(1)
py = po + ey
where p o , p x , and p y are the positions origin-position, x-position, and y-position used
by the Scheme command, respectively, and e x and e y are the direction vectors for the x-axis
and y-axis used by the dialog box.
If direction vectors do not have unit length, they are normalized. If the y-axis is not orthogonal
to the x-axis, only the orthogonal component is considered. The z-axis is defined by the righthand rule.
The following example shows how to create the six faces of a unit cube by drawing the same
unit rectangles in different work planes:
(sdegeo:set-active-work-plane "base")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "WP.BASE")
(sdegeo:set-active-work-plane "wp_xz")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Oxide" "WP.XZ")
(sdegeo:set-active-work-plane "wp_yz")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "PolySi" "WP.YZ")
(sdegeo:define-work-plane "base_1" (position 0 0 1) (position 1 0 1)
(position 0 1 1))
(sdegeo:set-active-work-plane "base_1")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon"
"WP.BASE_1")
(sdegeo:define-work-plane "wp_xz_1" (position 0 1 0) (position 1 1 0)
(position 0 1 1))
(sdegeo:set-active-work-plane "wp_xz_1")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Oxide" "WP.XZ_1")
(sdegeo:define-work-plane "wp_yz_1" (position 1 0 0) (position 1 1 0)
(position 1 0 1))
(sdegeo:set-active-work-plane "wp_yz_1")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "PolySi" "WP.YZ_1")
120
Work planes do not have to be axis aligned. The following script creates a shifted and tilted
work plane:
(sdegeo:set-active-work-plane "base")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "WP.BASE")
(sdegeo:define-work-plane "wp_shiftandtilt" (position 0.5 0.5 0)
(position 0.5 1.5 0) (position 1.5 0.5 1))
(sdegeo:set-active-work-plane "wp_shiftandtilt")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Nitride"
"WP.shiftandtilt")
Existing work planes can be deleted using the Work Planes dialog box or the Scheme
command:
(sdegeo:delete-work-plane wp-name)
When interactive drawing tools are used, the operations are always performed in the active
work plane. Even when the view is rotated, the pointer always moves in the xy plane of the
active work plane.
If a planar face of an existing 3D body is selected, before using Draw > Work Planes, the data
that is needed for the work plane definition will be extracted automatically from the selected
face, and most fields in the Work Plane dialog box will be already filled. The origin is set to the
center of the selected face. The x-axis and y-axis are selected as the principal axes of the
selected face. A work plane defined in this way will be the plane in which the selected face lies.
The coordinate systems method defines the new work plane with respect to the currently
active work plane, instead of the global coordinate system.
This method uses the rotation angle around the current z-axis to define the coordinate
system, instead of defining the coordinate axis directly.
121
4. Select the newly created entry from the Defined Coord. Systems list, and click Activate to
activate the new work plane.
5. To delete a local coordinate system, select it from the Defined Coord. Systems list, and
click Delete.
The corresponding Scheme commands are:
(sdegeo:define-coord-sys "name" origin_x origin_y angle)
(sdegeo:set-active-coord-sys "name")
(sdegeo:delete-coord-sys "name")
Figure 72
Device Scaling
The Scheme command sdegeo:scale is used to scale all of the geometric bodies and Ref/
Eval windows. The Scheme command sdedr:write-scaled-cmd-file is used to scale all
refinement settings while writing the mesh command file.
The corresponding Scheme commands are:
(sdegeo:scale entity-list scale-factor-x scale-factor-y [scale-factor-z])
(sdedr:write-scaled-cmd-file file-name scale-factor)
For example, if the device structure and meshing strategy were defined using nanometer as the
unit of length, use Scheme commands such as the ones given here to export the device
boundary and the mesh command file in micrometers:
(define scale-factor 1000)
(sdegeo:scale (part:entities) scale-factor scale-factor)
(sdeio:save-tdr-bnd (get-body-list) "Scaled-to-um_bnd.tdr")
(sdedr:write-scaled-cmd-file "Scaled-to-um_msh.cmd" scale-factor)
(system:command "snmesh Scale-to-um_msh")
122
NOTE
After setting the Scheme variable global-scaling to a value other than 1.0 in the
command-line window with:
(set! global-scaling 2.0)
scaled device structures and mesh command files can be saved with Mesh > Build Mesh, with
Scheme commands such as:
(set! global-scaling 1000.0)
(sde:build-mesh "snmesh" "" "Scaled-to-um_msh")
123
body. Region names are also inherited, but an additional string will be attached to the region
names to provide unique region names.
A counter is associated with each type of transformation. In each transformation, the repeat
number is also counted. For example, if the name of the parent entity is region_1 and the fifth
transformation is being performed, the newly created entity will be called region_1_t5. If a
number is entered in the Repeat Operation field and, for example, it is set to 3, the new regions
will be called region_1_t5_r1, region_1_t5_r2, and region_1_t5_r3.
Figure 73
The scaling operation can be applied to top-level entities (bodies) only (these are either
geometric bodies, which are part of the model geometry, or Ref/Eval windows). Nonuniform
scaling is also supported. The scaling factors cannot be zero. To suppress scaling in a given
direction, enter a scaling factor of 1.
124
For example, the following Scheme commands scale a sphere to become a flat ellipsoid:
(define SPHERE (sdegeo:create-sphere (position 0 0 0) 1 "Silicon" "region_1"))
(sdegeo:scale-selected SPHERE (transform:scaling 0.5 2 4))
NOTE
125
(roll)
(sdegeo:set-default-boolean "BAB")
(sdegeo:scale-selected (list mb1 mb2) (transform:scaling 2 2 1))
;; the sdegeo:scale-selected function scales each body (independently from
each other) about the geometric center of the given body.
Original model
Figure 74
126
Translation
To translate one or more entities:
1. Edit > Transform.
2. Select one or more entities from the Target Entities list.
3. Click the Translate tab.
4. Select the Selected Method option.
5. Enter the coordinates of the translation vector, or click Pick Vector and click the starting
point and endpoint of the translation vector in the view window.
6. Select the Transform Copy option if a copy of the original entities should remain at the
initial location.
7. If a nonzero Repeat Operation value is entered, the translation operation is performed
multiple times for the selected entities.
8. Click OK.
The translation operation is always performed with respect to the currently active coordinate
system.
Figure 75
127
For example, the following Scheme commands creates a string of four simple 3D MOSFET
structures:
(sdegeo:create-cuboid (position 0.0 0.0 0.0)
"Silicon" "R.Substrate")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0.0 0.5 0.5)
"Oxide" "R.STI")
(sdegeo:create-cuboid (position 0.4 0.0 1.0)
"Oxide" "R.Gox")
(sdegeo:create-cuboid (position 0.4 0.0 1.1)
"PolySilicon" "R.Poly")
(sdegeo:translate-selected (get-body-list)
(transform:translation (gvector 1.2 0 0))
Figure 76
#t 3)
Rotation
To rotate one or more entities:
1. Edit > Transform.
2. Select one or more entities from the Target Entities list.
3. Click the Rotate tab.
4. Select the Selected Method option.
5. Define the axis of rotation by entering a point on the axis and a direction vector, or click
Pick Point/Axis and click a point in the view window.
In this case, the rotation axis will point into the current view plane. Enter also the rotation
angle.
128
6. Select the Transform Copy option if a copy of the original entities should remain at the
initial location.
7. If a nonzero Repeat Operation value is entered, the rotation operation is performed
multiple times for the selected entities.
8. Click OK.
The rotation operation is always performed with respect to the currently active coordinate
system.
Figure 77
129
Reflection
To reflect one or more entities:
1. Edit > Transform.
2. Select one or more entities from the Target Entities list.
3. Click the Reflect tab.
4. Select the Selected Method option.
5. Define the reflection plane by entering a point on the plane and a normal vector, or click
Pick Point/Norm and click a point in the view window.
In this case, the normal vector will point to the right of the current view plane.
6. Select the Transform Copy option if a copy of the original entities should remain at the
initial location.
7. Click OK.
Figure 78
130
For example, the following Scheme commands reflect the half-MOSFET structure to form a
full device:
(sdegeo:create-cuboid (position 0.0
"Silicon" "R.Substrate")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0.0
"Oxide" "R.STI")
(sdegeo:create-cuboid (position 0.4
"Oxide" "R.Gox")
(sdegeo:create-cuboid (position 0.4
"PolySilicon" "R.Poly")
(sdegeo:mirror-selected (get-body-list)
(transform:reflection (position 0 0 0) (gvector 0 -1 0)) #t)
Scheme function
Description
sdegeo:mirror-selected
sdegeo:rotate-selected
sdegeo:scale-selected
sdegeo:translate-selected
transform:reflection
transform:rotation
transform:scaling
transform:translation
131
132
CHAPTER 6
Overview
The three-dimensional process emulation (Procem) module of Sentaurus Structure Editor
offers a set of Scheme functions to emulate TCAD process steps such as deposition, etching,
and implantation. The Procem Scheme extensions can be accessed either from the commandline window or by running Sentaurus Structure Editor in batch mode.
NOTE
The Procem functions are not available from the graphical user
interface.
A basic knowledge of the Scheme language is required to use Procem. A thorough knowledge
of the Scheme programming language is not required in order to work only with single process
steps, without using variables, flow controls, or conditionals. The examples in this chapter
provide sufficient background for users to write simple process emulation scripts in Scheme.
In Procem, the process steps are emulated with pure geometric operations. Each process step
is translated to a sequence of geometric operations including:
Boolean operations
Boundary repair and healing (to perform delooping and to resolve topology changes during
process emulation)
Different process emulation commands are available in Sentaurus Structure Editor. These
commands usually start with the sdepe string.
133
Polish a device
Procem has a well-defined scripting language, which provides high-level functions for DFISE
and TDR input and output, mask layout definition and input, and geometry generation.
Procem has several high-level procedures to perform process emulation steps. These functions
can be embedded in a Scheme script to generate models. The Procem functions can be freely
mixed with other sdegeo functions to generate 3D devices.
Alternatively, a complete process flow, which can be generated by Ligament Flow Editor and
translated for Procem using Ligament or can be written manually, can also be executed using
Procem in batch mode. The generated models and the flow steps are visible in the GUI. Other
GUI operations and Scheme functions can be applied to the generated model between process
steps. The model will always remain conformal and ready for a tessellated boundary file
generation.
Typically, a process emulation flow contains several commands to generate or load masks, to
create the substrate layer, and to perform patterning operations, deposition, etching, and
implantation steps.
134
There are two ways to interact with Procem as shown in Figure 79.
Ligament Translator
Ligament
Ligament translation to a
Procem script
Sentaurus Structure
Editor/Procem
Procem syntax
Figure 79
You can:
Define a Ligament process flow and translate that automatically to a Procem Scheme script
using Ligament Flow Editor.
Use any Procem scripts that use the old Procem syntax.
As a result, a Procem Scheme script is generated that can be run in Sentaurus Structure Editor
either in batch mode or interactive mode.
135
The cross section of the model at the base location in the selected base
plane (the external boundary of the simulation domain) must be
rectangular.
136
Use Ligament Layout Editor to define mask layouts and load them into Sentaurus Structure
Editor. Mask layout files can be loaded into Ligament Layout Editor in several different
formats (CIF, DFISE, or GDSII) and can edited and saved in DFISE layout format,
which can be loaded into Sentaurus Structure Editor.
Convert an existing general mask layout file (CIF, GDSII) to the DFISE layout format
using Ligament Flow Editor and Ligament, and load the DFISE layout file.
Table 22 lists the Procem functions that support mask layout input and output, and generation
operations.
Table 22
Description
exists-empty-mask-name
exists-mask-name
find-mask
get-empty-mask-list
get-mask-list
mask-refevalwin-extract-2d
mask-refevalwin-extract-3d
sde:hide-mask
sde:show-mask
sde:xshow-mask
sdeio:read-dfise-mask
sdepe:generate-empty-mask
sdepe:generate-mask
Creates a mask.
sdepe:trim-masks
Mask Generation
Examples of mask layout generation are:
(sde:clear)
(sdepe:generate-mask "DEMO-MASK-1" (list (list 2 2 5 2 5 3 2 3)
(list 5 6 9 6 7 9)))
(sdepe:generate-mask "DEMO-MASK-2" (list (list 14 7 13.73 8 13 8.73 12 9 11
8.73 10.27 8 10 7 10.27 6 11 5.27 12 5 13 5.23 13.73 6)))
(sdepe:generate-mask "DEMO-MASK-3" (list (list 11 3 10.73 4 10 4.73 9 5 8 4.73
7.27 4 7 3 7.27 2 8 1.27 9 1 10 1.23 10.73 2)))
(sde:clear)
(sdepe:generate-mask
(sdepe:generate-mask
(sdepe:generate-mask
(list 8 1 9 2 8 3
(sdepe:generate-mask
137
Figure 80
Applying stretches
Mask-driven meshing
For more information about the ICWBEV Plus TCAD Sentaurus interface, see Sentaurus
Process User Guide, Chapter 12 on page 707.
138
Figure 81 shows an SRAM cell layout as well as the 3D structure generated using this layout.
Figure 81
The scaling factor allows you to change the layout units to those used in Sentaurus Structure
Editor. Use a scaling factor of 1 if no scaling is needed.
For example, to load the TCAD layout file SRAM_lyt.mac (which is written in nanometer)
into Sentaurus Structure Editor, which here uses micrometer as the unit of length, use the
command:
(sdeicwb:load-file "SRAM_lyt.mac" 0.001)
139
For example:
(define LNames (sdeicwb:get-layer-names))
; -> icwb: LNames: (Active NWELL SRAM_mesh Acc_mesh 51:0)
For example:
(define LIDs (sdeicwb:get-layer-ids))
; -> icwb: LIDs: (1:0 2:0 43:0 44:0 51:0)
Applying a Stretch
The stretch utility provides a convenient way to parameterize a layout by inserting a uniformly
stretched segment into the layout. This feature can be used, for example, to generate a set of
transistors that have different gate lengths but are otherwise identical.
Figure 82
Snapshot of a simple ICWBEV Plus layout with a stretch utility line (left); effective
layout seen by Sentaurus Structure Editor when the layout is loaded with a
positive stretch amount (right)
A stretch line must be first defined in ICWBEV Plus. The stretch amount is set after loading
the TCAD layout with the Scheme command:
(sdeicwb:stretch stretch-name stretch-amount)
For example:
(sdeicwb:stretch "Lgate" 0.2)
140
For a 2D simulation domain, it is possible to provide a list of domains. In this case, the various
2D cuts in the layout are daisy chained to form a composite 2D simulation domain. This is
useful, for example, when the different contacts in a device layout cannot be connected by a
single straight line. In this case, it is not possible to perform a 2D TCAD simulation using a
single 2D simulation domain. However, a 2D TCAD simulation using a composite 2D
simulation domain is feasible.
For example, to select a composite simulation consisting of two 2D domains NBODY and NMOS:
(sdeicwb:set-domain (list "NBODY" "NMOS"))
To find the coordinates of the bounding box that automatically re-centers the simulation
domain to start at the origin, use the commands:
(sdeicwb:get-left)
(sdeicwb:get-right)
(sdeicwb:get-front)
(sdeicwb:get-back)
Use these commands, for example, to define the process emulation domain:
(define L (sdeicwb:get-left)) ;(define R (sdeicwb:get-right))
(define F (sdeicwb:get-front)) ;(define B (sdeicwb:get-back))
(sdepe:define-pe-domain (list R L F B))
141
For example:
(sdeicwb:generate-mask-by-layer-name "Active" "2:0")
The created mask can be used, for example, in the sdepe:pattern command:
(sdepe:pattern "mask" "Active" "polarity" "light" "material" "Resist"
"thickness" 1 "type" "iso")
NOTE
Figure 83
To allow for the creation of Sentaurus Structure Editor input files that support 3D as well as 2D
simulation domains, a set of utilities has been implemented.
142
The concept of top and bottom are introduced, which apply to 2D as well as 3D:
Midpoint method: The midpoint of such an auxiliary layer as well as a user-defined height
value can be used to identify the body to be turned into a contact.
Dummy body method: The bounding box of the layer as well as a user-defined minimum
and maximum height value can be used to generate a dummy body, which then can be
turned into a contact.
143
Figure 84 shows an example of auxiliary layers for contact assignments added to the layout of
an SRAM cell.
Figure 84
This command returns a position. In 3D, the x- and y-coordinates are given by the midpoint of
the layer lname and the z-coordinate is given by height. In 2D, the x-coordinate is given by
the layer midpoint and the y-coordinate is given by height. This position can then be used to
find an entity ID.
In the following example, the position returned by the command sdeicwb:get-layerpolygon-midpoints is used to identify the location of a metal via, which is then turned into
an electrical contact named Drain_ACC1:
(sdegeo:set-current-contact-set "Drain_ACC1")
(define VIA (find-body-id (car
(sdeicwb:get-layer-polygon-midpoints "Drain_ACC1"
(sdeicwb:up SiTop 1e-3)))))
(sdegeo:set-contact-boundary-faces VIA)
(sdegeo:delete-region VIA)
Here, it is assumed that the Scheme variable SiTop contains the height coordinate of the
silicon top surface. The Scheme command sdeicwb:up is used to ensure that the height
location used in the find-body-id command is 1 nm above the silicon surface.
144
For the dummy body method, the bounding box of the auxiliary layer and the user-defined
minimum and maximum height values are used to superimpose a dummy body on the existing
structure and to change it into a contact. Figure 85 illustrates the procedure.
Dummy Body
Figure 85
The relevant Scheme command for the dummy body method is:
(sdeicwb:create-boxes-from-layer lname min-height max-height
material region-name)
where lname is the layer name, max_height is the top coordinate of the box, and
min_height is the bottom coordinate of the box.
The command sdeicwb:create-boxes-from-layer creates rectangles (2D) or cuboids
(3D) with a lateral extent given by the segments (2D) or polygon bounding boxes (3D) from a
layer in an ICWBEV Plus TCAD layout.
The vertical extent is taken from the argument list. This command supports layout-driven
structural operations, with a syntax independent of the dimension of the currently active
ICWBEV Plus simulation domain.
The following commands show how to use the dummy body method:
(sdegeo:set-current-contact-set "gate")
(sdegeo:set-default-boolean "ABA")
(define GATEMETAL (sdeicwb:create-boxes-from-layer "ngate"
(sdeicwb:down PoTop 0.05) (sdeicwb:up PoTop 0.1) "Metal" "R.dummy"))
(sdegeo:set-contact-boundary-faces GATEMETAL)
(sdegeo:delete-region GATEMETAL)
145
Layout-driven Meshing
Layers can also be used for layout-driven meshing. The command sdeicwb:definerefinement-from-layer serves as an interface between the ICWBEV Plus TCAD layout
and the Sentaurus Structure Editor commands sdedr:define-refinement-window,
sdedr:define-refinement-size, and sdedr:define-refinement-placement by
automatically obtaining the lateral dimension of the refinement box from the specified
ICWBEV Plus layers, taking the vertical refinement box dimensions from the argument list. It
also generates 2D and 3D refinement size settings with dimension-independent syntax.
The syntax for this command is:
(sdeicwb:define-refinement-from-layer "lname" lname ["rname" rname]
["oversize" oversize] "top" top "bot" bot "dlrmin" dlrmin "dlrmax" dlrmax
"dbtmin" dbtmin "dbtmax" dbtmax ["dbfmin" dbfmin] ["dbfmax" dbfmax])
If no explicit refinement name (rname) is given, the layer name (lname) is used to create a
unique refinement name.
For a 2D or 3D IC WorkBench simulation domain, a refinement window is created for each
segment or polygon found in the specified layers. For 3D, the lateral extent of respective
refinement windows is given by the bounding box of the polygon. The extent of the refinement
window along the height direction (2D: negative y-axis, 3D: z-axis) is given by the values of
the parameters top and bot.
The parameters dlrmin and dlrmax define the minimum and maximum refinement in the
leftright dimension, respectively. The parameters dbtmin and dbtmax define the refinement
in the bottomtop dimension, and dbfmin and dbfmax define the refinement in the backfront
dimension.
The name of the refinement window has the form RPlace.<rname>_<counter>. The name
of the refinement size setting is RSize.<rname>.
NOTE
The oversize keyword allows you to increase the area of refinement beyond the extent of the
actual segments or polygon bounding boxes. The nonzero oversize value is subtracted from
or added to the minimum and maximum segment or polygon bounding box coordinates,
respectively.
You can make explicit calls to sdedr:define-refinement-function to activate other
meshing-specific options such as refinement on doping gradients or interface refinements.
146
NOTE
Layout-driven refinement is available only for the area under the given
layer itself, not for the inverse of the layer. If refinement is needed in an
area not covered by the layer, it is necessary to create the inverse of the
layer as an auxiliary layer explicitly in ICWBEV Plus.
The following example shows how to use an auxiliary layer SRAM_mesh for refinement (this
layer is highlighted in red in Figure 86):
(sdeicwb:define-refinement-from-layer
"lname" "SRAM_mesh" "rname" "sram_ch"
"oversize" 0.0 "top" SiTop "bot" (sdeicwb:down SiTop 0.05)
"dlrmax"
0.03 "dlrmin" 0.0035
"dbtmax" 0.015 "dbtmin" 0.0035
"dbfmax" 0.03 "dbfmin" 0.0035)
(sdedr:define-refinement-function "RSize.sram_ch" "MaxLenInt "Silicon"
"Oxide" 0.005 2.0)
(define BBoxes (sdeicwb:get-polygon-bounding-boxes-by-layer-name LNAME))
Figure 86
147
Figure 87 shows a 3D mesh of an SRAM cell (only silicon regions are shown). The areas in
which the layout-driven mesh refinement is applied are indicated by red circles.
Figure 87
148
Scheme function
Description
sdepe:add-substrate
sdepe:define-pe-domain
sdepe:depo
sdepe:etch-material
sdepe:fill-device
sdepe:icon_layer
sdepe:pattern
sdepe:photo
Performs a pattern step with a flat patterned top. The used mask must
be defined beforehand.
sdepe:polish-device
Table 23
Scheme function
Description
sdepe:remove
Implantation
sdepe:implant
sdepe:implant-imp3d
is equal to:
"thickness" H "material" "Silicon"
Several argument pairs have default values. When the default value is to be used, the argument
pair can be omitted. For example, the default step size is 1. The keyword "step" can be used
to specify a step size; however, if it is 1, it can be omitted. A "step" 10 will perform the
particular operation (deposition, etch, and so on) in 10 steps.
149
Some argument list items must be specified together. For example, when a rounding is
required, the rounding radius must always be specified using the keyword "radius" and a
numeric value.
Table 24
Keyword
Type
Default value
Description
"adaptive"
BOOLEAN
#f if
"rounding"
#t if
"rounding"
option is set to #t.
Function:
sdepe:depo
sdepe:etch-material
sdepe:pattern
"advancedrounding"
BOOLEAN
#f
sdepe:depo
"algorithm"
STRING
If "type"
"iso", then
"lopx".
If "type"
"aniso", then
"sweep".
150
sdepe:depo
sdepe:etch-material
sdepe:pattern
Table 24
Keyword
Type
Default value
Description
"base"
REAL
sdepe:add-substrate
"BC"
"depth"
STRING
("none",
"Extend",
"Periodic",
"Reflect")
REAL
"Extend" for
"type"
"aniso"
("algorithm"
"sweep") and
"none" for
"type" "iso"
("algorithm"
"lopx")
Etch depth.
Function:
sdepe:depo
sdepe:etch-material
Function:
sdepe:etch-material
"ebl"
STRING
"all"
{"all", "top"}
sdepe:etch-material
"ext-dist"
REAL
0 if "BC" is
"none". For "BC"
"Extend", it is
calculated
automatically from
the ray direction and
from the thickness.
sdepe:depo
sdepe:etch-material
151
Table 24
Keyword
Type
Default value
Description
"height"
REAL
Maximum
z-coordinate
sdepe:fill-device
sdepe:polish-device
"initialthickness"
REAL
By default, this
When selective deposition is performed, the
parameter is not used. deposition can be performed automatically in two
steps using this keyword. In the first step, initial
thickness * thickness is offset; in the second step,
(1-initial thickness) * thickness. The initial
thickness is a real value between 0 and 1.
Function:
sdepe:depo
"mask"
STRING
None
sdepe:pattern
"material"
STRING
(DATEX
material)
"Silicon" for
sdepe:depo and
sdepe:addsubstrate.
"" for
sdepe:etchmaterial.
"Resist" for
sdepe:add-substrate
sdepe:depo
sdepe:etch-material
sdepe:fill-device
sdepe:pattern
sdepe:remove
sdepe:pattern.
"Gas" for
sdepe:filldevice.
"overetch"
REAL
sdepe:etch-material
152
Table 24
Keyword
Type
Default value
Description
"polarity"
STRING
{"light",
"dark"}
"light"
sdepe:pattern
"radius"
REAL
sdepe:depo
sdepe:etch-material
"ray-vector"
GVECTOR
(gvector 0 0 1)
sdepe:depo
sdepe:etch-material
"region"
STRING
Automatically
generated as
region_N
sdepe:add-substrate
sdepe:depo
sdepe:fill-device
sdepe:pattern
sdepe:remove
"rounding"
BOOLEAN
#f
sdepe:depo
sdepe:etch-material
153
Table 24
Keyword
Type
Default value
Description
"selectivematerial"
STRING
(DATEX
material)
None
sdepe:depo
sdepe:etch-material
"selectivetaper"
BOOLEAN
#f
"selective-material" when
"taper-angle" is also used. In this case,
the vertical faces of the newly deposited layer are
tapered. (Otherwise, the newly deposited layers
are first united with the complete model, and the
vertical side faces of that body are tapered, and
then the original bodies are subtracted from this
body.)
Function:
sdepe:depo
sdepe:etch-material
"shadowing"
BOOLEAN
#f
sdepe:depo
sdepe:etch-material
"steps"
INTEGER
sdepe:depo
sdepe:etch-material
sdepe:pattern
"taper-angle"
REAL
sdepe:depo
sdepe:etch-material
sdepe:pattern
154
Table 24
Keyword
Type
Default value
"taperdirection"
Description
sdepe:depo
sdepe:etch-material
"taperposition"
"top" |
"bottom"
"bottom"
"thickness"
REAL
None
sdepe:add-substrate
sdepe:depo
sdepe:pattern
sdepe:polish-device
"time"
REAL
None
sdepe:etch-material
"type"
STRING
"iso"
(deposition)
"aniso"
(etching)
sdepe:depo
sdepe:etch-material
sdepe:pattern
"vexity"
STRING
"convex"
sdepe:depo
sdepe:etch-material
NOTE
155
Algorithm
Model
"lop-move"
General
Isotropic
"lopx"
General
Isotropic
"PT"
Polyhedral
Isotropic
"sweep"
General, polyhedral
Anisotropic
156
The PT Algorithm
The "PT" algorithm is a special algorithm that has been designed to be a fast and robust
algorithm to handle large polyhedral models. Typically, polyhedral models have many planar
faces, with possibly high face connectivity.
The "PT" algorithm is called using "algorithm" "PT". It cannot be applied to models that
contain nonplanar faces. When the "PT" algorithm is used, normal rounding and edge blending
cannot be used. A similar effect to rounding can be achieved with the algorithm by using the
max-chamfer-angle argument.
The "PT" algorithm cannot be combined with any other keywords that would result in a
nonpolyhedral (curved) model. There is some user control that can be applied to the "PT"
algorithm. Table 26 lists these control parameters.
The following parameters must be used with "PT":
material
This parameter specifies the DATEX material that will be assigned to the
deposited layer.
thickness
This parameter specifies the isotropic offset value that will determine the
thickness of the deposited layer.
Table 26
Keyword
Type
Default value
Description
"max-chamferangle"
REAL
30
sdepe:depo
sdepe:etch-material
sdepe:pattern
157
Table 26
Keyword
Type
Default value
Description
"min-featureangle"
REAL
45
sdepe:depo
sdepe:etch-material
sdepe:pattern
158
These old commands are translated internally to the current syntax, and the new process
emulation functions are called to perform the given process emulation commands.
NOTE
Table 27 lists all the commands related to process emulation that were used in earlier versions
and the new commands that are now called (after a simple wrapper function is applied
internally that converts the old syntax to the current one).
Table 27
Replaced internally by
isepe:anisotropic-pattern, isepe:isotropic-pattern
sdepe:pattern
isepe:create-substrate
sdepe:add-substrate
isepe:etch
sdepe:etch-material
isepe:fill
sdepe:fill-device
isepe:anisotropic-deposit, isepe:isotropic-deposit
sdepe:depo
isepe:polish
sdepe:polish-device
isepe:strip-region, isepe:strip-material
sdepe:remove
The existing device must be placed in such a way that the base of the device lies in the xy
plane. All process emulation functions are to be performed on the top of the device (in the
+z-direction). If some rear-side processing is required, the model can be transformed
before any Procem functions are called. After the process emulation steps, the model can
be transformed back to the original coordinate system.
The domain boundary in the base xy plane must be a convex, simply connected boundary
(a rectangular domain boundary is preferred).
If the domain boundary is not yet defined, the domain boundary is calculated automatically
based on the existing 3D regions on the device. The global variable domainboundary
stores the domain boundary (wire body).
159
All subsequent Procem steps are performed over the domain boundary.
If additional explicit 3D geometry handling is performed between the process emulation
steps and these steps change the domain boundary, the existing domain boundary must be
deleted manually to trigger the automatic domain extraction again. This can be performed
by calling the Scheme function (entity:delete domainboundary).
Generating Substrate
The sdepe:add-substrate Scheme extension is used to generate an initial substrate layer.
Patterning
The sdepe:pattern Scheme extension is used to perform a pattern process-emulation step.
160
Table 28
Type
Keyword
Functionality
"mask"
Basic control
"polarity"
Anisotropic Patterning
Figure 88
161
Isotropic Patterning
Figure 89
Figure 89 was generated with Procem using the script for the anisotropic patterning operation,
except that, in this case, instead of "type" "aniso", the argument "type" "iso" was used.
Photo Operation
The sdepe:photo Scheme extension is used to perform a flat pattern process-emulation step.
The operation uses an existing mask to perform a pattern operation, except that the top of the
device will be flat.
Example
Figure 90 on page 163 was generated with Procem using the following script:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 4)
(sdegeo:create-cuboid (position 0 3 4) (position 4 7 6)
(define f1 (car (find-face-id (position 1 1 4))))
(define f2 (car (find-face-id (position 2 5 6))))
(sdegeo:taper-faces (list f1) (position 5 5 4) (gvector 1
(sdegeo:taper-faces (list f2) (position 2 5 6) (gvector 1
(sdepe:generate-mask "M1" (list (list 0 0 10 5)))
"Silicon" "x1")
"PolySilicon" "x2")
0 0) 10)
0 0) -10)
162
instead of:
(sdepe:photo "mask" "M1" "material" "Copper" "polarity" "light" "height" 7)
If "height" is used, the flat top of the created body is placed at the "height" position.
Instead of "height", you can use the "thickness" parameter. In this case, the top
z-coordinate of the created body is placed at zmax + thickness, where zmax is the top zcoordinate of the initial device.
Figure 90
Example of a photo (flat pattern) operation: initial structure with slanted top faces
(left), sdepe:photo created layer with flat top surface (middle), and sdepe:pattern
created layer, which follows the underlying geometry (right)
Deposition
The sdepe:depo Scheme extension is used to perform a deposition process-emulation step.
The basic parameter group contains the minimal set of keywords that can be used to create
a deposited layer (only the deposit material and thickness belong here).
The basic control group contains all the keywords that can be used in addition to the basic
parameters to control the deposition type.
The advanced control groups list all the keywords that can be used to achieve a certain goal
(such as rounding and tapering). These groups can be used alone or in combination with
each other.
163
The last group (technical parameters) can be used to improve the robustness of the
sdepe:depo operation. In some cases (especially when global topology changes occur)
with some step control, the operation can behave more robustly.
Table 29
Type
Keyword
Functionality
Basic parameters
"thickness"
"material"
Basic control
"region"
"type"
164
Rounding
"rounding"
"radius"
"vexity"
"advanced-rounding"
Tapering
"taper-angle"
"taper-direction"
Table 29
Type
Keyword
Selective deposition
Directional
deposition with or
without shadowing
"ray-vector"
"BC"
"ext-dist"
"shadowing"
Functionality
165
Table 29
Type
Functionality
"steps"
Anisotropic Deposition
(sde:clear)
(sdepe:generate-mask "MASK1" (list (list 2 2 5 3)))
(sdepe:generate-mask "MASK2" (list (list 14 7 13.73 8 13 8.73 12 9 11 8.73
10.27 8 10 7 10.27 6 11 5.27 12 5 13 5.23 13.73 6)))
(sdepe:define-pe-domain (list 0 0 15 10))
(sdepe:add-substrate "material" "Silicon" "thickness" 2)
(sdepe:pattern "mask "MASK1" "polarity" "light" "material" "Resist"
"thickness" 1)
(sdepe:pattern "mask" "MASK2" "polarity "light" "material" "Resist"
"thickness" 2)
(sdepe:depo "material" "Oxide" "thickness" 0.25 "type" "aniso")
Z
Y
X
Figure 91
166
Isotropic Deposition
Example: Isotropic Deposition with blend-vexity = "none"
In this example, this is the same code as used to illustrate anisotropic deposition. The only
difference is that the anisotropic step is replaced with:
(sdepe:depo "material" "Oxide" "thickness" 0.25 "type" "iso")
Z
Y
X
Figure 92
The default "type" is "iso" for deposition. Therefore, if the "type" is not specified in the
argument list, an isotropic operation is performed. The isotropic deposition step can also be
performed by using the optional arguments and applying different types of rounding.
Example: Isotropic Deposition with blend-vexity = "convex"
(sdepe:depo "material" "Oxide" "thickness" 0.25 "vexity" "convex" "radius"
0.25)
Figure 93
167
Figure 94
Figure 95
Selective Deposition
By default, deposition is performed on the entire exposed top surface, unless the argument
"selective-material" is used, in which case, the deposition is performed only on those
selected faces that originally belonged to the specified material.
Figure 96 on page 169 was generated with Procem using the following script:
(sde:clear)
(sdegeo:create-cuboid
(sdegeo:create-cuboid
(sdegeo:create-cuboid
(sdegeo:create-cuboid
(position
(position
(position
(position
0
0
0
0
0
3
0
7
0)
4)
3)
3)
(position 10 10
(position 4 7
(position 10 3
(position 10 10
4)
6)
4)
4)
"Silicon" "x1")
"PolySilicon" "x2")
"Silicide" "x3")
"Silicide" "x4")
168
Figure 96
Figure 97
Selective deposition with "initial-thickness" values of 0.2 (left) and 0.8 (right)
169
Figure 98 shows the deposited layer with tapered vertical walls in the case where the
"selective-taper" #t argument pair is used.
Figure 98
Directional Deposition
By default, the Procem operations are performed in the global z-direction, assuming a vertical
ray direction. The device is placed in the global xy plane and the exposed top surface of the
device points in the +z-direction.
If directional effects are taken into consideration, it is possible to define a ray vector other than
(0 0 1). The ray vector can be specified using the "ray-vector" argument and the ray
direction (GVECTOR). For example, "ray-vector" (gvector 1 0 -1).
NOTE
The "ray-vector" must be defined in such a way that the ray hits the
top surface. Therefore, for example, (gvector 1 0 0) or (gvector
1 0 1) is not permitted.
Directional effects are associated with anisotropy; therefore, use "type" "aniso" for
directional operations.
For anisotropic operations, the suggested algorithm is the "sweep" algorithm, which can be
called, by using the keywords "algorithm" "sweep".
As a result of the directional operation, an unwanted side-rim artifact is usually generated
around the domain boundary. This side effect can be eliminated by applying an additional
boundary condition during the Procem operation. The keyword "BC" is used to specify an
additional boundary condition. The keyword "BC" has the following options:
"Extend" extends the device around the domain boundary before the directional operation
and trims the device to the original domain afterwards. The extension length is calculated
170
automatically based on the ray direction, or it can be specified explicitly by using the
"ext-dist" keyword and an extension length.
"Periodic" applies a periodic boundary condition about the device (the actual ray
direction is taken into consideration), so the periodicity is usually not applied to all sides.
After the operation, the device is trimmed to the original domain.
"Reflect" applies a reflective boundary condition about the device (the actual ray
direction is taken into consideration), so the periodicity is usually not applied to all sides.
After the operation, the device is trimmed to the original domain.
The following example illustrates directional deposition:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 4) "Silicon" "x1")
(sdegeo:create-cuboid (position 3 3 4) (position 7 7 8) "Silicon" "x1")
Figure 99
171
Shadowing
In addition, the shadowing effect can be taken into consideration by adding "shadowing" #t
to the Procem argument list. When the shadowing option is used, the following additional steps
are performed during process emulation:
Based on the ray direction, the silhouette edges of the device are imprinted to the top
exposed surface of the device.
Raytracing is applied to determine face visibility. (After the silhouette edges are imprinted,
exposed faces can be classified as visible or nonvisible.)
Based on the visibility result, the face displacement map, which was calculated based on
the "type" keyword, is modified. A zero displacement is assigned to all nonvisible faces.
The "shadowing" option can be used to compute face visibility and to omit the nonvisible
faces from being offset. If it is needed, faces will be split along the contour lines, which will be
imprinted to the faces during the visibility calculation. The following example illustrates the
effect of the "shadowing" option:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 4) "Silicon" "x1")
(sdegeo:create-cuboid (position 0 0 4) (position 10 5 8) "Silicon" "x1"))
(sdegeo:set-default-boolean "ABA")
(define mb (sdegeo:create-cylinder (position 0 5 4) (position 10 5 4) 2
"Silicon" "x1"))
(entity:delete mb)
Figure 100 Effect of "shadowing" option during deposition: without shadowing (left) and with
shadowing (right)
172
(In this case, the rounding radius is corrected automatically due to the small edge on the top
exposed surface. Sentaurus Structure Editor displays the warning message APPLIED DEPO
BLEND RADIUS 1.)
Figure 101 (right) was created using:
(sdepe:depo "thickness" 1 "material" "Copper" "radius" 2
"advanced-rounding" #t)
173
Etching
The sdepe:etch-material Scheme extension can be used to perform an etching process
emulation step.
Type
Keyword
Functionality
Basic parameter
"depth"
The keywords and keyword combinations that can be used for deposition can also be used for etching. See the
rounding, tapering, directional deposition, and technical parameters, keywords, and keyword combinations in
Table 29. In addition to these functional groups, the following controls can be used:
Overetch
"overetch"
Selective etching
"time"
174
Figure 102 Etch operation: original model (upper left), etching without overetch (upper right),
etching with overetch (lower left), and etching with overetch and rounding (lower
right)
175
Figure 103 shows the initial model and multimaterial etching using the command
(sdepe:etch-material "time" 1.0).
Figure 103 Multimaterial etching: initial model (left) and multimaterial etching (right)
176
Figure 104 Multimaterial etch example (all bodies are exposed initially): (left) initial structure
and (right) etched model
In the following example, only the silicon layer is exposed initially. The thickness of the silicon
layer is 5, and the etch rate for the silicon is 1. This means that, if the time parameter is 5 ,
the complete silicon layer will be removed by the etch operation. If the etch operation would
be performed in two steps, the first step would remove the silicon layer completely and the
copper layer would be exposed and, in the second step, 5 x 0.5 = 2.5 thickness would be
removed from the copper layer as well:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 5 5 5) "Oxide" "x1")
(sdegeo:create-cuboid (position 0 0 5) (position 5 5 10) "Nitride" "x2")
(sdegeo:create-cuboid (position 0 0 10) (position 5 5 15) "Copper" "x3")
(sdegeo:create-cuboid (position 0 0 15) (position 5 5 20) "Silicon" "x4")
(define etchrates (list (list "Silicon" 1) (list "Copper" 0.5)
(list "Nitride" 0.25) (list "Oxide" 0.125)))
(sdepe:etch-material "time" 10 "type" "aniso" "algorithm" "sweep" "steps" 10)
Figure 105 shows the initial structure and the etched model.
Figure 105 Multimaterial etch example (only one layer is exposed initially): (left) initial
structure and (right) etched model
177
If the thickness of each layer is known, an optimal step size can be selected. If the layer
thicknesses are not known, a reasonably large step size is needed to etch all initially
nonexposed material, with a nonzero etch rate.
Fill
The command sdepe:fill-device can be used to perform a fill process-emulation step.
The command (sdepe:fill-device "material" "Gas" "height" 6) was used to
demonstrate the fill operation in Figure 106. The optional "region" parameter can be used to
specify the region name of the filled region.
Z
Y
X
178
Polishing
The sdepe:polish-device Scheme extension can be used to perform a polishing processemulation step. To perform selective polishing, the optional "material" parameter can be
used to specify the bodies to be polished.
Z
Y
Y
X
Z
Y
Y
X
Z
Z
Y
Y
X
X
Figure 107 Polishing steps starting from the upper-left corner and performing polish steps
(left to right)
179
Type
Keyword
Functionality
Basic parameters
"mask"
"thickness"
Layer thickness
"polarity"
"ic-material"
"env-material"
"taper-angle"
Basic control
Figure 108 Interconnect structure: mask layout (left), final interconnect structure with oxide
hidden (middle), and with oxide shown (right)
180
Figure 109 Example of an interconnect structure created using an external layout file (left)
and 2D cut of interconnect structure showing tapered sidewalls (right)
Removing Material
The command sdepe:remove can be used to remove a top layer (with a given "material"
or "region" attribute). If there are multiple exposed bodies with the given material or region
name, all these bodies are removed.
181
"Resist" "region_3")
(sdepe:doping-constant-placement "BackGround" "BoronActiveConcentration" 1e16
"region_1")
(sdepe:doping-gauss "Implant_As" "ArsenicActiveConcentration" 0.05 1.3e18 0.0
1e16 0.4)
(sdepe:implant "Implant_As")
(sdedr:define-refinement-window "RefEvalWin.Channel" "Rectangle"
(position -0.025 0.00 0) (position 0.025 0.01 0))
(sdedr:define-refinement-size "RefDef.BG" 0.1 0.1 0.1 0.0125 0.0125 0.0125)
(sdedr:define-refinement-function "RefDef.BG" "DopingConcentration"
"MaxTransDiff" 1)
(sdedr:define-refinement-region "RefPlace.Si" "RefDef.BG" "region_1")
(sdedr:define-refinement-region "RefPlace.Po" "RefDef.BG" "region_2")
(sde:build-mesh "snmesh" "" "Implant_example")
Figure 110 Gaussian implantation on a silicon example with a rectangle of resist on the
surface as viewed with Tecplot SV; the lateral penetration of the higher doping is
red underneath the resist
182
Spacer invisible
No invisible regions
Sentaurus
Process
Figure 111 Example of simple process flow for schematic MOS structure integrating
Sentaurus Process and Sentaurus Structure Editor
Strategy
The strategy is to use Sentaurus Structure Editor first to emulate all deposit and etch steps. The
device structure is saved at all steps where doping implantation and diffusion will be simulated.
Second, Sentaurus Structure Editor is used to create the composite structure. Saved steps are
merged, preserving geometry details in each step and creating a paint-by-numbers table for
Sentaurus Process. Then, this composite structure is meshed using Sentaurus Mesh, Mesh, or
Noffset3D.
Sentaurus Process is then used to simulate implantations and diffusions. Device structures
corresponding to the process-step snapshots saved in the first step are recreated using paintby-numbers material substitutions without having to remesh. This paint-by-numbers
strategy is illustrated in Figure 112 on page 184.
183
Si
Gas
Si
Structure B
Composite
Structure
Structure A
Structure A
Si
Si
Structure B
Gas
Si
Structure A represents a step in the process simulation with a silicon substrate. After etching,
the result is Structure B. The resulting composite structure is shown with two regions labeled
1 and 2. The paint-by-numbers table is shown on the right. To reproduce Structure A, both
regions 1 and 2 are set to Si. To reproduce Structure B, region 1 is set to Gas and region 2 is set
to Si.
The strategy to mesh once and reproduce different device structures by changing materials in
different regions has the following advantages:
Faster overall simulation times due to only one mesh creation step.
Sentaurus Structure Editor: Follows the process flow for deposition and etching, and saves
intermediate structures for implantation and diffusion simulation using (part:save
"filename.sat").
Sentaurus Structure Editor: Creates composite structure using sdesp Scheme extensions,
then saves the paint-by-numbers table as a Tcl file to be read by Sentaurus Process:
(sdesp:begin)
(sdesp:define-step "step-name1"
(sdesp:define-step "step-name2"
(sdesp:define-step "step-name3"
(sdesp:define-step "step-name4"
(sdesp:finalize "filename.tcl")
184
"filename1.sat")
"filename2.sat")
"filename3.sat")
"filename4.sat")
Sentaurus Structure Editor: Saves boundary and meshing command files for Noffset3D or
Mesh.
Sentaurus Process: Loads the paint-by-numbers table with the Tcl command source
filename.tcl that defines the procedure recreate_step.
Sentaurus Process: Recreates intermediate structures with recreate_step step-name
and simulates doping implantation and diffusion.
Procem does not support all features present in the Ligament process
flow syntax. (For example, process operations are always performed on
the top of the device, from the positive z-direction.) Therefore, the
Ligament-generated input Scheme script is first interpreted by Procem
using wrapper functions. All unsupported features are ignored and each
Ligament process flow command is replaced by a set of Procem
functions.
185
Figure 114 Selecting Procem (sde) as an emulator inside Ligament Flow Editor
186
Table 32 lists the Scheme commands that are used by Ligament Translator for Sentaurus
Structure Editor. These commands are converted automatically to the process emulation
functions in Procem.
Table 32
Command written by
Ligament Translator
Description
sdepe:comment
sde:display
sdepe:deposit
sdepe:exit
sdepe:header
sdepe:load
sdeio:readbnd or part:load or
load
sdepe:multi-etch
sdepe:etch-material or
sdepe:remove or
sdepe:polish-device
sdepe:pmask
sdepe:generate-mask and
sdepe:pattern
sdepe:save
sde:save-model
sdepe:substrate
sdepe:add-substrate and
constant-profile
definition and placement
(exit)
187
188
The following figures illustrate the process steps that were performed by the script.
Figure 115 Generated masks and domain boundary; the external rectangle wire shows the
simulation domain
Figure 116 State of process emulation after the first pattern step (MASK1 as a dark mask
was used); the patterned resist layer is translucent
189
Figure 117 A 2D cross section of the device after the first two etching steps (the vias mask is
removed)
Figure 118 State of process emulation after metal lines are patterned (MASK1 with dark
polarity)
Figure 119 Deposited barrier layer is shown separately from two different angles
190
Figure 120 Final structure after final metal layer (copper) deposition and after last polish step
is performed
191
192
CHAPTER 7
Overview
Contacts are interfacial regions where subsequent TCAD tools, such as Sentaurus Device,
apply electrical, thermal, or other boundary conditions. They correspond to physical contacts
in the real device. Contacts are edges in 2D and faces in 3D. The contact edges and faces are
part of the geometry.
Before an edge or a face can be assigned to a contact, the contact itself must be declared and
activated first.
There are two distinct methods to assign edges or faces to contacts: You can (a) use an explicit
edge or face list, or (b) select a region. In the latter case, all boundary edges or boundary faces
will be assigned to the contact.
Contacts are respected by all geometry-modifying operations, for example:
193
An already defined contact can be activated directly by selecting it from the Contact list of the
main window.
The corresponding Scheme command is:
(sdegeo:define-contact-set contact-name edge-thickness
(color:rgb r g b) pattern)
For example:
(sdegeo:define-contact-set "substrate" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "substrate")
194
The contact edge color is defined using three values, each ranging from 0 to 1. These values
give the relative intensity of the three basic colors: red, green, and blue. For example:
red=(color:rgb 1 0 0)
green=(color:rgb 0 1 0)
blue=(color:rgb 0 0 1)
yellow=(color:rgb 1 1 0)
cyan=(color:rgb 0 1 1)
purple=(color:rgb 1 0 1)
Deleting a Contact
To delete a contact definition:
1. Contacts > Contact Sets.
2. Click the respective contact in the Defined Contact Sets list.
3. Click Delete.
The corresponding Scheme command is:
(sdegeo:delete-contact-set contact-name)
195
5. Contacts > Set Edges (for 2D) or Contacts > Set Faces (for 3D).
As an alternative to Step 4:
Right-click anywhere and select Contacts. From the submenu, select an already defined
contact to assign all selected edges or faces to this contact, or select Contact Sets to assign
the edges or faces to a new contact. Define and activate this contact as described in
Defining and Activating a Contact on page 194.
After closing the Contact Sets dialog box, all selected edges or faces are assigned to the
newly defined contact.
The corresponding Scheme commands for 2D and 3D, respectively, are:
(sdegeo:define-2d-contact edge|edge-list contact-name)
(sdegeo:define-3d-contact face|face-list contact-name)
The name of the contact can either be given explicitly, for example "gate", or the currently
active contact can be referenced automatically with the Scheme command:
(sdegeo:get-current-contact-set)
196
Use View > Entity Viewer > Reset, or the Scheme function
(render:rebuild), to force the display of all assigned contacts.
197
198
Original Edge
Added Vertices
Edge is split into three edge segments
In 3D, Sentaurus Structure Editor provides three dedicated functions to imprint a shape on a
surface to split existing faces.
To split faces in 3D by imprinting a rectangle:
1. Contacts > Imprint Rectangle.
2. Drag to draw the diagonal of the rectangle in the view window.
To split faces in 3D by imprinting a polygon:
1. Contacts > Imprint Polygon.
2. Click at each vertex of the polygon in the view window. To finish drawing the polygon,
click the middle mouse button. (Press both buttons when using a two-button mouse.)
The polygon is closed automatically.
To split faces in 3D by imprinting a circle:
1. Contacts > Imprint Circle.
2. Drag to draw the radius of the circle in the view window.
199
For example:
(sdegeo:create-cuboid (position 0.0 0.0 -1.0) (position 3.0 1.0 0.0)
"Silicon" "region_1"))
(define RECT (sdegeo:imprint-rectangular-wire
(position 0.2 0.2 0) (position 0.8 0.8 0)))
(define POLY (sdegeo:imprint-polygonal-wire (list (position 1.2 0.2 0)
(position 1.8 0.2 0) (position 1.8 0.8 0) (position 1.5 0.8 0)
(position 1.5 0.5 0) (position 1.2 0.5 0) (position 1.2 0.2 0))))
(define CIRC (sdegeo:imprint-circular-wire (position 2.5 0.5 0) 0.3))
The imprint commands return a list containing the newly generated faces. This list can be used
in sdegeo:define-3d-contact (see Assigning Edges or Faces to a Contact on page 195).
After the new faces are created, the contact generation procedure is the same as discussed in
Assigning Edges or Faces to a Contact on page 195.
When used from the graphical user interface (GUI), the imprint functions place the rectangle,
polygon, or circle, in the current work plane. Change the work plane as discussed in Work
Planes on page 119 to place imprint shapes on a general face.
200
The (render:rebuild) command forces the display of the contact in the view window.
Splitting an edge and assigning part of the original edge to the "drain" contact:
(sdegeo:insert-vertex (position 0.5 0.0 0))
(sdegeo:define-contact-set "drain" 4 (color:rgb 0 1 0) "##")
(sdegeo:set-current-contact-set "drain")
(sdegeo:define-2d-contact (find-edge-id (position 0.75 0.0 0))
(sdegeo:get-current-contact-set))
(render:rebuild)
Assigning edges along a complex topology to the "source" contact using a convenient trick:
In the Old Replaces New (BAB) overlap resolution mode (see Overlap Behavior on page 52), a
dummy body is created that includes all boundary edges, which should be assigned to the
"source" contact. Then, the region boundary edges of this dummy body are assigned to the
"source" contact, and the dummy body itself is deleted:
(sdegeo:set-default-boolean "BAB")
(define DUMMY (sdegeo:create-rectangle (position -1.0 -0.3 0)
(position -0.45 0.2 0) "Aluminum" "R.Dummy"))
(sdegeo:define-contact-set "source" 4 (color:rgb 1 0 1) "##")
(sdegeo:set-current-contact-set "source")
(sdegeo:set-contact-boundary-edges DUMMY (sdegeo:get-current-contact-set))
(sdegeo:delete-region DUMMY)
201
Figure 123 Two-dimensional contact creation example: initial device geometry structure (left)
with substrate (red), drain (green), gate (blue), and source (purple)
contacts; and immediately before deleting the dummy body used to create the
source contact (right)
202
Imprinting a rectangle on a face in the base work plane, and assigning the new face to the
"drain" contact:
(define DRAINFACE (sdegeo:imprint-rectangular-wire
(position 0.5 0.45 0) (position 0.95 0.05 0)))
(sdegeo:define-contact-set "drain" 4 (color:rgb 0 1 0) "||")
(sdegeo:set-current-contact-set "drain")
(sdegeo:define-3d-contact DRAINFACE (sdegeo:get-current-contact-set))
(render:rebuild)
Imprinting a rectangle on a face in a custom work plane ("Sidewall"), and assigning the new
face to the "thermode" contact:
(sdegeo:define-work-plane "Sidewall" (position -1 1 -1) (position -1 0 -1)
(position -1 1 0))
(sdegeo:set-active-work-plane "Sidewall")
(define THERMFACE (sdegeo:imprint-rectangular-wire
(position 0.05 0.05 0) (position 0.95 0.45 0)))
(sdegeo:define-contact-set "thermode" 4 (color:rgb 0 1 0) "//")
(sdegeo:set-current-contact-set "thermode")
(sdegeo:set-active-work-plane "base")
(sdegeo:define-3d-contact THERMFACE (sdegeo:get-current-contact-set))
(render:rebuild)
Imprinting a polygon on a general face using exploited 3D coordinates, and adding the new
face to the "thermode" contact:
(define THERMFACE_2 (sdegeo:imprint-polygonal-wire (list
(position 1.0 0.05 -0.95) (position 1.0 0.95 -0.95)
(position 1.0 0.95 -0.55) (position 1.0 0.45 -0.55)
(position 1.0 0.45 -0.05) (position 1.0 0.05 -0.05)
(position 1.0 0.05 -0.95))))
(sdegeo:define-3d-contact THERMFACE_2 (sdegeo:get-current-contact-set))
(render:rebuild)
Assigning faces along a complex topology to the "source" contact using a convenient trick:
In the Old Replaces New (BAB) overlap resolution mode (see Overlap Behavior on page 52), a
dummy body is created that includes all boundary faces, which should be assigned to the
"source" contact.
203
Then, the region boundary faces of this dummy body are assigned to the "source" contact,
and the dummy body itself is deleted:
(sdegeo:set-default-boolean "BAB")
(define DUMMY (sdegeo:create-cuboid (position -1.0 0.05 -0.3)
(position -0.45 0.45 0.1) "Aluminum" "R.Dummy"))
(sdegeo:define-contact-set "source" 4 (color:rgb 1 0 1) "::")
(sdegeo:set-current-contact-set "source")
(sdegeo:set-contact-boundary-faces DUMMY)
(sdegeo:delete-region DUMMY)
Figure 124 Three-dimensional contact creation example: initial device geometry (left),
structure top view with drain, gate, and source contacts (middle), and
structure bottom view with thermode and substrate contacts (right)
204
CHAPTER 8
Overview
In addition to defining the geometry of a structure, doping profiles and refinement parameters
can be defined for different parts of the structure. The placement of these profiles and
refinements as well as the areas to which the use of these profiles and refinements are restricted
can be specified by user-defined refinement/evaluation (Ref/Eval) windows.
Ref/Eval windows are implemented as geometric objects and can be manipulated in a similar
manner as other geometric objects. The difference between a regular geometric body and a Ref/
Eval window is that material and region properties are attached to a regular geometric body,
while a Ref/Eval window name is attached to a Ref/Eval window. Certain operations affect
only regular geometric bodies. For example, only regular geometric bodies can be written to a
tessellated boundary file. Some query functions, such as (get-body-list), handle only
regular geometric bodies. On the other hand, only Ref/Eval windows can be used, for example,
in refinement and doping specifications as evaluation windows. The Ref/Eval windows have
their own query functions, such as (get-drs-list), which returns the entity IDs of all
defined Ref/Eval windows.
In some cases, doping profiles and refinements can also be restricted to a specific region or
material (materialwise and regionwise refinements and dopings).
Unlike regular geometric objects, Ref/Eval windows can overlap. For example, the refinement
in a given area of the device may be determined by the tightest requirements among several
refinement placements active in that area. For overlapping doping placements, the resulting
profile is the sum of all profiles.
Sentaurus Structure Editor allows the full flexibility of definitions and placements available in
the input syntax of Sentaurus Mesh. Profiles and refinements are first defined by specifying all
the necessary parameters, but their use is not restricted to a specific location or an area. In a
second step, the profiles and refinements are placed. The placement step links a given profile
or refinement definition with an area of validity, which can be a Ref/Eval window, a region
name, or a material.
205
Both profile and refinement definitions as well as Ref/Eval windows can be reused in various
placements for maximum flexibility.
For example:
(sdedr:define-refeval-window "RefEvalWin_1" "Line"
(position 0.0 0.0 0) (position 1.0 0.0 0))
206
For a polygon, click at each vertex of the polygon in the view window. To finish drawing
the polygon, click the middle mouse button. (Press both buttons when using a two-button
mouse.) The polygon is closed automatically.
The corresponding Scheme commands are:
(sdedr:define-refeval-window RefEval-name "Rectangle" position position)
(sdedr:define-refeval-window RefEval-name "Polygon" position-list)
For example:
(sdedr:define-refeval-window "RefEvalWin_2" "Rectangle"
(position 0.0 0.5 0) (position 1.0 1.5 0))
(sdedr:define-refeval-window "RefEvalWin_3" "Polygon"
(list (position 0 0 0) (position 0.5 -1 0)
(position 1 -1 0) (position 1.5 0 0) (position 0 0 0)))
Rectangles and polygons defined from the graphical user interface (GUI) are placed in the
current work plane.
To create Ref/Eval windows in areas outside the current work plane, change the work plane
first as discussed in Work Planes on page 119.
In the 2D GUI mode, a rectangular Ref/Eval window can also be defined from certain dialog
boxes, such as:
When defining Ref/Eval windows from the GUI, the name of the Ref/
Eval window is assigned automatically and cannot be changed later.
207
For example:
(sdedr:define-refeval-window "RefEvalWin_4" "Cuboid"
(position 0 0 0) (position 1 1 1))
In the 3D GUI mode, a cuboidal Ref/Eval window can also be defined from certain dialog
boxes, such as:
When defining Ref/Eval windows from the GUI, the name of the Ref/
Eval window is assigned automatically and cannot be changed later.
208
3. Select a face and hold the Shift key to select additional faces, or drag a box around a set of
faces.
4. Mesh > Define Ref/Eval Window > From Face, or click the corresponding toolbar button
(see Table 15 on page 18).
The corresponding Scheme command is:
(extract-refwindow face|face-list RefEval-name)
For example:
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "region_1")
(extract-refwindow (find-face-id (position 0.5 0.5 1.0)) "RefEval_TopFace")
For example:
(sdedr:define-refeval-window "RefEvalWin_1" "Line"
(position 0.0 0.0 0) (position 1.0 0.0 0))
(sdedr:delete-refeval-window "RefEvalWin_1")
209
the
Placement
Name
field
as
needed
(the
default
name
is
210
e) To edit a previously defined Ref/Eval window, select the Ref/Eval Window option,
and select the required Ref/Eval window from the corresponding list. Select the Define
Ref/Eval Window option and edit the window coordinates as needed. Click Edit.
(Only Ref/Eval windows consistent with the current GUI mode can be edited from this
dialog box.)
4. In the Refinement Definition group box, edit the Name field as needed (the default name
is RefinementDefinition_<index>). A previously defined refinement definition can
be linked to the current refinement placement by selecting it from the corresponding list.
5. Enter values for the desired maximum and minimum element sizes in each of the axis
directions. (Omit this step when reusing a predefined refinement definition.)
6. Optionally, add one or more refinement function to the refinement definition:
a) To add automatic doping refinement based on the value difference or gradient of a
doping profile, select either the Value Difference or Gradient option, and select the
required doping profile from the corresponding list.
Change the Value field to control the sensitivity of the automatic refinement if needed.
Click Add to append the new refinement function to the current list of refinement
functions associated with the current refinement definition.
b) To add automatic refinement at selected interfaces, select the Interface Length option
and select the material in which the refinement should be applied from the first material
list. Enter the material on the other side of the interface in the second material list.
Enter the first requested mesh spacing at the interface in the Value field and the ratio
between the second and the first requested mesh spacing in the Factor field. Select the
DoubleSide option to apply the interface refinement to both sides of the interface.
Click Add to append the new refinement function to the current list of refinement
functions associated with the current refinement definition.
c) To remove a refinement function, select it and click Delete.
NOTE
7. Complete the definition of the refinement specification by clicking Add Placement for a
new refinement specification, or click Change Placement to save the edits of an existing
one.
211
See Mesh Generation Tools User Guide, Defining Refinement Regions on page 8 and Mesh
Generation Tools User Guide, Placing Refinement Regions on page 21 for more details on
refinement functions.
The related Scheme commands for creating Ref/Eval windows are:
(sdedr:define-refeval-window RefEval-name "Line"|"Rectangle"|"Cuboid"
position position)
(sdedr:define-refeval-window RefEval-name "Polygon" position-list)
where dxmax, dymax, and dzmax are the maximum required mesh spacings, and dxmin, dymin,
and dzmin are the minimum required mesh spacings.
212
The corresponding Scheme commands for adding adaptive refinement functions are:
(sdedr:define-refinement-function RefDef-name dopant-name
"MaxTransDiff"|"MaxGradient" value)
(sdedr:define-refinement-function "RefDef-name"
"MaxLenInt" material-1 material-2 first-step ratio)
For example:
(sdegeo:create-rectangle (position -0.5 0.0 0) (position 0.5 0.5 0)
"Silicon" "region_1")
(sdedr:define-refinement-window "RefEvalWin.Channel" "Rectangle"
(position -0.025 0.00 0) (position 0.025 0.01 0))
(sdedr:define-refinement-size "RefDef.Channel" 5e-3 2e-3 2e-3 1e-3)
(sdedr:define-refinement-function "RefDef.Channel" "MaxLenInt"
"Silicon" "Oxide" 1e-4 1.2)
(sdedr:define-refinement-function "RefDef.Channel" "DopingConcentration"
"MaxTransDiff" 1)
(sdedr:define-refinement-placement "RefPlace.Channel" "RefDef.Channel"
"RefEvalWin.Channel")
NOTE
When using interface refinement from a Scheme command, you can set
the materials to "All", or to an empty string to refer to all materials, or
to the ambient. This option is not available from the GUI.
Multibox Refinements
Multibox refinements are similar to regular refinement boxes, but here, the requested minimum
mesh spacing can be graded. It starts with the minimum value given at a specified side of the
refinement window and is expanded by a given factor from one mesh line to the next until the
given maximum is reached.
Multibox refinement boxes are used by Sentaurus Mesh and Mesh.
NOTE
213
the
Placement
3. Select a Ref/Eval window in the Placement Type group box. To define a new or edit a
previously defined Ref/Eval window, proceed as discussed in Regular Refinement Boxes
on page 210 in Steps 3d and 3e.
4. In the Multibox Definition group box, edit the Name field as needed (the default name is
MultiboxDefinition_<index>). A previously defined refinement definition can be
linked to the current multibox placement by selecting it from the corresponding list.
5. Enter values for the desired maximum and minimum element sizes in each of the axis
directions as well as for the expansion ratio:
a) Use a positive expansion ratio for applying the minimum element size at the respective
boundary with the lower coordinate value, that is, the left, front, or bottom side.
b) Use a negative expansion ratio for applying the minimum element size at the respective
boundary with the higher coordinate value, that is, the right, back, or top side.
c) With a ratio of 1, the minimum element size is used throughout the multibox. A ratio
of 0 disables refinement along the corresponding axis.
(Omit this step when reusing a previously defined refinement definition.)
6. Complete the definition of the multibox specification by clicking Add Placement for a
new refinement specification, or click Change Placement to save the edits of an existing
one.
214
For example:
(sdegeo:create-cuboid (position 1 3 5) (position 2 4 6) "Silicon" "region_1")
(sdedr:define-refeval-window "RefEvalWin_1" "Cuboid"
(position 1 3 5) (position 2 4 6))
(sdedr:define-multibox-size "MultiboxDefinition_1"
0.25 0.25 0.25
0.05 0.05 0.05
-2 0 1)
(sdedr:define-multibox-placement "MultiboxPlacement_1" "MultiboxDefinition_1"
"RefEvalWin_1")
215
See Mesh Generation Tools User Guide, Defining Multibox Refinement Regions on page 10
and Mesh Generation Tools User Guide, Placing Multibox Regions on page 22 for more details
on refinement functions.
NOTE
See Mesh Generation Tools User Guide, AxisAligned Section on page 29 for detailed
explanations of the various parameters.
216
For example:
(sdeaxisaligned:set-parameters "yCuts" (list 0.1 0.5 2.0))
Delaunizer Section
The Delaunizer section contains parameters that control the behavior of the delaunization
algorithms found in Noffset3D (when using the del-snps and del-snps2 algorithms),
Sentaurus Mesh, and Mesh (when using option -d).
To define a Delaunizer section:
See Mesh Generation Tools User Guide, Delaunizer Section on page 44 for detailed
explanations of the various parameters.
217
Figure 128 Delaunizer Parameters dialog box (left) and Delaunay Tolerance dialog box (right)
For example:
(sdedelaunizer:set-tolerance 1 "boundary" "global")
(sdedelaunizer:set-tolerance 0.0001 "boundary" "material" "Oxide" "Silicon")
(sdedelaunizer:set-tolerance 1 "interior" "region" "R.Poly")
(sdedelaunizer:set-parameters "type" "boxmethod" "maxPoints" 100000
"coplanarityDistance" 1e-05 "edgeProximity" 0.05 "faceProximity" 0.05
"sliverAngle" 175 "sliverDistance" 0.01 "maxSolidAngle" 360
"maxNeighborRatio" 1e+30 "coplanarityAngle" 175
"minEdgeLength" 1e-09 "delaunayTolerance" 0.0001)
218
Noffset3D Refinements
The main Sentaurus meshing engine, Sentaurus Mesh, produces meshes that are mainly axis
aligned. Even when refining curved interfaces, an adapted axis-aligned mesh is used. In
contrast, Noffset3D features an algorithm that resolves interfaces by introducing mesh layers
truly parallel to the curved surfaces.
Therefore, for devices where the main surfaces are nonaxis-aligned or curved (for example, a
MOS-type structure where the channel is nonplanar), Noffset3D can be an attractive alternative
to Sentaurus Mesh.
To define Noffset3D refinements for a region, a material, or an interface:
1. Mesh > Noffset Parameters.
2. In the Noffset Block Browser, click New to add a new Noffset3D refinement block, or
select a previously defined block and click Edit:
a) Click the Noffset Block tab to define region-specific and material-specific Noffset3D
blocks. See Mesh Generation Tools User Guide, Layering and Isotropic Refinement on
page 33 (noffset-region-section) for detailed explanations of the various
parameters.
b) Click the Noffset Interface tab to define interface-specific Noffset3D blocks. See
Mesh Generation Tools User Guide, Layering and Isotropic Refinement on page 33
(noffset-interface-section) for detailed explanations of the various
parameters.
c) Click the Boundary tab to define the surface mesh refinement.
See Mesh Generation Tools User Guide, Surface Mesh on page 36 (boundarysection and reggrid) for detailed explanations of the various parameters.
d) Click the Isoline tab to define the refinement at isolines and isosurfaces.
See Mesh Generation Tools User Guide, Isolines and Isosurfaces on page 39 for
detailed explanations of the various parameters.
219
Figure 129 Noffset Block Browser (top) and refinement-related tabs (bottom)
220
(sdenoffset:create-boundary
{"region" region1 region2|"material" material1 material2}
["hglobal" hglobal] ["window" x0 y0 z0 x1 y1 z1]
["reggrid-window" x1 y1 z1 x2 y2 z2]
["reggrid-uniform" x y z] ["reggrid-regmode" regmode]
["reggrid-minedgeratio" minedgeratio]
["deviationfrac" devfrac] ["deviatiorel" devrel]
["deviationabs" devabs] ["ridgeangle" rangle]
"reggrid-grfplane" px py pz)
(sdenoffset:create-isoline name "species" species "value" value
{"material" material} | {"region" region}
"length" length "submesh" submesh "bgesize" bgesize
"isobgcmode" isobgcmode "dopmaxgval" dopmaxgval
"isoimprovetol" isoimprovetol "isoridgeangle" isoridgeangle
"isominedge" isominedge "elmsizes" x y z
"evalwindow" (position x1 y1 z1) (position x2 y2 z2))
To access these options from the GUI (see Building the Mesh on page 246):
1. Mesh > Build Mesh.
2. In the Build Mesh dialog box, select Noffset as the meshing engine.
For example:
(sdenoffset:create-global "usebox" 2 "maxangle" 150
"maxconnect" 1000000 "background" "" "options"
"-p surface2 -p del-snps2 -p noffset3d -p refine -p optimise -p interpolate"
"triangulate" 0 "recoverholes" 0 "hlocal" 0.0
"factor" 1.3 "subdivide" 0 "terminateline" 3
"maxedgelength" 0.100 "maxlevel" 20)
221
222
the
Placement
Name
field
3. In the Placement Type group box, select a Ref/Eval window as discussed in Step 3 of
Regular Refinement Boxes on page 210.
4. In the Constant Profile Definition group box, edit the Name field as needed (the default
name is ConstantProfileDefinition_<index>). A previously defined constant
profile definition can be linked to the current constant profile placement by selecting it
from the corresponding list.
5. Select a species from the list, which contains the most common dopant species. Select
Other to access the complete list of DATEX variables. Enter a value for the concentration
of the dopant.
6. To activate smoothing of the otherwise abrupt doping profile at the Ref/Eval boundaries,
enter a nonzero decay length in the Decay Length field and select the On option.
In this case, the doping profiles are smoothed using an error function with an inflection
length given by the specified decay length. Note that, in this case, the doping value at the
Ref/Eval boundaries is half of the specified concentration.
(See Mesh Generation Tools User Guide, Placing Profiles on page 23 and Mesh Generation
Tools User Guide, Lateral Error Function on page 172 for more details.)
Select the Replace option if this doping profile should replace all other, previously defined
profiles. Otherwise, the new profile will be added to all previously defined profiles.
(Omit this step when reusing a previously defined refinement definition.)
7. Complete the definition of the constant profile specification by clicking Add Placement
for a new refinement specification, or click Change Placement to save the edits of an
existing one.
223
The related Scheme commands for creating constant doping profile windows are:
(sdedr:define-refeval-window RefEval-name "Rectangle"|"Cuboid"
position position)
(sdedr:define-constant-profile ConstProfDef-name species concentration)
(sdedr:define-constant-profile-placement ConstProfPlace-name
ConstProfDef-name RefEval-name [decay-length] ["Replace"])
(sdedr:define-constant-profile-region ConstProfPlace-name
ConstProfDef-name region-name [decay-length] ["Replace"])
(sdedr:define-constant-profile-material ConstProfPlace-name
ConstProfDef-name material-name [decay-length] ["Replace"])
224
For example:
(sdedr:define-constant-profile "Const.BG" "BoronActiveConcentration" 1e7)
(sdedr:define-constant-profile-material "PlaceCD.BG" "Const.BG" "GaAs")
(sdedr:define-constant-profile "Const.GaAsCap"
"ArsenicActiveConcentration" 3e18)
(sdedr:define-constant-profile-region "PlaceCD.GaAsCap" "Const.GaAsCap"
"R.GaAsCap" 2 "Replace")
the
Placement
Name
field
as
needed
(the
default
name
is
225
226
8. To restrict the evaluation of the analytic profile to only one side of the baseline, select the
Positive or Negative option in the Eval Direction group box.
In 2D for a positive evaluation direction, the profile is evaluated only to the right side of the
baseline vector. In 3D, the profile is evaluated only along the positive direction of the
baseline face normal. Select the Both option to evaluate the profile on both sides.
9. If needed, select the EvalWindow option to restrict the evaluation of the analytic profile
further to a certain area. The profiles can be restricted to another Ref/Eval window by
selecting Ref/Win and then the name of the respective Ref/Eval window, or to a region or
a material, by selecting the Region or Material option, and selecting the respective region
name or material.
10. To activate smoothing at the Ref/Eval window boundaries, enter a nonzero decay length in
the Decay Length field. In this case, the doping profiles are smoothed using an error
function with an inflection length given by the specified decay length.
Note that, in this case, the doping value at the Ref/Eval window boundaries is half of the
specified concentration.
(For more details, see Mesh Generation Tools User Guide, Placing Profiles on page 23 and
Mesh Generation Tools User Guide, Lateral Error Function on page 172.)
11. Select the Replace option if this doping profile should replace all other, previously defined
profiles. Otherwise, the new profile is added to all previously defined profiles.
12. Select the Not Eval option to suppress the evaluation of the analytic profile at the baseline
itself. Use this option, for example, to avoid double-counting at region interfaces, where
two different analytic profiles of the same species meet.
13. Complete the definition of the analytic profile specification by clicking Add Placement for
a new refinement specification, or click Change Placement to save the edits of an existing
one.
227
The related Scheme commands for creating analytic doping profiles are:
Gaussian profile definition:
(sdedr:define-gaussian-profile definition-name species "PeakPos" peak-position
{"PeakVal" peak-concentration | "Dose" dose}
{"ValueAtDepth" concentration-at-depth "Depth" depth |
"Length" diffusion-length | "StdDev" standard-deviation}
"Gauss"|"Erf" "Factor" factor)
228
229
the
Placement
Name
field
as
needed
(the
default
name
is
230
6. Select the Select Window option if the external profile needs explicit alignment with the
Ref/Eval window:
a) Define the part of the external profile to be included by entering the coordinates of the
first and second corners of a rectangle or a box in the coordinate system of the external
profile.
b) To shift the external profile before incorporating it into the device structure, define the
shift vector by entering the starting point in the From field and the endpoint in the To
field.
c) To activate smoothing at the Ref/Eval window boundaries, enter a nonzero decay
length in the Decay Length field. In this case, the doping profiles are smoothed using
an error function with an inflection length given by the specified decay length.
7. Select the Replace option if the doping profile should replace all other, previously defined
profiles. Otherwise, the new profile is added to all previously defined profiles.
8. To reflect the profile before incorporating it into the device, select Reflect X, Reflect Y, or
Reflect Z as needed.
The plane of reflection is centered in the middle of the bounding box of the external profile.
9. To rotate the profile before incorporating it into the device, select the Rotation option, and
enter the rotation angle and rotation axis. Only rotations around the x-, y-, or z-axis are
supported.
NOTE
Sentaurus Structure Editor does not allow you to specify more than one
rotation for a give profile. However, Sentaurus Mesh allows multiple
rotations. Edit the Sentaurus Mesh command file, and run Sentaurus
Mesh manually to use more than one rotation.
231
The following 2D examples use a common set of Scheme commands to create a simplified
device structure and to define a meshing strategy:
(sde:clear)
(sdegeo:create-rectangle (position -0.445 0.0 0) (position 0.0 0.5 0)
"Silicon" "region_L")
(sdegeo:create-rectangle (position 0.0 0.0 0) (position 0.445 0.5 0)
"Silicon" "region_R")
(sdedr:define-refinement-size "RefinementDefinition_1" 0.25 0.5 0.001 0.001)
(sdedr:define-refinement-material "RefinementPlacement_1"
"RefinementDefinition_1" "Silicon")
(sdedr:define-refinement-function "RefinementDefinition_1"
"DopingConcentration" "MaxTransDiff" 1)
See Mesh Generation Tools User Guide, Defining Submeshes on page 10 for details.
232
Starting with the above Scheme script, different variations of including an external doping
profile are discussed:
To include an external doping profile, called n34_fps.tdr, in the entire device structure:
(sdedr:define-submesh "ExternalProfileDefinition_1" "n34_fps.tdr")
(sdedr:define-submesh-placement "ExternalProfilePlacement_1"
"ExternalProfileDefinition_1" "" "NoReplace")
NOTE
The empty string before the NoReplace option indicates that the profile
will be included in the entire device structure. The profile is extended to
regions of the device structure that are not covered by the external
profile.
To restrict the inclusion the external doping profile to a Rev/Eval window and to reflect the
external profile using a mirror plane that goes through the bounding box center of the
external profile and is orthogonal to the x-axis:
(sdedr:define-submesh "ExternalProfileDefinition_1" "n34_fps.tdr")
(sdedr:define-refeval-window "RefEvalWin_1" "Rectangle"
(position 0.0 0.0 0) (position 0.445 0.4 0))
(sdedr:define-submesh-placement "ExternalProfilePlacement_1"
"ExternalProfileDefinition_1" "RefEvalWin_1" "NoReplace" "Reflect" "X")
To shift the external profile by 0.445 m to the left and to include it in all silicon regions:
(sdedr:define-submesh "ExternalProfileDefinition_1" "n34_fps.tdr")
(sdedr:define-submesh-placement "ExternalProfilePlacement_1"
"ExternalProfileDefinition_1" "Silicon" "PlacementType" "Material"
"SelectWindow" (position 0.0 0.0 0) (position 0.445 0.5 0)
"ShiftVector" (gvector -0.445 0 0) "NoReplace")
To reflect and shift the external profile by 0.445 m to the left and to include it only in a
given region:
(sdedr:define-submesh "ExternalProfileDefinition_1" "n34_fps.tdr")
(sdedr:define-submesh-placement "ExternalProfilePlacement_1"
"ExternalProfileDefinition_1" "region_L" "PlacementType" "Region"
"SelectWindow" (position 0.0 0.0 0) (position 0.445 0.5 0)
"ShiftVector" (gvector -0.445 0 0) "NoReplace" "Reflect" "X")
NOTE
The profile is shifted before the reflection. Therefore, here the profile is
shifted to the right, so that after the x-reflection it appears on the left.
233
To include the same profile twice, once at its original location, and once reflected and
shifted:
(sdedr:define-submesh-placement "ExternalProfilePlacement_1"
"ExternalProfileDefinition_1" "region_R" "PlacementType" "Region")
(sdedr:define-submesh-placement "ExternalProfilePlacement_2"
"ExternalProfileDefinition_1" "region_L" "PlacementType" "Region"
"SelectWindow" (position 0.0 0.0 0) (position 0.445 0.5 0)
"ShiftVector" (gvector 0.445 0 0)
"NoReplace" "Reflect" "X")
0
(b)
0.1
0.2
0.2
0.3
0.3
0.4
0.4
0.5
0.5
-0.4
-0.2
0
X [m]
0.2
0.4
(d)
0.1
0.2
0.2
0.3
0.3
0.4
0.4
0.5
(e)
-0.4
-0.2
0
X [m]
0.2
0.4
-0.4
-0.2
0
X [m]
0.2
0.4
0.1
Y [m]
Y [m]
(c)
0.1
Y [m]
Y [m]
(a)
0.5
-0.4
-0.2
0
X [m]
0.2
0.4
-0.4
-0.2
0
X [m]
0.2
0.4
Y [m]
0.1
0.2
0.3
0.4
0.5
Figure 133 Including external doping profiles using different options: (a) simple inclusion;
(b) reflections and Ref/Eval window; (c) shift; (d) reflect, shift, and region
restriction; and (e) using the same profile twice
234
The following example illustrates how to include a 2D external doping profile into a simple 3D
structure. Both examples use a common set of Scheme commands to create a simplified device
structure and to define a meshing strategy:
(sde:clear)
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 0.445 0.445 0.445)
"Silicon" "region_p1")
(sdedr:define-refinement-size "RefinementDefinition_1"
0.2 0.2 0.2
0.004 0.004 0.004)
(sdedr:define-refinement-material "RefinementPlacement_1"
"RefinementDefinition_1" "Silicon")
(sdedr:define-refinement-function "RefinementDefinition_1"
"DopingConcentration" "MaxTransDiff" 1)
The profile is shifted along the negative y-direction first, then a rotation
around the x-axis is applied, such that the profile appears right-side up
in the xz plane. Then, it is extruded automatically in the y-direction.
Z
Y
X
Figure 134 Including an 2D external doping profile into a 3D structure: (left) by default the
profile lies in the xy plane and (right) using shifts and rotations to place the profile
in the xz plane
235
the
Placement
Name
field
3. In the Evaluate Window group box, select a Ref/Eval window as discussed in Step 3 of
Regular Refinement Boxes on page 210.
4. In the Particle Profile Definition group box, edit the Name field as needed (the default
name is ParticleProfileDefinition_<index>). A previously defined particle
profile definition can be linked to the current particle profile placement by selecting it from
the corresponding list.
5. Edit the ParticleFile field, or click the Browse button to select the file.
6. Optionally, select a species from the list, which contains the most common dopant species:
a) Select Other to access the complete list of DATEX variables.
b) Select blank at the end of the list so as not to use the Species option. The blank species
is the default.
7. Optionally, enter values for ScreeningFactor, BoundaryExtension, and Divisions, and if
required, select the Normalization option and AutoScreeningFactor option.
See Mesh Generation Tools User Guide, Placing Profiles on page 23 and Mesh Generation
Tools User Guide, Defining Particle Profiles on page 12 for more details.
8. Select the Replace option if this doping profile should replace all other previously defined
profiles. Otherwise, the new profile will be added to all previously defined profiles.
(Omit this step when reusing a previously defined refinement definition.)
9. Complete the definition of the particle profile specification by clicking Add Placement for
a new refinement specification, or click Change Placement to save the edits of an existing
one.
236
The related Scheme commands for creating particle doping profiles are:
(sdedr:define-refeval-window RefEval-name "Rectangle"|"Cuboid" position
position)
(sdedr:define-particle-profile name file ["Species" species]
["ScreeningFactor" screening-factor]
["BoundaryExtension" boundary-extension] ["Divisions" divisions]
["AutoScreeningFactor" auto-screening-factor]
["Normalization" normalization])
(sdedr:define-particle-profile-placement placement-name definition-name
"EvalWindow" eval-window eval-window-type ["Replace" replace])
For example:
(sdedr:define-refeval-window "RefEvalWin_1" "Rectangle" (position -1 -0.5 0)
(position -0.5 0 0))
(sdedr:define-particle-profile "ParticleProfileDefinition_1" "particlefile"
"Species" "BoronActiveConcentration" "ScreeningFactor" 1
"BoundaryExtension" 5 "Divisions" 10 "AutoScreeningFactor" #t
"Normalization" #t)
(sdedr:define-particle-profile-placement "ParticleProfilePlacement_1"
"ParticleProfileDefinition_1""EvalWindow" "RefEvalWin_1" "evalwin"
"Replace" #t)
237
Surface tolerance length refers to the allowable maximum deviation (distance, in global
coordinates) between the internal curved representation and the tessellated output.
Normal tolerance is the maximum difference (in degrees) that is allowed between the
surface normals of the internal curved representation and the face normals of the tessellated
output.
Aspect ratio is the preferred aspect ratio of the boundary tessellation triangles.
Maximum edge length is the maximal edge length allowed in the tessellated output.
If the exported boundary contains an excessive number of elements and meshing takes a long
time, the values of the surface and normal tolerances may need to be relaxed. However, if
important geometric features of the structure are not resolved in the exported boundary, the
surface and normal tolerance values may need to be decreased.
Different meshing engines may need different settings to achieve an optimal performance. For
models that will be meshed with Noffset3D, it is recommended to set the aspect ratio to a
smaller value (1 is the minimum). In addition, to prevent creating elongated elements, it may
be necessary to set an appropriate maximum edge length.
To set the surface tolerance length, normal tolerance, aspect ratio, and maximum edge length:
238
Figure 136 Refinement Control dialog box controls refinement of boundary file
To query the currently active global tessellation settings, use the Scheme command:
(refinement:props sde-ref)
To follow the examples given below, activate the facets rendering mode with View > Render
> Facets (see Table 6 on page 15).
The following example illustrates the effect of the surface tolerance length:
(sde:clear)
(sdegeo:create-sphere (position 0.0 0.0 0.0) 1.0 "Silicon" "region_1")
; (a) Default settings:
(sde:setrefprops -1 15 0 0)
; (b) Relax all settings:
(sde:setrefprops 0 90 0 0)
; (c) Tight surface tolerance
(sde:setrefprops 0.001 90 0 0)
Figure 137 Controlling surface tessellation: default settings (left), relaxed settings (middle),
and tight surface tolerance only (right)
239
Figure 138 Controlling surface tessellation: default settings (left), relaxed settings (middle),
and tight normal tolerance only (right)
Tighter surface and normal tolerances result in the creation of more facets. Both parameters
work effectively in a similar way, but use a slightly different criterion.
The following example illustrates the effect of the aspect ratio:
(sde:clear)
sdegeo:create-elliptical-sheet (position 0.0 0.0 0.0) (position 1.0 0.0 0.0)
0.05 "Silicon" "region_1")
; (a) Default settings:
(sde:setrefprops -1 15 0 0)
; (b) Relax all settings:
(sde:setrefprops 0 90 0 0)
; (c) Aspect ratio
(sde:setrefprops 0 90 1.0 0)
Figure 139 Controlling surface tessellation: default settings (top), relaxed settings (middle),
and tight aspect ratio only (bottom)
240
The aspect ratio setting does not result in the creation of new nodes (2D) or faces (3D). Instead,
an aspect ratio setting of 1 favors a tessellation for which the surface triangles are closer to
equilateral by flipping of internal edges.
This example illustrates the effect of the maximum edge length:
(sde:clear)
(sdegeo:create-cuboid (position -1.0 -1.0 -1.0) (position 1.0 1.0 1.0)
"Silicon" "region_3")
; (a) Default settings:
(sde:setrefprops -1 15 0 0)
; (b) Tight normal tolerance
(sde:setrefprops 0 90 0 0.5)
Figure 140 Controlling surface tessellation: default settings (left) and maximum edge length
only (right)
For the specification of the surface tolerance, certain values have a predefined meaning. For
example, a value of zero deactivates this refinement criterion. While positive values such as
0.01 refer to an absolute distance in the current units (for example, 0.01 m ), certain negative
values define the tolerance distance as a fraction of the bounding box.
Table 33 lists the predefined values that can be used to specify the required surface tolerance.
Table 33
Definition
0.1
1/500th
10
1/50th
241
For example:
(sde:clear)
(sdegeo:create-cuboid (position -1.0 -1.0 -1.0) (position 1.0 1.0 1.0)
"Silicon" "region_1")
(sdegeo:fillet (list
(car (find-edge-id (position 0 1 1)))
(car (find-edge-id (position 1 1 0)))
(car (find-edge-id (position 1 0 1)))) 0.4)
(refinement:set-prop sde-ref "grid mode" "AF_GRID_ONE_DIR")
(render:rebuild)
Improved faceting
around the pole area
Figure 141 Tessellating spherical faces: default faceter settings (left) and faceter with
AF_GRID_ONE_DIR option (right)
242
The name of the surface refinement object in Step 1, "surf-refname", is a string and, therefore, requires double quotation marks
around it. The sde:define-refinement command takes this name
and creates an object handle with the same name. In Step 2 and Step 3,
the Scheme command references this object handle surf-ref-name
and, therefore, cannot have double quotation marks.
For example:
; define local refinements and attach them to the spherical faces
; select the spherical faces for local refinement
; and attach the surface refinement to the faces
(sde:refinement-init-scm-binding)
(sde:define-refinement "surf-ref-1")
(sde:set-refinement surf-ref-1 0.6 40 2 5)
(define sp1-spherical-face (list-ref (entity:faces sp1) 1))
(sde:attach-refinement sp1-spherical-face surf-ref-1)
(sde:refinement-init-scm-binding)
(sde:define-refinement "surf-ref-2")
(sde:set-refinement surf-ref-2 0.02 5 1 2)
(define sp3-spherical-face (list-ref (entity:faces sp3) 1))
(sde:attach-refinement sp3-spherical-face surf-ref-2)
243
Global default
tessellation
Global defaults +
facewise
surf-ref-1
surf-ref-2
Additional Facewise
Refinement Control
Figure 142 Facewise surface refinement: basic structure (left), global default tessellation
(middle), and tessellation with facewise parameter settings (right)
244
(sde:define-refinement "surf-ref-name")
(sde:delete-refinement surf-ref-name)
(sde:hide-refinement surf-ref-name)
(sde:remove-refinement face-list)
(sde:show-refinement surf-ref-name)
(sdeio:assign-local-refs lref)
245
246
6. To append the content of an external file to the mesh command file before calling the
meshing tool, enter the respective file name in the Cmd file append field.
Use this option to access certain features of the meshing tools, which are currently not
accessible from the GUI of Sentaurus Structure Editor.
7. To save the global Noffset parameters without executing the meshing engine, click Save
Values.
8. Select a mesh visualization engine if needed:
a) Select SDE to use the internal mesh visualization engine of Sentaurus Structure Editor
(see Grid and Doping Profile Viewer on page 39).
b) Select Tecplot SV to use the external Sentaurus visualization engine Tecplot SV.
c) If no visualization is desired, select None.
Figure 143 Build Mesh dialog box with different meshing engines selected: Sentaurus Mesh
(left), Noffset3D (middle), and Mesh (right)
247
248
CHAPTER 9
Data types for the Scheme functions related to Sentaurus Structure Editor
Data type
Description
BOOLEAN
A native Scheme data type having either the value #t (true) or #f (false). It represents a logical
or Boolean value.
DATEXMAT
ELIST
ENTITY
An ACIS entity.
GVECTOR
INTEGER
PLIST
POLARITY
POLYGON
249
Table 34
Data types for the Scheme functions related to Sentaurus Structure Editor
Data type
Description
POSITION
A POSITION entity is an ACIS entity. It contains the keyword position and three real
numbers. For example, (position 0 0 0) or (position -3 -3.1 -3.14) are
valid POSITION entities.
(define p1 (position a b c)) defines a Scheme object p1 that holds a
POSITION entity. The x-coordinate of p1 is equal to a, the y-coordinate is equal to b, and the
z-coordinate is equal to c.
REAL
STRING
A Scheme object containing a text string. A string is enclosed in braces or starts with the
character '. Two examples of a string are "this_is_a_valid_string" and
'this_is_also_fine.
In the following sections, the Scheme commands that are most commonly used in a Sentaurus
Structure Editor script are introduced.
250
A Scheme command can extend over several lines, or several Scheme commands can be placed
on a single line. A given Scheme command is identified by the outermost matching parentheses
pair:
(beginning of Scheme command
continuation of the same Scheme command
end of the Scheme command)
(first Scheme command) (second Scheme command) (...)
Strings are enclosed in double quotation marks. To declare and define a string:
(define W "Hello World")
Characters are preceded by a single quotation mark. To declare and define a character:
(define CHAR 'a)
;->
;->
;->
;->
3
3.141593
"Hello World"
a
251
Use define when a variable is introduced for the first time. Use set!
to assign a new value to an existing variable.
The define command creates a local variable (lexical scoping). For
example, a variable defined in a specific function is not visible in
another function or in the main program. Different procedures can have
their own private variables defined using the same variable name. The
set! command does not alter the scope of already defined variables,
while redefining a pre-existing variable may alter its scope. Scheme
variables need not be deleted explicitly. An automatic garbage collector
will remove all Scheme variables when they go out of scope. Memory
allocation or deallocation is performed automatically by Scheme.
NOTE
NOTE
String Operations
To automatically generate identifiers, for example, region names, certain string operations are
useful.
To define a string:
(define TEXTSTRING "This is a string")
252
To retrieve substrings:
(define iStart 10)
(define iEnd
16)
(define SUBSTRING (substring TEXTSTRING iStart iEnd))
SUBSTRING ;-> "string"
Lists
Some Sentaurus Structure Editor commands accept lists as arguments. Lists can also be useful
in device parameterization. To define a list:
(define
(define
(define
(define
ABCList
NUMList
MIXList
EMPTYList
NOTE
Declare an empty list first if you want to append to it, for example, in a
do loop.
;
;
;
;
List of characters
List of numbers
Mixed list
Empty list
253
;->
;->
;->
;->
(a b c d e)
(1 2 3 4 5)
(a 2 3.1415 "TCL")
()
To reverse a list:
(define ReverseList (reverse NUMList))
ReverseList ;-> (6 5 4 3 2 1)
or:
(define FirstElement (list-ref ABCList 0))
254
Arithmetic Expressions
Some of the most useful arithmetic operators are:
Trigonometric and related functions: sin, cos, tan, asin, acos, atan
xo 1)
R 0.2)
fi 30)
x (+ xo (* R (cos (/ (* 2 PI fi) 360)))))
255
Boolean Operations
True and false constants are denoted by #t and #f, respectively. Use not to invert a Boolean:
(not #t)
1
1
1
1
1
2)
2)
2)
2)
2)
;->
;->
;->
;->
;->
#f
#f
#f
#t
#t
If Blocks
To create a simple If block:
(define val 0)
(if (= val 0)
(begin
(display "val is zero")(newline)
)
) ;-> "val is zero"
256
; Test
; Execute if condition is true
(newline)
; Execute if condition is false
(newline)
257
Simple Do Loops
In this example, a simple Do loop is used to create a stack of five silicon squares:
(sde:clear)
(define L 1)
; Side length of first square
(define Y 0)
; Bottom Y coordinate of current square
(do ( (i 0 (+ i 1)) ) ; i: Counter name; 0: initial value; (+ i 1): incrementer
( (= i 5) )
; End Tester
(begin
; Body of loop
(define REGION (string-append "region." (number->string i)))
(sdegeo:create-rectangle
(position (* -0.5 L)
Y
0.0)
(position (* 0.5 L) (+ Y L) 0.0) "Silicon" REGION)
(set! Y (+ Y L))
(set! L (* 0.75 L))
)
)
NOTE
258
Procedures
Procedures can be implemented to reuse common code sections or to structure your scripts.
The following example creates a Unit Cell structure consisting of a slab of silicon with a
shallow trench isolation (STI) like oxide trench at the side. The procedure takes the coordinate
of the lower-left corner as an argument:
(sde:clear)
(define CreateUnitCell
; Name of procedure
(lambda (Xo Yo)
; Argument list
(begin
; Body of procedure
(sdegeo:set-default-boolean "ABA")
(define SiREGION (string-append "R.Silicon."
(number->string Xo) "." (number->string Yo)))
(define OxREGION (string-append "R.Oxide."
(number->string Xo) "." (number->string Yo)))
(sdegeo:create-rectangle
(position Xo Yo 0.0)
(position (+ Xo 1.0) (+ Yo 1.0) 0.0) "Silicon" SiREGION)
(sdegeo:create-rectangle
(position Xo Yo 0.0)
(position (+ Xo 0.25) (+ Yo 0.75) 0.0) "Oxide" OxREGION)
)
)
)
Now, a row of these unit cells can be created by calling the procedure for different arguments:
(CreateUnitCell 1 1) ; Procedure calls
(CreateUnitCell 2 1)
(CreateUnitCell 3 1)
The next example shows a procedure, which returns a value. The variable containing the value
of interest is simply referenced in the last statement of the procedure:
(define convert-degree-to-radians
(lambda (DEG)
(define pi (acos -1.0))
(define RAD (* DEG (/ pi 180.0)))
RAD
)
)
(define DEG 90)
(define RAD (convert-degree-to-radians 90))
RAD ;-> 1.5707963267949
259
Scheme procedures, or any other code segments, can be saved in a library file, for example,
util.scm and loaded into a Scheme script with:
(load "util.scm")
System Calls
To call an external UNIX or TCAD Sentaurus utility:
(system:command "<Unix command string>")
If system:command returns an error (anything other than 0), Sentaurus Workbench will pick
up the error signal, and the executed node will be shown as red.
260
CHAPTER 10
261
An attribute is a general-purpose data entity that attaches to other entities to record user-defined
or some other (internal) information. Attribute objects are saved and restored as part of the
model when the model is saved in the native ACIS .sat or .sab format. If the geometric model
is exported to the boundary format (.bnd), only the TCAD-specific attributes (contacts, and
material and region names) are saved to the boundary file.
The material attribute is a DATEX material (one of the materials defined in the
datexcodes.txt file). The region attribute is a string that identifies a region to which a
particular body belongs. Each body within a region must have the same material attribute.
The boundary file description contains some other restrictions to the use of the region attribute
(that is, disjoint bodies cannot have the same region name). Since Sentaurus Structure Editor
can generate bodies with multiple lumps, these lumps are separated automatically when
exporting the structure to the boundary file in .bnd format. In addition, Edit > Separate
Lumps or the Scheme extension sde:separate-lumps can be used to separate lumps
explicitly.
Under typical circumstances, when the automatic region-naming feature is switched on, the
geometry generation and editing actions accessible from the GUI ensure that region-naming is
consistent with the requirements of the boundary format. When using direct Scheme extensions
to generate the geometry, you can generate structures in which the region and material
properties of bodies are inconsistent with these additional restrictions imposed by the .bnd
boundary format. In this case, you must set region names and material properties explicitly to
resolve any inconsistencies.
During model generation, the geometry engine assigns a unique entity number to each
generated body. When a Scheme function needs an entity ID or a list of entity IDs, refer to these
automatically assigned entity IDs.
262
A body is a topological entity of the highest level. It can be a wire body, solid
body, or mixed body. Wire bodies contain wires, coedges, edges, and vertices.
Solid bodies contain lumps, shells, subshells, faces, loops, coedges, edges, and
vertices. Mixed (solid and wire) bodies contain lumps, shells, subshells, faces,
loops, coedges, edges, vertices, and wires. All body objects are saved and
restored as a part of the model.
edge
face
loop
lump
shell
vertex
wire
wire body
263
Use (car (sde:selected-entities)) to return only the first (and, here, the only) item on
this list:
(car (sde:selected-entities)) ; -> #[vertex 8 1]
The Topology Browser can also be used to find entity IDs (see Visualizing the Internal Entity
Representation on page 38).
264
For example:
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 1.0 1.0 1)
"Silicon" "region_1")
; -> #[body 5 1]
(sdegeo:create-cuboid (position 0.3 -0.2 0.0) (position 0.7 0.0 1)
"SiO2" "region_2")
; -> #[body 6 1]
(sdedr:define-refeval-window "RefEvalWin_1" "Cuboid"
(position 0.3 0.0 0) (position 0.7 0.2 1))
; -> #[body 7 1]
(sdedr:define-refeval-window "RefEvalWin_2" "Rectangle"
(position -0.2 0.0 0) (position 0.3 0.0 1))
; -> #[body 8 1]
(part:entities (filter:type "solid?"))
; -> (#[body 5 1] #[body 6 1] #[body 7 1] #[body 8 1]))
(get-body-list)
; -> (#[body 5 1] #[body 6 1])
(get-drs-list)
; -> (#[body 7 1] #[body 8 1])
NOTE
To find the ID of an entity of a given type at a given location, use the Scheme commands:
(find-body-id position)
(find-face-id position)
(find-edge-id position)
(find-vertex-id position)
(find-material-id material)
(find-region-id region-name)
Each of these commands returns an entity list containing the entity IDs of all entities that
satisfy the search criteria. If no entity is found, an empty list is returned. The find functions
require a specification of the exact position for the required entity.
265
For example:
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1)
"Silicon" "region_1")
(find-body-id (position 0.5 0.5 0.5)) ; -> (#[body 5 1])
(find-face-id (position 0 0 0.5)))
; -> (#[face 29 1] #[face 28 1])
(find-edge-id (position 0 0 0))) ; -> (#[edge 14 1] #[edge 12 1] #[edge 11 1])
(find-vertex-id (position 1 1 1)))
; -> (#[vertex 19 1])
(find-material-id "Silicon")
; -> (#[body 5 1])
(find-region-id "region_1")
; -> (#[body 5 1])
These Scheme commands always return a list, even if the list contains only a single entry. Some
Scheme commands, however, expect a single entity as an argument, not a list. Use the Scheme
function car to return only the first element of the list. For example:
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0)
"Silicon" "region_1")
(sdegeo:move-vertex (car (find-vertex-id (position 0 0 0)))
(position -1 -1 0))
The function find-material-id can be used to find the entity numbers of all bodies having
the specified DATEX material as the material attribute.
The function find-region-id can be used to find the entity numbers of all bodies having the
specified region as the region attribute.
If the exact location is not known use the sdegeo:find-closest Scheme commands:
(sdegeo:find-closest-face position)
(sdegeo:find-closest-edge position)
(sdegeo:find-closest-vertex position)
For example:
(sdegeo:create-cuboid (position 0.1 -0.1 0.1) (position 1.1 0.9
"Silicon" "region_1")
(sdegeo:find-closest-face (position 0 0 0)))
; -> (#[face 6
(sdegeo:find-closest-edge (position 0 0 0.5)))
; -> (#[edge 7
(sdegeo:find-closest-vertex (position 1 1 1)))
; -> (#[vertex
266
0.9)
1] . 0.1414)
1] . 0.1414)
8 1] . 0.1732)
Several functions of Sentaurus Structure Editor support entity debugging. The function
sde:info lists the entity IDs, and material and region names. The argument list of sde:info
is an entity, a list of entities, or all. For example:
(sde:info "all")
Entity Id;
#[body 5 1]
Material name;
Silicon
Region name;
region_1
Automatic Region-Naming
Each body that is to be written to a boundary file in .bnd format must have two attached
attributes: the material attribute and region attribute. If the automatic region-naming option
(Draw > Auto Region Naming) is switched on, each newly created region is automatically
assigned a unique region name. If the sdegeo Scheme extensions are used, the region names
must be specified in the argument list.
The automatic region-naming option can also be set from Scheme. The function
(sdegeo:get-auto-region-naming) can be used to obtain the status of the option. This
function returns either #t or #f.
The function (sdegeo:set-auto-region-naming #t|#f) can be used to switch on or
off the feature. When an explicit sdegeo call is made to generate a new body, the region
counter must be set automatically to the next available region number for a further GUI body
generation.
The automatic region-naming option assigns the following region name to created bodies:
"region_" + the region counter
267
The region counter starts from 1 and increases automatically. The Scheme extension
sde:set-region-counter can be used to set the region counter explicitly. For example, to
set the counter to 12:
(sdegeo:get-region-counter)
(sdegeo:set-region-counter 12)
; -> 1
When a .bnd boundary file is loaded and regions follow the abovementioned naming
convention, the counter is set automatically to the next available integer.
Since regions in a boundary file in .bnd format cannot be disjoint, regions with multiple lumps
are separated and renamed automatically before the .bnd boundary output is created. For
example, if the original body has a region attribute "region_1" and the region has three
lumps, the original region will be separated into three bodies with the region names
"region_1_lump_1", "region_1_lump_2", and "region_1_lump_3".
Use Edit > Separate Lumps to invoke the lump separation explicitly.
The corresponding Scheme command is:
(sde:separate-lumps)
268
VertexVertex Distance
To determine the distance between two vertices:
1. Edit > 2D Edit Tools > Vertex-to-Vertex Distance, or click the corresponding toolbar
button.
2. Select the first vertex and then the second vertex in the view window.
The corresponding distance is displayed in the command-line window.
The corresponding Scheme command is:
(sdegeo:distance (list vertex vertex))
For example:
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 1.0 1.0 1.0)
"Silicon" "region_1")))
(sdegeo:distance (list
(car (find-vertex-id (position 0.0 0.0 0.0)))
(car (find-vertex-id (position 1.0 1.0 1.0)))))
; -> 1.73205
269
level 1
level 2
Writes additional information for some entity types. For example, if the
entity is an EDGE, the coordinates of the endpoints and the curve data are
also written. This extension writes only data specific to the given entity.
level 3
level 4
Writes full information for the entity and all associated entities.
For example:
(define BODY (sdegeo:create-rectangle
(position 0.0 0.0 0.0) (position 1.0 1.0 0.0)
"Silicon" "region_1"))
(entity:debug BODY 0)
; -> "solid body"
270
entity:edges
entity:faces
entity:loops
entity:lumps
entity:shells
entity:vertices
For example:
(define BODY (sdegeo:create-cuboid
(position 0.0 0.0 0.0) (position 1.0 1.0 1.0) "Silicon" "region_1"))))
; All faces of the body:
(define FACES (entity:faces BODY))
; FACES: (#[face 6 1] #[face 7 1] #[face 8 1] #[face 9 1] ...)
; All edges of the first face:
(define EDGES (entity:edges (car FACES)))
; EDGES: (#[edge 12 1] #[edge 13 1] #[edge 14 1] #[edge 15 1])
; All vertices of the first edge of the first face:
(define VERTICES (entity:vertices (car EDGES)))
; VERTICES: (#[vertex 16 1] #[vertex 17 1])
; All vertices of the body:
(define ALL_VERTICES (entity:vertices BODY))
; ALL_VERTICES: (#[vertex 16 1] #[vertex 17 1] #[vertex 18 1] ...)
These functions can be used, for example, to round all edges associated with a certain face of
an object. Here, a simple cube is created, then the top face is identified using the function
find-face-id (see Script-based Object Selection on page 264).
For this face, all edges are identified using the entity:edges function, and finally these
edges are rounded using the sdegeo:fillet-edges function:
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10)
"Silicon" "region_1")
(define top_face (find-face-id (position 5 5 10)))
(define top_edges (entity:edges top_face))
(sdegeo:fillet-edges top_edges 2)
271
For example:
(define BODY1 (sdegeo:create-cuboid (position 0.0 0.0 0.0) (position 1.0 1.0 1)
"Silicon" "region_1"))
(define BODY2 (sdegeo:create-cuboid
(position 0.3 -0.2 0.0) (position 0.7 0.0 1) "SiO2" "region_2"))
(define BODY1BBOX (entity:box BODY1))
; BODY1BOX: (#[ position 0 0 0 ] . #[ position 1 1 1 ])
(define GlobalBBBOX (entity:box (get-body-list)))
; GlobalBBBOX: (#[ position 0 -0.2 0 ] . #[ position 1 1 1 ])
(display " Ymin=") (display (position:y (car GlobalBBBOX)))
(display " Ymax=") (display (position:y (cdr GlobalBBBOX)))
(newline)
; -> Ymin=-0.2 Ymax=1
272
Scheme function
Description
body?
curve:circular?
curve:elliptical?
curve:linear?
curve?
edge:circular?
edge:curve?
edge:elliptical?
edge:linear?
edge:spline?
edge?
entity?
face:conical?
face:cylindrical?
face:planar?
face:spherical?
face:spline?
face:toroidal?
face?
loop:external?
loop?
lump?
position?
shell?
273
Table 35
Scheme function
Description
solid:closed?
solid:manifold?
solid?
vertex?
wire:closed?
wire:planar?
wire?
wire-body?
For example:
(define BODY (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0)
"Silicon" "region_1"))
(body? BODY)
; -> #t
(face? BODY)
; -> #f
274
CHAPTER 11
Miscellaneous Utilities
This chapter outlines additional features that are available in
Sentaurus Structure Editor.
NOTE
The image loader supports only images in the older GIF format,
GIF87a. Most current graphic programs use the GIF format GIF89a. To
check the format version of a GIF file, look at the first line of the file
using, for example, the UNIX command:
> head --lines=1 filename.gif
The first six characters will be either GIF87a or GIF89a. If the GIF file
is in GIF89 format, use an older graphics utility program such as
xv 3.10a (a shareware program written by John Bradley) to convert the
GIF file to GIF87a.
To convert an image from the GIF89a format to GIF87a format:
1. Open the GIF89a file in a graphics program.
2. Start xv, and grab the opened GIF89a image with xv.
3. Save the image in GIF format.
xv will save the captured image using the older GIF87a format.
275
Table 36
Scheme command
Definition
Arguments
(sde:create-bg-image filename
h-size v-size)
filename: STRING
h-size: horizontal size, REAL
v-size: vertical size, REAL
(sde:show-bg-image)
None
(sde:hide-bg-image)
None
(sde:delete-bg-image)
(sde:bg-image-transparency value)
To load an image into Sentaurus Structure Editor and scale it to 0.2 m 0.2 m :
(sde:create-bg-image "TEM.gif" 0.2 0.2)
(sde:show-bg-image)
To digitize a region of the device structure, follow the procedure for creating arbitrary polygons
(see Polygons on page 55).
The OK button of the dialog box can be attached to execute an already defined Scheme script
using the sde:dialog-ok-command command. The dialog box can be displayed using
sde:dialog-show and can be removed from memory using sde:dialog-delete.
276
The following Scheme commands can be used to create user-defined dialog boxes:
(define dialog-id (sde:create-dialog dialog-label))
(sde:dialog-add-input dialog-id varname labeltext inputtype [defaultvalue])
(sde:dialog-add-pixmap dialog-id bmpfilename)
(sde:dialog-ok-command dialog-id schemefnname argument-list)
(sde:dialog-show dialog-id)
(sde:dialog-delete dialog-id)
Detailed syntax descriptions of these commands can be found in Appendix A on page 283.
To create and launch a user-defined dialog box:
1. Define a Scheme function that the dialog box will execute when the OK button is clicked.
2. Define the dialog box, create a bitmap image that shows all the necessary parameters, and
add the bitmap image and the necessary parameters to the dialog box.
3. Launch the dialog box.
Step 1: Define a Scheme Function That the Dialog Box Will Execute
(define create-3d-mosfet
(lambda (Lsub Wsub Hsti Wsti Toxi Lgat)
(define Hsil 1.0) (define Hpol 0.3)
(define Xgat1 (* 0.5 (- Lsub Lgat)))
(define Xgat2 (* 0.5 (+ Lsub Lgat)))
(sdegeo:create-cuboid (position 0.0 0.0 0.0) (position Lsub Wsub Hsil)
"Silicon" "R.Substrate")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0.0 (- Wsub Wsti) (- Hsil Hsti))
(position Lsub Wsub Hsil) "Oxide" "R.STI")
(sdegeo:create-cuboid (position Xgat1 0.0 Hsil)
(position Xgat2 Wsub (+ Hsil Toxi)) "Oxide" "R.Gox")
(sdegeo:create-cuboid (position Xgat1 0.0 (+ Hsil Toxi))
(position Xgat2 Wsub (+ Hsil Hpol)) "PolySilicon" "R.Poly")
)
)
277
Figure 145 shows the dialog box that was defined and created in Step 2, and launched in Step 3.
278
Neither varName nor varValue can contain any space characters (that is, the
varName=varValue construct should be seen as one argument). varValue can be either a
string or number. For example:
> sde -l cmdinputdemo.scm -e -var mw=10 -var mh=5
For example, to display a custom dialog box with the title CMOS and a field Total Width,
which expects a real number that defaults to 10:
(define Wtot (sde:gui-get-real "Total Width" 10 "CMOS"))
279
After this Scheme command is given, move the mouse in the view window and click the
position of interest. The resulting position is stored here in the Scheme variable MyPosition.
To select a pair of positions from the view window:
(define MyPositionPair (sde:pick-two-points-on-wp))
After this Scheme command is given, move the mouse in the view window to the first point of
interest, drag to the second point of interest and release the left mouse button. The resulting list
of two position is stored here in the Scheme variable MyPositionPair.
Message Boxes
To post a message box:
(sde:post-message message)
For example:
(sde:post-message "This is a message\n from SDE")
The dialog box has an OK button that must be clicked to continue. No new-line character is
needed. Multiple lines must be separated by "\n".
280
submeshes are simplified to provide a similar look as the analogous Mdraw dialog boxes.
These dialog boxes do not provide full access to all the features that can be defined in 2D GUI
mode or 3D GUI mode, but they may be easier to use for former Mdraw users.
281
282
The Tcl script converter works reliably but, in some cases, the converted
Scheme script may generate a different model. This is mainly due to the
fact that Sentaurus Structure Editor uses a different geometry engine
compared to Mdraw. The most important difference is that Mdraw can
handle only simply connected regions, and it inserts cutlines between
the internal and external loops of the multiply connected regions to
convert them to simply connected regions. In some cases, due to these
possible differences in the geometry representation, some manual
cleanup of the generated Scheme scripts may be needed to generate the
same model as was generated by the Mdraw-Tcl script.
APPENDIX A
Commands
This appendix describes the Scheme commands supported in
Sentaurus Structure Editor.
Presentation of Commands
Each Scheme extension accepts zero or more arguments, and may return a value. The type of
arguments and the return type are written in uppercase.
If a Scheme list of a certain data type is used, it is indicated as <DATATYPE> LIST, for
example, STRING LIST or ENTITY LIST.
Refer to Chapter 9 on page 249 for an explanation of the data types used in Sentaurus Structure
Editor.
bbox
Action:
Group:
sde
(bbox entity-list)
Argument types: entity-list
Returns:
POSITION LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension obtains the minimum and maximum values corresponding to
a diagonal across the bounding box of a body, relative to the active working
coordinate system. The argument entity-list comprises an entity or a
list of entities. Each entity or list of entities can be a body, a wire, a face, or
an edge. This extension returns a pair comprising (min-pt . max-pt).
The returned bounding box is not necessarily tight (not exact).
None
283
A: Commands
bbox-exact
bbox-exact
Action:
Group:
sde
(bbox-exact entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
POSITION LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension obtains the exact minimum and maximum values
corresponding to a diagonal across the tight bounding box of a body, relative
to the active working coordinate system. The argument entity-list
comprises an entity or a list of entities. Each entity or list of entities can be a
body, a wire, a face, or an edge. This extension returns a pair comprising
(min-pt . max-pt). The returned bounding box is tight (exact).
None
body?
Action:
Group:
sde
(body? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
This extension returns #t if the object is a body; otherwise, it returns #f.
The object specifies the Scheme object to be queried.
None
Example:
284
A: Commands
convert-to-degree
convert-to-degree
Action:
Group:
sde
(convert-to-degree angle)
Argument types: angle
REAL
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
The function converts an angle from radian to degree.
None
convert-to-radian
Action:
Group:
sde
(convert-to-radian angle)
Argument types: angle
REAL
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
The function converts an angle from degree to radian.
None
edge?
Action:
Group:
sde
(edge? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Returns #t if a Scheme object is an edge. The object specifies the Scheme
object to be queried.
None
285
A: Commands
edge:circular
edge:circular
Action:
Group:
sde
(edge:circular center-position radius [start-angle=0 [end-angle=360]])
Argument types: center-position
POSITION
radius
REAL
start-angle
REAL (optional)
end-angle
REAL (optional)
Returns:
ENTITY (EDGE)
Syntax:
Errors:
Description:
Limitations:
None
The argument center-position specifies the center position of the arc.
radius is an implicit line between the center position and the edge of the
arc. start-angle specifies the starting point of the arc in degrees.
end-angle specifies the end angle of the arc in degrees.
The start and end of the angle are measured counterclockwise from the
x-axis of the current WCS. The start and end locations must be in the current
xy construction plane.
None
edge:circular?
Action:
Group:
sde
(edge:circular? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
286
None
Returns #t if a Scheme object is a circular edge. The object specifies the
Scheme object to be queried.
None
A: Commands
edge:elliptical?
edge:elliptical?
Action:
Group:
sde
(edge:elliptical? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
Returns #t if a Scheme object is an elliptical edge. The object specifies
the Scheme object to be queried.
None
edge:end
Action:
Group:
sde
(edge:end edge)
Argument types: edge
Returns:
POSITION
Syntax:
Errors:
Description:
Limitations:
EDGE
None
The ending position of the edge for this activity is not the position that is
defined when creating the circle. The ending position of the edge (in this
instance) is the end of the edge. The edge is an input edge.
None
edge:length
Action:
Group:
sde
(edge:length edge)
Argument types: edge
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
EDGE
None
The edge is an input entity.
None
287
A: Commands
edge:linear
edge:linear
Action:
Group:
sde
(edge:linear position position)
Argument types: position
POSITION
Returns:
ENTITY (EDGE)
Syntax:
Errors:
Description:
Limitations:
Example:
None
This command specifies locations as positions. The first position
specifies the start location of the line. The second position argument
specifies the end location of the line.
None
; Scheme Extension
; edge:linear
; Create two linear edges given two positions.
(define edge1 (edge:linear (position 0 0 0) (position 30 30 0)))
edge:linear?
Action:
Group:
sde
(edge:linear? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Returns #t if a Scheme object is a linear edge. The object specifies the
Scheme object to be queried.
None
Example:
288
A: Commands
edge:mid-point
edge:mid-point
Action:
Group:
sde
(edge:mid-point edge [approximation=#t])
Argument types: edge
EDGE
approximation
BOOLEAN (optional)
Returns:
POSITION
Syntax:
Errors:
Description:
Limitations:
None
When the Boolean argument approximation is set to TRUE, it returns the
exact geometric midpoint of the edge, while FALSE returns the midpoint in
parameter space. The default is TRUE. The edge is an input entity.
None
edge:start
Action:
Group:
sde
(edge:start edge)
Argument types: edge
Returns:
POSITION
Syntax:
Errors:
Description:
Limitations:
EDGE
None
Returns the starting position of the edge.
None
edge:type
Action:
Group:
sde
(edge:type edge)
Argument types: edge
Returns:
STRING
Syntax:
Errors:
Description:
Limitations:
EDGE
None
Determines the type of an edge, where edge specifies an edge.
None
289
A: Commands
entity:box
entity:box
Action:
Group:
sde
(entity:box entity-list [create-box])
Argument types: entity-list
ENTITY | ENTITY LIST
create-box
BOOLEAN (optional)
Returns:
POSITION LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension obtains the minimum and maximum values corresponding to
a diagonal across the bounding box of a body, relative to the active working
coordinate system. The argument entity-list comprises an entity or a
list of entities. Each entity or list of entities can be a body, a wire, a face, or
an edge. This extension returns a pair comprising (min-pt . max-pt). If
the Boolean argument create-box is given, a solid box is returned.
None
entity:copy
Action:
Copies any entity (such as solid, face, edge) and all entities attached to it.
Group:
sde
(entity:copy entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
ENTITY | ENTITY LIST
Syntax:
Errors:
Description:
Limitations:
290
None
The entity-list specifies an entity or entity list to be copied.
None
A: Commands
entity:debug
entity:debug
Action:
Group:
sde
(entity:debug entity level)
Argument types: entity
ENTITY
level
INTEGER
Returns:
STRING
Syntax:
Errors:
Description:
None
The entity specifies the entity to be queried and level is an optional
argument that controls the amount of debug information generated.
level 0 writes no output and only returns the entity type.
level 1 writes only data specific to the given entity.
level 2 writes additional information for some entity types.
For example, if the entity is an edge, the coordinates of the end points and
the curve data are also written. This extension writes only data specific to
the given entity.
level 3 writes the size of the entity and all associated entities.
level 4 writes full information for the entity and all associated entities.
Limitations:
None
entity:deep-copy
Action:
Deep copies an entity (solid, face, edge, and so on) as well as all attached
entities.
Group:
sde
(entity:deep-copy entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
ENTITY | ENTITY LIST
Syntax:
Errors:
Description:
Limitations:
None
The difference between entity:deep-copy and entity:copy is that
entity:deep-copy makes a copy of splf_splf, whereas
entity:copy creates a pointer to splf_splf.
The deep copy functionality is used instead of the regular copy when it is
required that no links exist with shared information between the original and
deep copies.
None
291
A: Commands
entity:delete
entity:delete
Action:
Group:
sde
(entity:delete entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The entity-list specifies an entity or entity list to be deleted.
None
entity:display
Action:
Displays entities.
Group:
sde
(entity:display entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
292
None
None
The argument entity-list specifies an entity or a list of entities to
display. This extension returns the input entity-list. Use this extension
to display entities that were not displayed when they were created, or to
redisplay entities that have been erased. The display for the entities always
recomputes. Therefore, use it to regenerate the display of an entity with a
different faceting tolerance if the view scale has changed and the display is
now too coarse.
None
A: Commands
entity:dist
entity:dist
Action:
Group:
sde
(entity:dist part1 part2 [acis-opts])
Argument types: part1
ENTITY | POSITION
part2
ENTITY | POSITION
acis-opts
ACIS OPTIONS (optional)
Returns:
(REAL POSITION (ENTITY | ENTITY LIST . STRING))
Syntax:
Errors:
Description:
Limitations:
None
Using the two input entities, this extension finds a position on each entity
such that the distance between the two is the minimum distance. Supported
entities include VERTEX, EDGE, LOOP, FACE, WIRE, SHELL, LUMP, and BODY.
The command can also find the minimum distance using an entity and a
position. The optional argument acis-opts helps to switch on journaling
and versioning options.
If part1 is defined as a position, part2 must be an entity.
entity:edges
Action:
Group:
sde
(entity:edges entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
EDGE | EDGE LIST
Syntax:
Errors:
Description:
Limitations:
None
Returns a list of the edges for the input entity or entity-list. Returns
an empty list when no edges are found.
None
293
A: Commands
entity:erase
entity:erase
Action:
Erases but does not remove the specified entity or list of entities.
Group:
sde
(entity:erase entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The argument entity-list is an entity or a list of entities to be erased
from the display. The entities remain available for later redisplay. To
redisplay an erased entity or a list of entities, use the entity:display
extension. This extension returns the input entity-list.
None
entity:faces
Action:
Group:
sde
(entity:faces entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
FACE | FACE LIST
Syntax:
Errors:
Description:
Limitations:
294
None
Returns an empty list when no faces are found. The input argument is an
entity-list from which a list of all faces is to be obtained.
None
A: Commands
entity:loops
entity:loops
Action:
Group:
sde
(entity:loops entity-list [include-pat])
Argument types: entity-list
ENTITY | ENTITY LIST
include-pat
INTEGER (optional)
Returns:
LOOP | LOOP LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension returns a list of all the loops of an entity. If no loops are
found, this extension returns an empty list. entity-list specifies an
entity or entity list to be queried. The optional parameter include-pat
determines how this function deals with patterned objects. By default,
patterned objects are included in the list of entities. You can specify any one
of the following through this argument:
0 Patterned objects are created if they do not already exist and are included
in the list.
1 Only those patterned objects that already exist are included in the list.
2 No patterned objects, except seed pattern objects, are included in the list.
None
entity:lumps
Action:
Group:
sde
(entity:lumps entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
LUMP | LUMP LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension returns a list of all the lumps of an entity. If no lumps are
found, this extension returns an empty list. entity-list specifies an
entity or entity list to be queried.
None
295
A: Commands
entity:set-color
entity:set-color
Action:
Group:
sde
(entity:set-color entity-list color)
Argument types: entity-list
ENTITY | ENTITY LIST
color
COLOR
Returns:
COLOR
Syntax:
Errors:
Description:
Limitations:
None
The argument entity-list specifies an entity or a list of entities to be
assigned a color. The argument color can accept an integer or a
color:rgb value, and specifies a new color to be assigned to specified
entities. color values include:
Black = 0 = #[color 0 0 0] Red = 1 = #[color 1 0 0]
Green = 2 = #[color 0 1 0] Blue = 3 = #[color 0 0 1]
Cyan = 4 = #[color 0 1 1] Yellow = 5 = #[color 1 1 0]
Magenta = 6 = #[color 1 0 1] White = 7 = #[color 1 1 1]
This extension returns the previous color of the entity.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silver" "region_1")
(sdegeo:create-sphere (position 1 1 1) 0.5 "SiliconCarbide" "region_2")
(entity:set-color (entity:edges (get-body-list)) BLACK)
296
A: Commands
entity:shells
entity:shells
Action:
Group:
sde
(entity:shells entity-list [include-pat])
Argument types: entity-list
ENTITY | ENTITY LIST
include-pat
INTEGER (optional)
Returns:
SHELL | SHELL LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension returns a list of the shells of an entity. If no shell entities are
found, this extension returns an empty list. entity-list specifies a
topological entity or an entity list. The parameter include-pat determines
how this function deals with patterned objects. By default, patterned objects
are included in the list of entities. You can specify any one of the following
through this argument:
0 Patterned objects are created if they do not already exist and are included
in the list.
1 Only those patterned objects that already exist are included in the list.
2 No patterned objects, except seed pattern objects, are included in the list.
None
entity:vertices
Action:
Group:
sde
(entity:vertices entity-list)
Argument types: entity-list
ENTITY | ENTITY LIST
Returns:
VERTEX | VERTEX LIST
Syntax:
Errors:
Description:
Limitations:
None
This extension returns a list of the vertices for the input entity or
entity-list. It returns an empty list if no vertices are found.
None
297
A: Commands
exists-empty-mask-name
exists-empty-mask-name
Action:
Group:
sde
(exists-empty-mask-name maskname)
Argument types: maskname
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The function checks whether the specified empty mask exists.
None
exists-mask-name
Action:
Group:
sde
(exists-mask-name maskname)
Argument types: maskname
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
298
None
The function checks whether the specified mask exists.
None
A: Commands
extract-refwindow
extract-refwindow
Action:
Group:
sdedr
(extract-refwindow faceid refwindowname)
Argument types: faceid
FACE | FACE LIST
refwindowname
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function goes through the specified face list (or the specified single
face list), extracts the vertex list for each face, and defines a separate
polygonal refinement window for each face. Planar faces will have the
corresponding refinement polygon defined as one single refinement
polygon. However, for nonplanar polygons, the geometric face will be
triangulated first and a separate refinement polygon (triangle) will be
defined for each triangle
None
Example:
Example 1
(sde:clear)
(define mypyramid (sdegeo:create-pyramid (position 0 0 0) 20 40 40 6 12 "PolySilicon"
"r1"))
(define myface (list-ref (entity:faces mypyramid) 2))
(extract-refwindow myface "refinement1")
Example 2
(sde:clear)
(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon"
"r1"))
(define myedge (car (find-edge-id (position 10 5 10))))
(sdegeo:fillet myedge 4)
(define mflist (entity:faces mycube))
(extract-refwindow (list-ref mflist 2) "refwin1")
(extract-refwindow (list-ref mflist 5) "refwin2")
(extract-refwindow (list-ref mflist 0) "refwin3")
299
A: Commands
face:area
face:area
Action:
Group:
sde
(face:area face)
Argument types: face
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
FACE
None
This extension calculates the area of a specified face. The accuracy of the
calculation is fixed at 0.001 for an area of geometry that cannot be
determined analytically. face is an input face.
None
face:conical?
Action:
Group:
sde
(face:conical? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension returns #t if the object is a conical face; otherwise, it returns
#f. The object specifies the Scheme object to be queried.
None
face:cylindrical?
Action:
Group:
sde
(face:cylindrical? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
300
None
The returned Boolean specifies whether the supplied entity input is a
cylindrical face. The input argument is a cylindrical face and not a solid
cylinder. The object specifies the Scheme object to be queried.
None
A: Commands
face:planar?
face:planar?
Action:
Group:
sde
(face:planar? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
This extension returns #t if the specified object is a planar face. The
object specifies the Scheme object to be queried.
None
face:plane-normal
Action:
Group:
sde
(face:plane-normal face)
Argument types: face
ENTITY FACE
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
This extension returns the face normal of the specified planar face.
None
face:spherical?
Action:
Group:
sde
(face:spherical? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension returns #t if the specified object is a spherical face. The
object specifies the Scheme object to be queried.
None
301
A: Commands
face:spline?
face:spline?
Action:
Group:
sde
(face:spline? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Determines if a Scheme object is a facespline. The object specifies the
Scheme object to be queried.
None
face:toroidal?
Action:
Group:
sde
(face:toroidal? object)
Argument types: object
SCHEME OBJECT
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
302
None
Determines if a Scheme object is a toroidal face. The object specifies the
Scheme object to be queried.
None
A: Commands
filter:type
filter:type
Action:
Group:
sde
(filter:type type-name)
Argument types: type-name
STRING
Returns:
FILTER
Syntax:
Errors:
Limitations:
None
This extension creates the specified type-name as a filter, which specifies
the type of entity to be used in another filter operation. If a new type filter is
created, it replaces the previously defined type. Use filter:type to
display the list of available filter types. type-name specifies the entityfilter to be created. The possible string values for the type-name are
edge:curve?, edge:linear?, edge:circular?,
edge:elliptical?, edge:spline?, edge?, body?, solid?,
wire-body?, mixed-body?, wire?, face?, face:planar?,
face:spherical?, face:cylindrical?, face:conical?,
face:toroidal?, face:spline?, wcs?, text?, vertex?, and
point?.
None
Example:
(filter:type "edge:linear?")
Description:
find-body-id
Action:
Group:
sde
(find-body-id position)
Argument types: position
POSITION
Returns:
BODY LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through all bodies, (get-body-list), and returns the
ACIS entity IDs of all bodies that contain the specified position. The
position can be lying on a boundary face or vertex, or can be an internal
point.
None
303
A: Commands
find-body-id-drs
find-body-id-drs
Action:
Group:
sde
(find-body-id-drs position)
Argument types: position
POSITION
Returns:
BODY LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the body list of all defined Ref/Eval window
bodies and returns the ACIS entity IDs of all bodies that contain the
specified position. The position can be lying on a boundary face or can be an
internal point.
None
find-drs-id
Action:
Group:
sde
(find-drs-id DRSname)
Argument types: DRSname
Returns:
BODY
Syntax:
Errors:
Description:
Limitations:
304
STRING
None
The function goes through all defined Ref/Eval window bodies and returns
the ACIS entity IDs of the Ref/Eval window body that matches the specified
doping/refinement/submesh (DRS) name. (The DRS name is a unique
identifier of each Ref/Eval window body.)
None
A: Commands
find-edge-id
find-edge-id
Action:
Group:
sde
(find-edge-id position)
Argument types: position
POSITION
Returns:
EDGE LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the edge list of all defined bodies,
(entity:edges (get-body-list)), and returns the ACIS entity IDs of
all edges that contain the specified position. The position can be either an
end vertex position of the edge or an internal position.
None
find-edge-id-drs
Action:
Group:
sde
(find-edge-id-drs position)
Argument types: position
POSITION
Returns:
EDGE LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the edge list of all defined Ref/Eval window
bodies and returns the ACIS entity IDs of all edges that contain the specified
position. The position can be either an end vertex position of the edge or an
internal position.
None
305
A: Commands
find-face-id
find-face-id
Action:
Group:
sde
(find-face-id position)
Argument types: position
POSITION
Returns:
FACE LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the face list of all defined bodies,
(entity:faces (get-body-list)), and returns the ACIS entity IDs of
all faces that contain the specified position. The position can be either a
position lying on a boundary edge or an internal position.
None
find-face-id-drs
Action:
Group:
sde
(find-face-id-drs position)
Argument types: position
POSITION
Returns:
FACE LIST
Syntax:
Errors:
Description:
Limitations:
306
None
The function goes through the face list of all defined Ref/Eval window
bodies and returns the ACIS entity IDs of all faces that contain the specified
position. The position can be either a position lying on a boundary edge or
an internal position.
None
A: Commands
find-material-id
find-material-id
Action:
Finds and returns all entities that have the given material attribute.
Group:
sde
(find-material-id material-name)
Argument types: material-name
DATEXMAT
Returns:
BODY | BODY LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through every region in the model and selects all regions
that have the specified material-name as the material attribute. If only
one body is found with the specified material-name as the material
attribute, the entity ID of the material is returned. If more than one region
has the material-name material attribute, a list of all entities is returned.
If no entity is found, an empty list is returned.
None
find-region-id
Action:
Group:
sde
(find-region-id region-name)
Argument types: region-name
STRING
Returns:
BODY | BODY LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through every region in the model and selects all regions
that have the specified region-name as the region attribute. If only one
body is found with the specified region-name as the region attribute, the
entity ID of the region is returned. If more than one region has the regionname region attribute, a list of all entities is returned. If no entity is found,
an empty list is returned.
None
307
A: Commands
find-vertex-id
find-vertex-id
Action:
Group:
sde
(find-vertex-id position)
Argument types: position
POSITION
Returns:
VERTEX LIST
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the vertex list of all defined bodies,
(entity:vertices (get-body-list)), and returns the ACIS entity
IDs of all vertices that are placed at the specified position.
None
find-vertex-id-drs
Action:
Group:
sde
(find-vertex-id-drs position)
Argument types: position
POSITION
Returns:
VERTEX LIST
Syntax:
Errors:
Description:
Limitations:
308
None
The function goes through the vertex list of all defined Ref/Eval window
bodies and returns the ACIS entity IDs of all vertices that contain the
specified position.
None
A: Commands
get-body-list
get-body-list
Action:
Returns a list of all 2D and 3D bodies that are defined in the model.
Group:
Syntax:
sde
(get-body-list)
Argument types:
None
Returns:
BODY LIST
Errors:
None
This extension returns a list of all 2D and 3D bodies that are defined in the
model, except the mask bodies and the doping-related or refinement-related
Ref/Eval windows. Since mask bodies and Ref/Eval windows are also sheet
bodies, (part:entities (filter:type "solid?")) also returns
these entities. Since most of the geometric operations are performed only on
2D and 3D bodies, and not on masks and Ref/Eval windows, this extension
is used to distinguish easily between masks, Ref/Eval windows, and regular
bodies.
None
Description:
Limitations:
get-drs-list
Action:
Returns a list of all the Ref/Eval windows (2D and 3D) that are defined in
the model.
Group:
Syntax:
sde
(get-drs-list)
Argument types:
None
Returns:
BODY LIST
Errors:
None
This extension returns a list of all 2D and 3D Ref/Eval windows that are
defined in the model.
None
Description:
Limitations:
309
A: Commands
get-empty-mask-list
get-empty-mask-list
Action:
Group:
Syntax:
sde
(get-empty-mask-list)
Argument types:
None
Returns:
LIST
Errors:
None
The function returns a list of all defined empty masks. If no empty mask is
defined, an empty list is returned.
None
Description:
Limitations:
get-mask-list
Action:
Group:
Syntax:
sde
(get-mask-list)
Argument types:
None
Returns:
LIST
Errors:
None
The function returns a list of all defined (geometric) masks. If no mask is
defined, an empty list is returned.
None
Description:
Limitations:
310
A: Commands
gvector
gvector
Action:
Creates a new gvector with the specified x-, y-, and z-coordinates.
Group:
sde
(gvector x y z [space=model])
Argument types: x
REAL
y
REAL
z
REAL
space
STRING (optional)
Returns:
GVECTOR
Syntax:
Errors:
Description:
None
Relative to the active coordinate system, the argument x defines the xcoordinate, y defines the y-coordinate, and z defines the z-coordinate.
The optional space argument defaults to WCS. If no active work plane
exists, space defaults to model. The other optional space arguments
return a gvector in the new coordinate system. model means that the x-, y-,
and z-values are with respect to the model. If the model has an origin other
than the active work plane, this returns the position relative to the active
coordinate system in rectangular Cartesian coordinates.
polar or cylindrical means that the x-, y-, and z-values are interpreted
as the radial distance from the z-axis, the polar angle in degrees measured
from the xz plane (using the right-hand rule), and the z-coordinate,
respectively.
Limitations:
This returns the x-, y-, and z-terms with respect to the active coordinate
system. spherical means that the provided x-, y-, and z-values are the
radial distance from the origin, the angle of declination from the z-axis in
degrees, and the polar angle measured from the xz plane in degrees,
respectively. This returns the x-, y-, and z-terms relative to the active
coordinate system.
None
311
A: Commands
gvector:+
gvector:+
Action:
Group:
sde
(gvector:+ gvector1 gvector2)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Limitations:
None
This extension returns the result of (gvector1 + gvector2) as a gvector.
gvector1 defines the first gvector.
gvector2 defines the second gvector.
None
Example:
Description:
gvector:Action:
Group:
sde
(gvector:- gvector1 gvector2)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Limitations:
None
This extension returns the result of (gvector1 gvector2) as a gvector.
gvector1 defines the start location.
gvector2 defines the end location for both gvectors.
None
Example:
Description:
312
A: Commands
gvector?
gvector?
Action:
Group:
sde
(gvector? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Determines if a Scheme object is a gvector.
None
gvector:copy
Action:
Group:
sde
(gvector:copy gvector)
Argument types: gvector
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Limitations:
None
Creates a gvector by copying an existing gvector.
None
Example:
Description:
gvector:cross
Action:
Group:
sde
(gvector:cross gvector1 gvector2) (gvector)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
Obtains the cross product of two gvectors.
None
313
A: Commands
gvector:dot
gvector:dot
Action:
Group:
sde
(gvector:dot gvector1 gvector2)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
Obtains the dot product of two gvectors.
None
gvector:from-to
Action:
Group:
sde
(gvector:from-to position1 position2)
Argument types: position1
POSITION
position2
POSITION
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
This extension returns the gvector from position1 to position2.
None
gvector:length
Action:
Group:
sde
(gvector:length gvector)
Argument types: gvector
GVECTOR
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
314
None
Obtains the length of a gvector as a real value.
None
A: Commands
gvector:parallel?
gvector:parallel?
Action:
Group:
sde
(gvector:parallel? gvector1 gvector2)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension returns #t if gvector1 and gvector2 are parallel;
otherwise, it returns #f. A zero gvector is not parallel to anything including
itself, so it causes the extension to return #t.
None
gvector:perpendicular?
Action:
Group:
sde
(gvector:perpendicular? gvector1 gvector2)
Argument types: gvector1
GVECTOR
gvector2
GVECTOR
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension returns #t if the gvectors are perpendicular; otherwise, it
returns #f. A zero gvector is perpendicular to all gvectors including itself,
and it causes the extension to return #f.
None
gvector:reverse
Action:
Group:
sde
(gvector:reverse gvector)
Argument types: gvector
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
Reverses the direction of a gvector.
None
315
A: Commands
gvector:scale
gvector:scale
Action:
Group:
sde
(gvector:scale gvector scale)
Argument types: gvector
GVECTOR
scale
REAL
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
The resulting gvector is the original gvector scaled by the number.
None
gvector:set!
Action:
Group:
sde
(gvector:set! gvector {x y z})
Argument types: gvector
GVECTOR
x
REAL
y
REAL
z
REAL
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
316
None
The coordinates are computed relative to the active coordinate system.
gvector specifies the original x-, y-, and z-components.
x specifies the value to replace the original x-value specified in gvector.
y specifies the value to replace the original y-value specified in gvector.
z specifies the value to replace the original z-value specified in gvector.
None
A: Commands
gvector:set-x!
gvector:set-x!
Action:
Group:
sde
(gvector:set-x! gvector x)
Argument types: gvector
GVECTOR
x
REAL
Returns:
REAL
Syntax:
Errors:
Limitations:
None
The coordinates are computed relative to the active coordinate system. This
extension returns the x-value as a real.
gvector specifies the original x-, y-, and z-values.
x specifies the value to replace the original x-value specified in gvector.
None
Example:
(gvector:set-x! vector1 3)
Description:
gvector:set-y!
Action:
Group:
sde
(gvector:set-y! gvector y)
Argument types: gvector
GVECTOR
y
REAL
Returns:
REAL
Syntax:
Errors:
Limitations:
None
The coordinates are computed relative to the active coordinate system. This
extension returns the y-value as a real.
gvector specifies the original x-, y-, and z-values.
y specifies the value to replace the original y-value specified in gvector.
None
Example:
(gvector:set-y! vector1 3)
Description:
317
A: Commands
gvector:set-z!
gvector:set-z!
Action:
Group:
sde
(gvector:set-z! gvector z)
Argument types: gvector
GVECTOR
z
REAL
Returns:
REAL
Syntax:
Errors:
Limitations:
None
The coordinates are computed relative to the active coordinate system. This
extension returns the z-value as a real. gvector specifies the original x-, y-,
and z-values. z specifies the value to replace the original z-value specified in
gvector.
None
Example:
(gvector:set-z! vector1 3)
Description:
gvector:transform
Action:
Group:
sde
(gvector:transform gvector transform)
Argument types: gvector
GVECTOR
transform
TRANSFORM
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
318
None
Applies a transform to a gvector.
None
A: Commands
gvector:unitize
gvector:unitize
Action:
Creates a new gvector as a unit vector in the same direction as the specified
gvector.
Group:
sde
(gvector:unitize gvector)
Argument types: gvector
GVECTOR
Returns:
GVECTOR
Syntax:
Errors:
Description:
Limitations:
None
Creates a new gvector as a unit vector in the same direction as the specified
gvector.
None
gvector:x
Action:
Group:
sde
(gvector:x gvector)
Argument types: gvector
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
GVECTOR
None
This extension returns the x-coordinate of the gvector, transformed to the
active work plane.
None
gvector:y
Action:
Group:
sde
(gvector:y gvector)
Argument types: gvector
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
GVECTOR
None
This extension returns the y-coordinate of the gvector, transformed to the
active work plane.
None
319
A: Commands
gvector:z
gvector:z
Action:
Group:
sde
(gvector:z gvector)
Argument types: gvector
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
GVECTOR
None
This extension returns the z-coordinate of the gvector, transformed to the
active work plane.
None
journal:abort
Action:
Group:
sde
(journal:abort)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
320
None
None
None
When stepping, journal:abort terminates the current load without
executing the rest of the commands in the file.
None
A: Commands
journal:append
journal:append
Action:
Opens an existing journal file and appends additional journal data to the end
of the file.
Group:
sde
(journal:append [filename])
Argument types: filename
STRING (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension opens the optional file filename if it exists, where all future
commands are journaled to the existing file. The time and date of the append
to the existing file are indicated in the journal. If the filename is not
specified, a unique name is created after reading the current directory. The
unique name is numerically sequenced from the last journal file created or
named j(last number+1).jrl.
None
journal:clean
Action:
Group:
sde
(journal:clean jname)
Argument types: jname
Syntax:
Returns:
Errors:
Description:
Limitations:
STRING
None
None
This function removes all nonexecutable content from the specified script
file. Only the executable Scheme commands remain; therefore,
parameterizing and debugging the journal file are easier if the saved journal
file is cleaned up first.
None
321
A: Commands
journal:load
journal:load
Action:
Group:
sde
(journal:load filename)
Argument types: filename
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension loads an existing journal file and runs each command
contained in that file. Each line is journaled if journaling is switched on.
This extension works like the load primitive, except that the file is evaluated
one line at a time instead of all lines simultaneously with the Scheme load
primitive. Encountered errors do not abort the load operation and are
reported in the command-line window. This extension is useful for
debugging Scheme files and for rerunning the commands given in another
Scheme session. An error in the loaded file does not abort the evaluation.
The journal:load extension permits single-stepping through a loaded
file, one line at a time. (journal:step #t) switches it on and should be
run before loading the journal file. In addition, (option:set "timing"
#t) can be used to show the execution time for each command in the
command-line window. Before loading, the directory where the load file is
found is added to the part-load-path.
None
journal:off
Action:
Group:
sde
(journal:off)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
322
None
None
None
All extensions executed after journaling has been switched off are not
retained in the journaling file.
None
A: Commands
journal:on
journal:on
Action:
Closes the current journal file and opens a new journal file.
Group:
sde
(journal:on [filename])
Argument types: filename
STRING (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension opens the optional file filename if it exists, and all future
commands are journaled to the existing file. If filename is not specified,
the extension creates a unique name after reading the current directory. The
unique name is numerically sequenced from the last journal file created or
named j(last number+1).jrl. If the file exists, it is truncated to zero
length.
None
Example:
323
A: Commands
journal:pause
journal:pause
Action:
Group:
sde
(journal:pause)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension does not record in the journal any procedure evaluated while
the journal file is paused.
None
journal:resume
Action:
Group:
sde
(journal:resume)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
Resumes journaling in the journal file after a pause.
None
journal:save
Action:
Group:
sde
(journal:save filename)
Argument types: filename
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
324
None
None
The filename specifies the name of the file in which the journal is saved.
This extension is ignored if journaling is not active (see journal:on on
page 323). An error is generated if the filename is the same as the current
journal file.
None
A: Commands
journal:step
journal:step
Action:
Group:
sde
(journal:step value)
Argument types: value
Syntax:
Returns:
Errors:
Description:
Limitations:
BOOLEAN
None
None
Sets a flag to control stepping through the journal file. When stepping is
switched on, the system waits for input after printing, but before executing
each line. A single return causes the line to be executed. Anything else is
evaluated and the system waits for more input. This allows you to set up
demonstrations and to debug Scheme scripts one line at a time.
To run a demonstration, enter (journal:step #f), but include
(journal:step #t) at points in the script where you want to interact
with the GUI or enter commands in the command-line window. Otherwise,
press the Return key a few times to step through it slowly. Use
(journal:step #f) to return to the free-running mode.
None
loop?
Action:
Group:
sde
(loop? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
This extension returns #t if the object is a loop; otherwise, it returns #f.
The object specifies the Scheme object to be queried.
None
325
A: Commands
loop:external?
loop:external?
Action:
Group:
sde
(loop:external? loop)
Argument types: loop
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
LOOP
lump?
Action:
Group:
sde
(lump? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
326
SCHEME OBJECT
None
This extension returns #t if the object is a lump; otherwise it returns #f.
The object specifies the Scheme object to be queried.
None
A: Commands
mask-refevalwin-extract-2d
mask-refevalwin-extract-2d
Action:
Group:
sde
(mask-refevalwin-extract-2d rwname maskname polarity)
Argument types: rwname
STRING
maskname
STRING
polarity
STRING {"light" | "dark"}
Returns:
ENTITY IDs of the created Ref/Eval windows
Syntax:
Errors:
Description:
None
This extension extracts a 2D Ref/Eval window from the specified mask. The
argument rwname is the name of the extracted mask, maskname is the name
(and not the entity ID) of the used mask, and polarity is the polarity that
is used for the extraction. The default mask polarity is "light".
The function assumes that the domain boundary was set previously. (This
information is needed for "dark" mask extraction.) If the mask consists of
several disjoint lumps, a separate Ref/Eval window is extracted from each
disjoint lump. In this case, the specified rwname is appended with a counter
"_N" where N is the lump counter (from 1 onwards).
Limitations:
Example:
sde:clear)
(sdepe:define-pe-domain 0 0 40 30)
(sdepe:generate-mask "M1" (list (list 0 0 10 10) (list 20 0 30 0 30 10 25 15 20 10))))
(mask-refevalwin-extract-2d "RW1" "M1" "light")
(mask-refevalwin-extract-2d "RW2" "M1" "dark")
327
A: Commands
mask-refevalwin-extract-3d
mask-refevalwin-extract-3d
Action:
Group:
sde
(mask-refevalwin-extract-3d rwname maskname polarity minz maxz)
Argument types: rwname
STRING
maskname
STRING
polarity
{"light" | "dark"}
minz
REAL
maxz
REAL
Returns:
ENTITY IDs of the created Ref/Eval windows
Syntax:
Errors:
Description:
None
This extension extracts a 3D Ref/Eval window from the specified mask. The
argument rwname is the name of the extracted mask, maskname is the name
(and not the entity ID) of the used mask, and polarity is the polarity that
is used for the extraction. The default mask polarity is "light".
The function assumes that the domain boundary was set previously. (This
information is needed for "dark" mask extraction.) The 3D Ref/Eval
window is placed between minz and maxz in the 3D space. If the mask
consists of several disjoint lumps, a separate Ref/Eval window is extracted
from each disjoint lump. In this case, the specified rwname is appended with
a counter "_N" where N is the lump counter (from 1 onwards).
Limitations:
Example:
(sde:clear)
(sdepe:define-pe-domain 0 0 40 30)
(sdepe:generate-mask "M1" (list (list 0 0 10 10) (list 20 0 30 0 30 10 25 15 20 10))))
(mask-refevalwin-extract-3d "RW1" "M1" "light" -0.1 0.5)
(mask-refevalwin-extract-3d "RW2" "M1" "dark" -0.1 0.5)
328
A: Commands
merge-collinear-edges-2d
merge-collinear-edges-2d
Action:
Group:
sdegeo
(merge-collinear-edges-2d body-list [angular-tolerance])
Argument types: body-list
BODY LIST
angular-tolerance
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
An optional angular-tolerance value can be specified. In that case,
besides the perfectly collinear edges, the edges that close an angle, which is
larger than the specified threshold, will also merge (that is, the two edges
will be replaced by one edge, connecting the other end points).
The function can be applied only for 2D models.
part:entities
Action:
Group:
sde
(part:entities [filter=NULL])
Argument types: filter
FILTER (optional)
Returns:
ENTITY LIST
Syntax:
Errors:
Description:
Limitations:
Example:
None
The optional filter controls the kinds of entity that are returned by this
extension. filter is an entity-filter, which is a procedural object that
selects entities from an entity-list.
None
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver"
"region_3")
(part:entities)
(part:entities (filter:type "solid?"))
329
A: Commands
part:load
part:load
Action:
Group:
sde
(part:load filename [textmode=#t] [part=active] [with-history=#f])
Argument types: filename
STRING
textmode
BOOLEAN (optional)
part
PART (optional)
with-history
BOOLEAN (optional)
Returns:
ENTITY LIST
Syntax:
Errors:
Description:
Limitations:
330
None
This extension is a merge function, which means that the restore does not
replace entities; it adds them to the current working session. A list of entities
is returned. filename specifies a file name in the current working directory
or the path that includes the file name. If the optional part is not specified,
the entities in the part file merge into the active part; otherwise, they merge
into the specified part. textmode describes the type of file to be loaded. If
textmode is specified as #t, the data in filename is saved in text mode as
a .sat file. If textmode is #f, filename is loaded as a binary file. If
textmode is not specified, the mode is determined by the extension of the
filename. If the filename string ends in .sab or .SAB, the file is saved
in binary mode; otherwise, the file is saved in text mode. After specifying
the text mode, a second Boolean argument indicates whether to restore the
rollback history data. History data can only be restored into an empty part.
The default, #f, does not restore the history. If part-load-path is set to a list
of strings, they are interpreted as directories to be searched for the part file.
part-load-path is to part-load as load-path is to load. Set the part-load-path in
an initialization file. When a part is saved using part:save and a
filename, the filename becomes the new name for the part.
None
A: Commands
part:save
part:save
Action:
Group:
sde
(part:save [filename=partname.sat] [textmode=#t] [part=active]
[with-history=#f] [mainline-only=#f])
Argument types: filename
STRING (optional)
textmode
BOOLEAN (optional)
part
PART (optional)
with-history
BOOLEAN (optional)
mainline-only
BOOLEAN (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The optional filename specifies a file name to be saved in the current
working directory or specifies the path that includes the file name to be
saved to a directory. If no filename is specified, this extension uses the
name given to the part with the part:set-name extension. The optional
part specifies the part to save; the default is the active part. If textmode is
#t, the data is saved in text mode. If textmode is not specified, the mode is
determined by the extension of the filename. If the filename string ends
in .sab or .SAB, the file is saved in binary mode; otherwise, the file is saved
in text mode. After setting textmode, a second Boolean specifies whether
to save rollback history data. The default, #f, does not save history. A third
Boolean specifies whether rolled branches should be saved. The default, #f,
for this argument indicates the entire history should be saved. The saved file
can be restored at any time. When a part is saved using part:save and a
filename, the filename becomes the new name for the part. Part files can
be saved in the format of an earlier version by setting the save_version
option. The with-history option allows you to save entity-specific
history (that is, history attached to the entity through an attribute). It
specifies whether to save rollback history data. mainline-only specifies
whether rolled back branches should be saved.
None
331
A: Commands
part:save-selection
part:save-selection
Action:
Group:
sde
(part:save-selection ent-list filename [textmode=#f] [with-history=#f])
Argument types: ent-list
ENTITY | ENTITY LIST
filename
STRING
textmode
BOOLEAN (optional)
with-history
BOOLEAN (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
332
None
The filename specifies a file name to be saved in the current working
directory or specifies the path that includes the file name to be saved to a
directory. The ent-list is the list of entities to be saved in the output file.
If textmode is #t, the data is saved in text mode. If textmode is not
specified, the mode is determined by the extension of the filename. If the
filename string ends in .sab or .SAB, the file is saved in binary mode;
otherwise, the file is saved in text mode. The saved file can be restored at
any time. Part files can be saved in the format of an earlier version by setting
the save_version option. The with-history option allows you to save
entity-specific history (that is, history attached to the entity through an
attribute).
None
A: Commands
position
position
Action:
Group:
sde
(position x y z [space="models"])
Argument types: x
REAL
y
REAL
z
REAL
space
STRING (optional)
Returns:
POSITION
Syntax:
Errors:
Description:
Limitations:
None
Relative to the active coordinate system, the argument x defines the xcoordinate, y defines the y-coordinate, and z defines the z-coordinate. If the
model has an origin other than the active work plane, this returns the
position relative to the active coordinate system in rectangular Cartesian
coordinates.
polar or cylindrical means that the x-, y-, and z-values are interpreted
as the radial distance from the z-axis, the polar angle in degrees measured
from the xz plane (using the right-hand rule), and the z-coordinate,
respectively. This returns the x-, y-, and z-terms with respect to the active
coordinate system.
spherical means that the provided x-, y-, and z-values are the radial
distance from the origin, the angle of declination from the z-axis in degrees,
and the polar angle measured from the xz plane in degrees, respectively.
This returns the x, y, and z terms relative to the active coordinate system. A
position is not saved with the part, but is used to help define geometry.
Positions are not displayed in Scheme. A point is an entity. A point is
different from a vertex in that it has no edge associations.
Use env:set-point-size and env:set-point-style to change its
appearance.
None
333
A: Commands
position?
position?
Action:
Group:
sde
(position? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
SCHEME OBJECT
Errors:
None
Description:
Limitations:
None
position:distance
Action:
Group:
sde
(position:distance position1 {position2 | ray})
Argument types: position1
POSITION
position2
POSITION
ray
RAY
Returns:
REAL
Syntax:
Errors:
None
Description:
position1 defines the start location, position2 defines the end location,
and ray defines the ray to calculate the distance.
None
Limitations:
334
A: Commands
position:set!
position:set!
Action:
Group:
sde
(position:set! position1 {x y z}| {position2})
Argument types: position1
POSITION
x
REAL
y
REAL
z
REAL
position2
POSITION
Returns:
POSITION
Syntax:
Errors:
None
Description:
position1 specifies the position to be set. If the x-, y-, and z-values are
specified, they are copied into position1. If position2 is specified, its
position value is copied into position1.
Limitations:
None
position:set-x!
Action:
Group:
sde
(position:set-x! position x)
Argument types: position
POSITION
x
REAL
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
The coordinates are computed relative to the active coordinate system. This
extension returns the x-coordinate as a real value.
position identifies the original y- and z-values.
x specifies the value to replace the original x-value specified in position.
None
335
A: Commands
position:set-y!
position:set-y!
Action:
Group:
sde
(position:set-y! position y)
Argument types: position
POSITION
y
REAL
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
The coordinates are computed relative to the active coordinate system. This
extension returns the y-coordinate as a real value.
position identifies the original x- and z-values.
y specifies the value to replace the original y-value specified in position.
None
position:set-z!
Action:
Group:
sde
(position:set-z! position z)
Argument types: position
POSITION
z
REAL
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
336
None
The coordinates are computed relative to the active coordinate system. This
extension returns the z-coordinate as a real value.
position identifies the original x-value and y-value.
z specifies the value to replace the original z-value specified in position.
None
A: Commands
position:x
position:x
Action:
Group:
sde
(position:x position)
Argument types: position
Returns:
REAL
Syntax:
POSITION
Errors:
None
Description:
Limitations:
None
position:y
Action:
Group:
sde
(position:y position)
Argument types: position
Returns:
REAL
Syntax:
POSITION
Errors:
None
Description:
Limitations:
None
position:z
Action:
Group:
sde
(position:z position)
Argument types: position
Returns:
REAL
Syntax:
POSITION
Errors:
None
Description:
Limitations:
None
337
A: Commands
refinement:props
refinement:props
Action:
Group:
sde
(refinement:props refinement)
Argument types: refinement
REFINEMENT
Returns:
REFINEMENT properties
Syntax:
Errors:
Limitations:
None
This extension returns a list of pairs of refinement criteria and their values.
None
Example:
(refinement:props sde-ref)
Description:
render:rebuild
Action:
Group:
sde
(render:rebuild [clear])
Argument types: clear
BOOLEAN (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
338
None
None
Use this extension after changing viewing parameters. If the optional
argument clear is #t or not present, the window is cleared and the wire
frame is redisplayed from the display list contents. If the argument clear is
#f, the view is not cleared before redisplaying the display list (that is, no
new page is written to the file). If the view is associated with a file, a new
page instruction is written to the file when view:clear is called with #t
or no argument clear. render:rebuild places the image on the
following page of the file.
None
A: Commands
roll
roll
Action:
Group:
sde
(roll [num])
Argument types: num
Returns:
INTEGER
Syntax:
Errors:
Description:
Limitations:
INTEGER (optional)
None
This command can be used to undo or redo the geometry-related and
doping-related or refinement-related operations. The optional number-ofstates specifies the number of states the model can roll. A negative number
means to roll to a previous state, and a positive number means to roll to a
later state. This extension returns the number of steps rolled.
None
sde:add-material
Action:
Group:
sde
(sde:add-material body material-name region-name)
Argument types: body
ACIS ENTITY
material-name
DATEXMAT
region-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension assigns the material and region attributes to a body. The body
is defined by the first argument. material-name must be a valid DATEX
name, which is defined in the datexcodes.txt file. material-name is
assigned as a material attribute to the body. When DFISE boundary output
is generated, the material attribute will be the material of the region. The
region-name attribute defines the region name in the DFISE boundary
output.
None
339
A: Commands
sde:attach-refinement
sde:attach-refinement
Action:
Group:
sde
(sde:attach-refinement ref-name face-list)
Argument types: ref-name
REFINEMENT
face-list
FACE LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The face-list specifies the faces, which will be tessellated, during a
DFISE boundary output, using the refinement properties of ref-name. If
face-list contains a face or faces with an already attached refinement,
that refinement will be replaced by the new refinement.
None
sde:bg-image-transparency
Action:
Group:
sde
(sde:bg-image-transparency transparency-value)
Argument types: transparency-value
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
340
None
None
This command sets the transparency of the loaded image. The
transparency-value argument must be between 0 and 1.
None
A: Commands
sde:build-mesh
sde:build-mesh
Action:
Generates a DFISE boundary output (.bnd) and mesh input file (.cmd), and
calls the mesher.
Group:
sde
(sde:build-mesh mesher options file-basename)
Argument types: mesher
{"mesh" | "noffset" | "snmesh"}
options
STRING
file-basename
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
sde:check-3d-license-status
Action:
Group:
Syntax:
sde
(sde:check-3d-license-status)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
This command is used to check the 3D license status. It returns #t or #f
depending on whether a 3D license is checked out.
None
Description:
Limitations:
341
A: Commands
sde:checkout-3d-license
sde:checkout-3d-license
Action:
Group:
Syntax:
sde
(sde:checkout-3d-license)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
This command is used to check out a 3D license explicitly. By default,
Sentaurus Structure Editor starts with a 2D license and only checks out
(automatically) a 3D license when it is needed (for 3D solid creation, 2D to
3D operations, process emulation operations, and so on).
None
Description:
Limitations:
sde:clear
Action:
Group:
sde
(sde:clear)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
342
None
None
None
This extension clears the database of Sentaurus Structure Editor and restores
all settings to their initial values. (sde:clear) should always be used as
the first call when a new script is executed that requires a clean database.
(sde:clear) also restores the view window to the initial settings.
This extension does not clear the Scheme interpreter. If global Scheme
variables are used, they are still initialized and valid after an (sde:clear)
call.
A: Commands
sde:create-bg-image
sde:create-bg-image
Action:
Group:
sde
(sde:create-bg-image filename horizontal-size vertical-size)
Argument types: filename
STRING
horizontal-size
REAL
vertical-size
REAL
Syntax:
Returns:
Errors:
None
None
Description:
Limitations:
None
NOTE
The image loader supports only images in the older GIF format,
GIF87a. Most current graphic programs use the GIF format GIF89a.
See Background Image Loader on page 275 for more information.
343
A: Commands
sde:create-dialog
sde:create-dialog
Action:
Group:
sde
(sde:create-dialog dlg-name)
Argument types: dlg-name
STRING
Returns:
dialog-id Dialog
Syntax:
Errors:
Limitations:
None
This Scheme extension creates and registers a dialog object. The dialog ID
is returned. All subsequent sde:dialog functions use this dialog ID to add
input fields, a bitmap image, and an OK button to the registered dialog box.
The function returns the dialog entity ID. (The dialog box is handled as a
Scheme object.)
None
Example:
Description:
sde:define-parameter
Action:
Group:
sde
(sde:define-parameter parameter-name value | min-value max-value)
Argument types: parameter-name
STRING
value
REAL | STRING
min-value
REAL
max-value
REAL
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
344
None
The defined parameter can be used later in any Scheme command. The
parameter value can be accessed by typing parameter-name. The
parameter can hold any Scheme type variable. Typically, it is a REAL or
STRING type. For REAL values, two optional values can also be added, minvalue and max-value. This may be useful when you write a parametric
script, where a given parameter can be used and modified only within a
certain range. If parameter-name is width, for example, width_min
will contain min-value and width_max will contain max-value. A
Scheme variable can also be defined using the Scheme command define.
The difference is that the command sde:save-parameters saves only
those Scheme variables that were defined using the sde:defineparameter Scheme extension.
None
A: Commands
sde:define-refinement
sde:define-refinement
Action:
Group:
sde
(sde:define-refinement ref-name)
Argument types: ref-name
REFINEMENT
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command only registers the name of the refinement with the default
refinement settings (surface tolerance 1, normal tolerance 15, aspect ratio
0, max. edge length 0). The properties of the refinement can be changed by
using sde:set-refinement.
None
sde:delay-graphics-update
Action:
Group:
sde
(sde:delay-graphics-update flag)
Argument types: flag
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension switches on or off the refreshing or updating of the view
window. By default, automatic refreshing of the view window is switched
on. When a new body is created or the model is changed in any way that
affects the graphical representation of the model, the view window is
refreshed automatically. In this way, the display always reflects the actual
state of the database of the modeler. This behavior can be changed and the
graphical update can be suppressed using this function. By switching on the
update option, the buffer is flushed and the screen is updated.
None
345
A: Commands
sde:delay-graphics-update?
sde:delay-graphics-update?
Action:
Group:
Syntax:
sde
(sde:delay-graphics-update?)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
This command returns the status of the Scheme extension sde:delaygraphics-update.
None
Description:
Limitations:
sde:delete-bg-image
Action:
Group:
sde
(sde:delete-bg-image)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command removes the previously loaded image from memory.
None
sde:delete-parameter
Action:
Group:
sde
(sde:delete-parameter parameter-name)
Argument types: parameter-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
346
None
The parameter must be previously defined by using sde:deleteparameter.
Scheme variables that were defined simply using the define Scheme
commands cannot be accessed using sde:delete-parameter.
A: Commands
sde:delete-refinement
sde:delete-refinement
Action:
Group:
sde
(sde:delete-refinement ref-name)
Argument types: ref-name
REFINEMENT
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The specified refinement will be removed from all faces that use the
specified refinement.
None
sde:dialog-add-input
Action:
Group:
sde
(sde:dialog-add-input dlgid varname inputstrfield inputtype
[default-value])
Argument types: dlgid
STRING DIALOG TYPE (object returned by
sde:create-dialog)
varname
STRING
inputstrfield
STRING
inputtype
STRING
default-value
VALUE (optional; according to the inputtype field)
Syntax:
Returns:
Limitations:
None
None
This Scheme extension adds an input field to a dialog box. The varname
variable is the Scheme variable name that is passed to the executed Scheme
script. inputstrfield is displayed in the input dialog box. inputtype is
the type (STRING, INTEGER, REAL).
No default value can be assigned to the input fields and variables.
Example:
Errors:
Description:
347
A: Commands
sde:dialog-add-pixmap
sde:dialog-add-pixmap
Action:
Group:
sde
(sde:dialog-add-pixmap dlgid bmpfilename)
Argument types: dlgid
STRING DIALOG TYPE (object returned by
sde:create-dialog)
bmpfilename
STRING
Syntax:
Returns:
Limitations:
None
None
This Scheme extension adds a predefined bitmap image to a dialog box. The
bitmap image must be scaled to the proper size before it is added to the
dialog box.
None
Example:
Errors:
Description:
sde:dialog-delete
Action:
Group:
sde
(sde:dialog-delete dlgid)
Argument types: dlgid
STRING DIALOG TYPE (object returned by
sde:create-dialog)
Syntax:
Returns:
Limitations:
None
None
This function is used to remove a predefined dialog box from the memory.
None
Example:
(sde:dialog-delete dlg)
Errors:
Description:
348
A: Commands
sde:dialog-ok-command
sde:dialog-ok-command
Action:
Group:
sde
(sde:dialog-ok-command dlgid schemefnname argument-list)
Argument types: dlgid
STRING DIALOG TYPE (object returned by
sde:create-dialog)
schemefnname
STRING
argument-list
STRING LIST (in double quotation marks)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
When the OK button of the dialog box is clicked, the Scheme extension is
called with the supplied argument list.
None
Example:
sde:dialog-show
Action:
Group:
sde
(sde:dialog-show dlgid)
Argument types: dlgid
STRING DIALOG TYPE (object returned by
sde:create-dialog)
Syntax:
Returns:
Limitations:
None
None
The Scheme extension sde:dialog-show is used to launch a predefined
dialog box.
None
Example:
(sde:dialog-show dlg)
Errors:
Description:
349
A: Commands
sde:display
sde:display
Action:
Group:
sde
(sde:display string)
Argument types: string
Syntax:
Returns:
Errors:
Description:
Limitations:
STRING
None
None
This function displays the specified string to the command-line window. A
new line character is required to send the contents of the sde:display
buffer to the command-line window. This function is useful if you write
your own Scheme scripts and the function needs to display some
information.
None
sde:exact-coords?
Action:
Group:
Syntax:
sde
(sde:exact-coords?)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
If exact coordinates are used, the command returns #t.
If the Exact Coordinates mode is switched off, it returns #f.
None
Description:
Limitations:
350
A: Commands
sde:extract-tdr-boundary
sde:extract-tdr-boundary
Action:
Group:
sde
(sde:extract-tdr-boundary fname)
Argument types: fname
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The function extracts the boundary and saves it in a TDR .bnd format from
a TDR grid file. The function uses Sentaurus Mesh through a system call to
extract the boundary.
None
sde:fix-imprint
Action:
Group:
sde
(sde:fix-imprint)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
The generated model must be tessellated before meshing and several
different conformity requirements must be satisfied. One of the most
important requirements is that neighboring bodies share the boundary edges
(in 2D) and the boundary faces (in 3D). Before the tessellated model is
generated, Sentaurus Structure Editor automatically imprints the edges and
faces of the neighboring bodies to each other. During model generation, the
modeler tries to create a conformal model in each modeling step but several
operations can destroy model conformity by merging collinear edges and
coplanar faces. In this case, the sde:fix-imprint Scheme extension
restores model conformity.
None
351
A: Commands
sde:fix-orientation
sde:fix-orientation
Action:
Group:
sde
(sde:fix-orientation)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension fixes the orientation of 3D regions, with surface normals
pointing inside the body. Mainly native ACIS models, generated by other
CAD tools and imported as .sat files, may have this problem. Directgeometry generation functions in Sentaurus Structure Editor always
generate 3D bodies with positive volume and surface normals pointing
outside.
None
sde:get-default-material
Action:
Group:
sde
(sde:get-default-material)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
352
None
None
None
The function returns the selected DATEX material in a string. The DATEX
material can be selected from the GUI, using the material selection list or
the sde:set-default-material function.
None
A: Commands
sde:get-view-params
sde:get-view-params
Action:
Group:
sde
(sde:get-view-params)
Syntax:
Argument types:
Returns:
None
A list containing:
eye position
target position
up-vector
width
height
projection
Errors:
Description:
Limitations:
Example:
POSITION
POSITION
GVECTOR
REAL
REAL
STRING
None
The function takes no arguments and returns a list, which contains all the
necessary data to restore the GUI view to the recorded state.
The sde:set-view-params function can be used to restore the settings.
None
(define myview (sde:get-view-params))
(sde:set-view-params myview)
sde:gui-get-integer
Action:
Group:
sde
(sde:gui-get-integer "variable-name" default-value [dialog-name])
Argument types: variable-name
STRING
default-value
INTEGER
dialog-name
STRING (optional)
Returns:
INTEGER or #f
Syntax:
Errors:
Description:
Limitations:
None
The function can be used in GUI mode only. It displays a dialog box that can
be used to enter an integer variable. The variable-name is displayed.
default-value is used as a default value of the variable. When the OK
button is clicked, the function returns the entered integer, or #f if an
incorrect input was given or the Cancel button was clicked. The optional
dialog-name argument can be used to define the name of the input dialog
box.
None
353
A: Commands
sde:gui-get-real
sde:gui-get-real
Action:
Group:
sde
(sde:gui-get-real "variable-name" default-value [dialog-name])
Argument types: variable-name
STRING
default-value
REAL
dialog-name
STRING (optional)
Returns:
REAL or #f
Syntax:
Errors:
Description:
Limitations:
None
The function can be used in GUI mode only. It displays a dialog box that can
be used to enter a real variable. The variable-name is displayed.
default-value is used as a default value of the variable. When the OK
button is clicked, the function returns the entered integer, or #f if an
incorrect input was given, or the Cancel button was clicked. The optional
dialog-name argument can be used to define the name of the input dialog
box.
None
sde:gui-get-string
Action:
Group:
sde
(sde:gui-get-string "variable-name" default-value [dialog-name])
Argument types: variable-name
STRING
default-value
STRING
dialog-name
STRING (optional)
Returns:
STRING or #f
Syntax:
Errors:
Description:
Limitations:
354
None
The function can be used in GUI mode only. It displays a dialog box that can
be used to enter a string variable. The variable-name is displayed.
default-value is used as a default value of the variable. When the OK
button is clicked, the function returns the entered integer, or #f if an
incorrect input was given or the Cancel button was clicked. The optional
dialog-name argument can be used to define the name of the input dialog
box.
None
A: Commands
sde:hide
sde:hide
Action:
Group:
sde
(sde:hide entity | entity-list)
Argument types: entity
ENTITY
entity-list
ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to remove the specified entities from the scene. The
entities are removed from the scene and the view is refreshed. If the entities
are already removed from the scene, there is no change in the view window.
None
Example:
(sde:clear)
(define r1 (sdegeo:create-rectangle
"r_1"))
(define r2 (sdegeo:create-rectangle
(define r3 (sdegeo:create-rectangle
(define r4 (sdegeo:create-rectangle
"r_4"))
(sde:hide r1)
(sde:hide (list r3 r4))
sde:hide-bg-image
Action:
Group:
sde
(sde:hide-bg-image)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command hides the previously loaded image.
None
355
A: Commands
sde:hide-contact
sde:hide-contact
Action:
Removes all the regions from the view that have the specified contact
attributes.
Group:
sde
(sde:hide-contact contact-name | contact-name-list)
Argument types: contact-name
STRING
contact-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
sde:hide-contact removes all regions from the view, which have
contacts defined with the specified contact attributes. Contacts are identified
with the attribute name contact. In 2D, contacts are edges and, in 3D,
contacts are faces.
None
sde:hide-interface
Action:
Group:
sde
(sde:hide-interface interface-name | interface-name-list)
Argument types: interface-name
STRING
interface-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
356
None
None
sde:hide-interface removes all regions from the view, which have
interfaces defined with the specified interface attributes. Interfaces are
identified with the attribute name interface. In 2D, interfaces are edges
between neighboring regions and, in 3D, interfaces are faces between
neighboring regions.
None
A: Commands
sde:hide-mask
sde:hide-mask
Action:
Group:
sde
(sde:hide-mask mask-name | mask-name-list)
Argument types: mask-name
STRING
mask-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension removes the specified masks from the scene. Masks are
planar wire bodies that have the specified mask-names as mask name
attributes.
None
sde:hide-material
Action:
Removes the entities with the specified materials from the scene.
Group:
sde
(sde:hide-material datex-material | datex-material-list)
Argument types: datex-material
DATEXMAT
datex-material-list
DATEXMAT LIST
Syntax:
Returns:
Errors:
None
None
Description:
Limitations:
material names as material attributes from the scene. The region is removed
from the scene and the view is refreshed. If the region is already removed
from the scene, there is no change in the view window. The argument is a
DATEX material or list of DATEX materials.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sde:hide-material "Silicon")
0
2
4
6
0
0
0
0
0)
0)
0)
0)
(position
(position
(position
(position
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
357
A: Commands
sde:hide-refinement
sde:hide-refinement
Action:
Group:
sde
(sde:hide-refinement ref-name)
Argument types: ref-name
REFINEMENT
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Placements Viewer can also be used, during an interactive session, to
hide facewise refinements.
None
sde:hide-region
Action:
Group:
sde
(sde:hide-region region-name | region-name-list)
Argument types: region-name
STRING (existing region name)
region-name-list
STRING LIST (existing region names)
Syntax:
Returns:
Errors:
None
None
Description:
Limitations:
The bodies, which have the specified region names as region attributes, are
removed from the scene and the view is refreshed. If the region is already
removed from the scene, there is no change in the view window.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position
(sdegeo:create-rectangle (position 2 0 0) (position
(sdegeo:create-rectangle (position 4 0 0) (position
(sdegeo:create-rectangle (position 6 0 0) (position
(sde:hide-region "region_1")
(sde:hide-region (list "region_3" "region_4"))
358
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
A: Commands
sde:info
sde:info
Action:
Group:
sde
(sde:info entity-list)
Argument types: entity-list
ENTITY LIST
Returns:
STRING
Syntax:
Errors:
Description:
Limitations:
None
This extension displays the entity number, and material and region attributes
that are attached to the body.
None
sde:load-sat
Action:
Loads a native ACIS .sat file into Sentaurus Structure Editor, with correct
overlap handling.
Group:
sde
(sde:load-sat file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The difference between part:load and sde:load-sat is that the latter
handles overlapping regions correctly, according to the active Boolean
setting. If a .sat file is loaded into the modeler, which already has some
bodies defined, the overlaps are resolved according to the Boolean setting.
None
359
A: Commands
sde:material-type
sde:material-type
Action:
Group:
sde
(sde:material-type material-name)
Argument types: material-name
DATEXMAT
Syntax:
Returns:
Errors:
None
The function returns the group type from the datexcodes.txt file for the
given material. The group type can be Semiconductor, or Conductor, or
Insulator.
None
Description:
Limitations:
sde:new-region-name
Action:
Group:
Syntax:
sde
(sde:new-region-name)
Argument types:
None
Returns:
STRING
Errors:
None
This extension returns a region name "region_%N", where %N is the actual
region counter. If the region counter is set correctly, the sde:new-regionname function always returns a unique region name.
None
Description:
Limitations:
sde:off-lights
Action:
Group:
sde
(sde:off-lights)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
360
None
None
None
This extension switches off the lights in the view window.
None
A: Commands
sde:on-lights
sde:on-lights
Action:
Group:
sde
(sde:on-lights)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension switches on the lights in the view window.
None
sde:open-model
Action:
Group:
sde
(sde:open-model file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is the counterpart of sde:save-model. It restores the
complete state of the modeler. First, file-name.sat is loaded if it exists.
It is a native ACIS .sat file that contains the geometric description of the
model, including Ref/Eval windows, with all the attributes and contacts of
Sentaurus Structure Editor that are attached. A file-name.scm file is also
loaded if it exists. This file contains all of the defined parameters. Finally, a
Mesh Generation Tools command file is loaded if it exists. This file contains
all refinement-related and doping-related information.
See Mesh Generation Tools User Guide, Chapter 2 on page 5.
None
361
A: Commands
sde:part-load
sde:part-load
Action:
Loads a native ACIS .sat file into Sentaurus Structure Editor, with correct
overlap handling.
Group:
sde
(sde:part-load file-name [loadoption])
Argument types: file-name
STRING
loadoption
BOOLEAN (optional)
Syntax:
Returns:
Errors:
Description:
None
None
Automatic overlap control for loaded .sat or .bnd files.
A global Boolean variable, aut-overlap-control, is used to determine
whether to load .sat or .bnd files with automatic overlap control. If it is #f
(default value), the newly loaded .sat or .bnd files are loaded without
checking for overlaps. If it is set to #t, the newly loaded .sat or .bnd files
are loaded in such a way that the default Boolean overlap setting will be
taken into consideration and the overlaps will be resolved. (Use
(sdegeo:get-default-boolean) to check the current status of the
automatic overlap-handling setting.)
Since the automatic overlap control slows down model loading
considerably, it is helpful to use the default #f value for aut-overlapcontrol if it is known that the loaded files contain only conformal, nonoverlapping regions.
Limitations:
362
A: Commands
sde:pick-point-on-wp
sde:pick-point-on-wp
Action:
Group:
Syntax:
sde
(sde:pick-point-on-wp)
Argument types:
None
Returns:
POSITION
Errors:
None
This function is used to select a point on the view window. The global xyz
coordinates of the selected point are returned as a position entity. The point
is always selected in the active work plane. (The function draws a cross-hair
cursor on the screen, and a horizontal and vertical line also help the
positioning.) In addition, the exact coordinates and snap-to-grid options can
be used together with this function.
None
Description:
Limitations:
sde:pick-two-points-on-wp
Action:
Group:
Syntax:
sde
(sde:pick-two-points-on-wp)
Argument types:
None
Returns:
POSITION LIST
Errors:
None
This function is used to select two points on the view window. The global
xyz coordinates of the selected points are returned as a list of two position
entities. The points are always selected in the active work plane. (The
function draws a cross-hair cursor on the screen, and a horizontal and
vertical line also help the positioning.) In addition, the exact coordinates and
snap-to-grid options can be used together with this function. The first point
is selected by pressing the mouse button; drag to draw a line from the first
point. When the mouse button is released, the two positions are returned.
None
Description:
Limitations:
363
A: Commands
sde:post-message
sde:post-message
Action:
Group:
sde
(sde:post-message message)
Argument types: message
STRING
Syntax:
Returns:
Limitations:
None
None
The Scheme extension sde:post-message displays a message to a dialog
box. The OK button of the dialog box must be clicked to cancel the
message.
None
Example:
Errors:
Description:
sde:refresh
Action:
Group:
sde
(sde:refresh)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
364
None
None
None
This extension discards the existing entity display list and regenerates it
from the entity data. This is useful when the view zooms in on entities,
because the display may appear jagged. This extension destroys the existing
display list, regenerates it from the entities at the new zoom level, and
redisplays the entities in all views associated with the part.
If only GUI actions are used to manipulate the view and modeler, the view is
always updated and there is no need to call sde:refresh.
None
A: Commands
sde:remove-refinement
sde:remove-refinement
Action:
Group:
sde
(sde:remove-refinement face-list)
Argument types: face-list
FACE LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The face-list specifies the faces from which the facewise refinement
properties will be removed. After that, these faces will be tessellated during
a DFISE boundary output, using the refinement properties of the global
refinement sde-ref.
None
sde:restore-cursor
Action:
Group:
sde
(sde:restore-cursor)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This function is used to change the pointer back to the default pointer.
None
365
A: Commands
sde:round-dfise-bnd
sde:round-dfise-bnd
Action:
Group:
sde
(sde:round-dfise-bnd input-file numdigits output-file)
Argument types: input-file
STRING
numdigits
INTEGER
output-file
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Limitations:
None
This extension is used to round the digits in a DFISE boundary file. The
function does not initialize the data structure of Sentaurus Structure Editor.
It only parses the DFISE boundary file, applies the rounding to the vertex
coordinates, and saves the rounded DFISE boundary file. The argument
input-file is the name of the input DFISE boundary file (with the
extension .bnd) and the argument output-file specifies the name of the
output DFISE boundary file (with the extension .bnd).
None
Example:
Description:
366
A: Commands
sde:save-model
sde:save-model
Action:
Group:
sde
(sde:save-model file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension performs a complex task. It calls several other functions to
save the complete model. sde:open-model is the counterpart of this
function that loads the model and restores the original model completely. It
saves a native ACIS .sat file to store the model geometry and refinement/
evaluation (Ref/Eval) windows. The .sat file stores the curved boundaries
and all the attributes of Sentaurus Structure Editor that are attached to the
model. The command also saves a DFISE command file that contains all
refinement-related and doping-related information. A Scheme file is also
saved containing all of the defined parameters. These three files are
sufficient to save and restore the complete state of the modeler. Additionally,
a DFISE boundary file is saved. This file contains a tessellated model, so it
cannot be used to restore the complete geometric model if curved
boundaries are present.
None
sde:save-parameters
Action:
Group:
sde
(sde:save-parameters file-name)
Argument types: file-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This Scheme extension saves all defined parameters (Scheme variables) that
were created using the sde:define-parameter function. The saved
Scheme file can be edited and used for later sessions to restore the complete
previous state of the modeler. Some information about the GUI (such as size
and background color) is also recorded.
None
367
A: Commands
sde:scale-dfise-bnd
sde:scale-dfise-bnd
Action:
Group:
sde
(sde:scale-dfise-bnd input-file scaling-factor output-file)
Argument types: input-file
STRING
scaling-factor
REAL
output-file
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Limitations:
None
This extension is used to scale a DFISE boundary file. The function does
not initialize the data structure of Sentaurus Structure Editor. It only parses
the DFISE boundary file, applies the uniform scaling to the vertices
(multiplying the x-, y-, and z-coordinates by scaling-factor), and saves
the scaled DFISE boundary file. input-file is the name of the input
DFISE boundary file (with the extension .bnd) and output-file
specifies the name of the output DFISE boundary file (with the .bnd
extension).
None
Example:
Description:
sde:scale-scene
Action:
Group:
sde
(sde:scale-scene xs ys zs)
Argument types: xs
REAL
ys
REAL
zs
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
368
None
None
The command can be used to scale the model in the view window. This is
only a view scale. The model coordinates do not change. The operation can
be used to magnify, for example, thin layers. To return to the original view,
use (sde:scale-scene 1 1 1).
None
A: Commands
sde:scmwin-get-font-families
sde:scmwin-get-font-families
Action:
Returns the font types that can be used in the command-line window.
Group:
Syntax:
sde
(sde:scmwin-get-font-families)
Argument types:
None
Returns:
STRING
Errors:
None
This Scheme extension is used to list the available font types that can be
used in the command-line window.
None
Description:
Limitations:
sde:scmwin-get-font-family
Action:
Group:
Syntax:
sde
(sde:scmwin-get-font-family)
Argument types:
None
Returns:
STRING
Errors:
None
This Scheme extension returns the font type that is used in the commandline window.
None
Description:
Limitations:
sde:scmwin-get-font-size
Action:
Group:
Syntax:
sde
(sde:scmwin-get-font-size)
Argument types:
None
Returns:
font-size
Errors:
None
This function is used to determine the font size of the command-line
window.
None
Description:
Limitations:
INTEGER
369
A: Commands
sde:scmwin-select-font
sde:scmwin-select-font
Action:
Group:
Syntax:
sde
(sde:scmwin-select-font)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
This Scheme extension launches the Select Font dialog box, which is used
to select the font, font style, and size of the command-line window.
None
Description:
Limitations:
sde:scmwin-set-font-family
Action:
Group:
sde
(sde:scmwin-set-font-family font-type)
Argument types: font-type
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This Scheme extension is used to set the font type used in the command-line
window.
None
sde:scmwin-set-font-size
Action:
Group:
sde
(sde:scmwin-set-font-size font-size)
Argument types: font-size
INTEGER
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
370
None
This function is used to set the font size of the command-line window.
None
A: Commands
sde:scmwin-set-prefs
sde:scmwin-set-prefs
Action:
Group:
sde
(sde:scmwin-set-prefs font-type font-style font-size cmdwin-height)
Argument types: font-type
STRING
font-style
STRING
font-size
INTEGER
cmdwin-height
INTEGER
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This Scheme extension is used to set the parameters of the command-line
window. font-type specifies the command-line window font. Select
sde:scmwin-get-font-families for the available fonts and
sde:scmwin-get-font-family for the active setting. font-style can
be used to set the actual font style.
The Scheme extension sde:scmwin-select-font launches the Select
Font dialog box, which can be used to change font styles. font-size is
used to set the required font size and cmdwin-height is used to specify the
height of the command-line window.
None
sde:scmwin-set-window-height
Action:
Group:
sde
(sde:scmwin-set-window-height height)
Argument types: height
INTEGER
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This Scheme extension is used to set the height of the command-line
window.
None
371
A: Commands
sde:scmwin-suppress-output
sde:scmwin-suppress-output
Action:
Group:
sde
(sde:scmwin-suppress-output bool)
Argument types: bool
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This Scheme extension is used to display or hide messages in the commandline window.
None
sde:selected-entities
Action:
Group:
Syntax:
sde
(sde:selected-entities)
Argument types:
None
Returns:
ENTITY LIST
Errors:
None
The selection tools of the GUI (Select mode) can be used to select geometric
entities (body, face, edge, vertex). The selected entities are highlighted.
None
Description:
Limitations:
sde:selected-refeval-windows
Action:
Group:
Syntax:
sde
(sde:selected-refeval-windows)
Argument types:
None
Returns:
ENTITY LIST
Errors:
None
The selection tools of the GUI (Select mode) can be used to select
previously defined Ref/Eval windows. The selected Ref/Eval windows are
highlighted.
None
Description:
Limitations:
372
A: Commands
sde:selected-refinements
sde:selected-refinements
Action:
Group:
Syntax:
sde
(sde:selected-refinements)
Argument types:
None
Returns:
ENTITY LIST
Errors:
None
The selection tools of the GUI (Select mode) can be used to select
previously defined Ref/Eval windows. The selected Ref/Eval windows are
highlighted.
None
Description:
Limitations:
NOTE
This Scheme function has been renamed sde:selected-refevalwindows, though this old command name is still valid for backward
compatibility.
373
A: Commands
sde:separate-lumps
sde:separate-lumps
Action:
Group:
sde
(sde:separate-lumps)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
Geometric operations can result in models with bodies that have multiple
lumps (disjoint parts of a body). Since each body has a unique region-name
attribute, these separate lumps in a body will have the same region name. As
the Synopsys meshing engines require a unique region name for each
disjoint region, bodies with multiple lumps must be separated before a
DFISE boundary file is generated.
This extension separates lumps and is also called automatically before a
DFISE boundary file is generated. For example, if the original region name
was region_1 and it has three lumps before sde:separate-lumps is
called, sde:separate-lumps breaks the body into three parts and
assigns a unique region name to each. A _lump_N string is added to each
lump, where N is the lump counter, starting from 1. Therefore, three new
bodies are generated with the region names region_1_lump_1,
region_1_lump_2, and region_1_lump_3.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 10 3 0) "Silver" "region_1")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 4 -1 0) (position 6 4 0) "Silicon" "region_2")
; region_1 will have two lumps !
(get-body-list)
; returns the entity ids of the two bodies
(sde:separate-lumps)
(get-body-list)
; returns the entity ids of the three bodies
; region_1 was separated into two bodies, with region names
; region_1_lump_1 and region_1_lump_2
374
A: Commands
sde:set-background-color
sde:set-background-color
Action:
Group:
sde
(sde:set-background-color rtop gtop btop rbottom gbottom bbottom)
Argument types: rtop
INTEGER
gtop
INTEGER
btop
INTEGER
rbottom
INTEGER
gbottom
INTEGER
bbottom
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The RGB colors for the top and bottom must be specified (0255). If the top
and bottom colors differ, a graded background will be used. If the top and
bottom RGB colors match, the background will be uniform.
None
sde:set-default-material
Action:
Group:
sde
(sde:set-default-material datex-material)
Argument types: datex-material
DATEXMAT
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Scheme extension sde:set-default-material is used to change
the active DATEX material. The function argument is a string that
corresponds to one of the DATEX colors, specified in the
datexcodes.txt file. The function also changes the selected DATEX
material in the DATEX list.
None
375
A: Commands
sde:set-process-up-direction
sde:set-process-up-direction
Action:
Group:
sde
(sde:set-process-up-direction up-direction)
Syntax:
0 | 1
Returns:
BOOLEAN
Errors:
Limitations:
None
This function is used to specify which coordinate system convention is used
during process emulation. It needs one input argument. If 0 is used, the up
direction is +z (default). If 1 is used, the up direction changes to -x.
If the Sentaurus ProcessSentaurus Structure Editor interface is used to
perform process emulation, the Scheme script generated by Sentaurus
Process will contain instructions to select the correct coordinate system
convention automatically.
None
Example:
(sde:set-process-up-direction 1)
Description:
sde:set-refinement
Action:
Group:
sde
(sde:set-refinement ref-name surface-tolerance normal-tolerance
[aspect-ratio [max-edge-length]])
Argument types: ref-name
REFINEMENT
surface-tolerance
REAL
normal-tolerance
REAL
aspect-ratio
REAL (optional)
max-edge-length
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
376
None
None
The surface-tolerance and normal-tolerance values must be given
(surface and normal tolerance), while the aspect-ratio and the maxedge-length values are optional.
None
A: Commands
sde:set-rendering-mode
sde:set-rendering-mode
Action:
Group:
sde
(sde:set-rendering-mode rendering-mode)
Argument types: rendering-mode
STRING
Returns:
Previous setting (STRING)
Syntax:
Errors:
Description:
Limitations:
None
The rendering mode can be facet, wire, flat, gouraud (or alternatively,
smooth), and hidden.
None
sde:set-selection-level
Action:
Group:
sde
(sde:set-selection-level filter-type)
Argument types: filter-type
{"body" | "face" | "edge" | "vertex" | "other"}
Syntax:
Returns:
Limitations:
None
None
This function sets the selection filter to the specified value. All subsequent
selection operations will use the specified filter to select only those entities
that correspond to the specified type.
None
Example:
(sde:set-selection-level "edge")
Errors:
Description:
377
A: Commands
sde:set-translucency
sde:set-translucency
Action:
Group:
sde
(sde:set-translucency body(list) tflag)
Argument types: body(list)
ENTITY | ENTITY LIST
tflag
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command takes two arguments where the first is either an entity or a
list of entities, and the second argument tflag is a Boolean: true means
make translucent and false means make opaque.
None
sde:set-view-mode
Action:
Group:
sde
(sde:set-view-mode view-mode)
Argument types: view-mode
STRING
Syntax:
Returns:
Errors:
Description:
None
None
This function sets the view to the specified value. view-mode can be one of
the following: ISO, XY, XZ, YZ, or X-Y.
ISO specifies the isometric view, XY sets the view to the xy plane and so on,
and X-Y sets the view window in such a way that the x-axis points
Limitations:
378
horizontally and the y-axis points downwards. The function also performs a
zoom extent operation.
None
A: Commands
sde:set-view-operator
sde:set-view-operator
Action:
Group:
sde
(sde:set-view-operator op-mode)
Argument types: op-mode
STRING
Returns:
Previous setting (STRING)
Syntax:
Errors:
Description:
Limitations:
None
This function manipulates the toolbar, by setting the active actions to the
specified mode. The available op-mode options are orbit, zoom, pan, and
select.
None
sde:set-view-params
Action:
Group:
Syntax:
sde
(sde:set-view-params view-params)
Argument types:
Returns:
Errors:
Description:
Limitations:
Example:
POSITION
POSITION
GVECTOR
REAL
REAL
STRING
None
None
The function sets the GUI view to a previously recorded state.
view-params is a list containing the same parameters that are returned by
sde:get-view-params, but with some less rigid constraints.
The up-vector, width, height, and projection are optional. The
order is not significant, but eye must precede target and, if given, then
width must precede height. Existing settings are used if the optional
values are not given.
None
(define myview (sde:get-view-params))
(sde:set-view-params myview)
379
A: Commands
sde:set-window-position
sde:set-window-position
Action:
Group:
sde
(sde:set-window-position xpos ypos)
Argument types: xpos
INTEGER
ypos
INTEGER
Syntax:
Returns:
Errors:
None
None
Description:
xpos and ypos are used to specify the horizontal and vertical placements of
Limitations:
the GUI.
None
sde:set-window-size
Action:
Group:
sde
(sde:set-window-size xsize ysize)
Argument types: xsize
INTEGER
ysize
INTEGER
Syntax:
Returns:
Errors:
None
None
Description:
xsize and ysize specify the horizontal and vertical sizes (in pixels) of the
Limitations:
GUI.
None
sde:set-window-style
Action:
Group:
sde
(sde:set-window-style wstyle)
Argument types: wstyle
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
380
None
None
This function is used to set the GUI style. The available styles are Windows,
Motif, Cleanlooks, Plastique, and CDE.
None
A: Commands
sde:setrefprops
sde:setrefprops
Action:
Group:
sde
(sde:setrefprops surface-tolerance normal-tolerance)
Argument types: surface-tolerance
REAL
normal-tolerance
REAL
Syntax:
Returns:
Errors:
Description:
None
None
This extension controls the properties of the internal faceter of Sentaurus
Structure Editor, which is an important link between Sentaurus Structure
Editor and other Synopsys tools. When Sentaurus Structure Editor contains
a model with curved boundaries, this internal curved representation must be
tessellated before a DFISE boundary file is generated. Two parameters
control this tessellation: surface-tolerance and normal-tolerance.
surface-tolerance is an absolute number. It is the allowable maximum
Limitations:
surface normals of the original and tessellated models. Both values are
global and apply to the complete model. In the case of a thin, curved
channel, the refinement based on surface-tolerance is not
recommended. It is better to control the normal-tolerance.
None
381
A: Commands
sde:setup-grid
sde:setup-grid
Action:
Group:
sde
(sde:setup-grid x-spacing y-spacing edge-weight edge-pattern)
Argument types: x-spacing
REAL
y-spacing
REAL
edge-weight
INTEGER
edge-pattern
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
382
None
None
This function sets the basic parameters for the grid. x-spacing and yspacing specify the horizontal and vertical grid size. edge-weight
specifies the line thickness and edge-pattern specifies the line pattern
that is used for drawing the grid. The possible values for edge-pattern
are pattern strings: a solid line "---", a simple dashed line "- -", a dotted
line "....", dashes and dots alternating "-.-.", dashes and two-dots
alternating "-..-..", dashes and three dots alternating "-...-...", long
----", very long-dash and short-dash alternating
dashes "---"center",
and
very
long-dash
and
double-short-dash
alternating "phantom".
None
(sde:setup-grid 1 1 2 "...")
(sde:show-grid #t)
A: Commands
sde:show
sde:show
Action:
Group:
sde
(sde:show entity | entity-list)
Argument types: entity
ENTITY
entity-list
ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to show the specified entity or entities in the view
window. The bodies are added to the scene and the view is refreshed. If the
entity is already visible, there is no change in the view window.
None
Example:
(sde:clear)
(define r1 (sdegeo:create-rectangle
"r_1"))
(define r2 (sdegeo:create-rectangle
(define r3 (sdegeo:create-rectangle
(define r4 (sdegeo:create-rectangle
"r_4"))
(sde:xshow-material "")
(sde:show r1)
(sde:show (list r3 r4))
sde:showattribs
Action:
Group:
sde
(sde:showattribs entity-list | "all")
Argument types: entity-list
ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension shows the attached attributes for the specified entitylist. Instead of an entity-list, the keyword all can also be specified,
in which case, all ACIS bodies are shown. The function displays the ACIS
part number, and the material and region attributes of Sentaurus Structure
Editor that are attached to the bodies.
None
383
A: Commands
sde:show-bg-image
sde:show-bg-image
Action:
Group:
sde
(sde:show-bg-image)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command displays the loaded image.
None
sde:show-contact
Action:
Adds all the regions to the view that have the specified contact attributes.
Group:
sde
(sde:show-contact contact-name | contact-name-list)
Argument types: contact-name
STRING
contact-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function adds all regions to the view, which have contacts defined with
the specified contact attributes. Contacts are identified with the attribute
name contact. In 2D, contacts are edges and, in 3D, contacts are faces.
None
sde:show-grid
Action:
Group:
sde
(sde:show-grid on-off)
Argument types: on-off
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
384
None
The function switches on and off visualization of the grid in the view
window.
None
A: Commands
sde:show-interface
sde:show-interface
Action:
Group:
sde
(sde:show-interface interface-name | interface-name-list)
Argument types: interface-name
STRING
interface-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension adds to the view all regions that have interfaces defined with
the specified interface attributes. Interfaces are identified with the attribute
name interface. In 2D, interfaces are edges between neighboring regions
and, in 3D, interfaces are faces between neighboring regions.
None
sde:show-mask
Action:
Group:
sde
(sde:show-mask mask-name | mask-name-list)
Argument types: mask-name
STRING
mask-name-list
STRING LIST
Syntax:
Returns:
Errors:
None
None
Description:
sde:show-mask adds the specified masks to the view. Masks are planar
wire bodies that have the specified mask-names as mask name attributes.
Limitations:
None
385
A: Commands
sde:show-material
sde:show-material
Action:
Group:
sde
(sde:show-material datex-material | datex-material-list)
Argument types: datex-material
DATEXMAT
datex-material-list
DATEXMAT LIST
Syntax:
Returns:
Errors:
None
None
Description:
Limitations:
material names as material attributes. The region is added to the scene and
the view is refreshed. If the region is already visible, there is no change in
the view window. The argument is a DATEX material or list of DATEX
materials.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sde:xshow-material "")
(sde:show-material "Silicon")
0
2
4
6
0
0
0
0
0)
0)
0)
0)
(position
(position
(position
(position
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
sde:show-pcurves
Action:
Group:
sde
(sde:show-pcurves rendering-flag [u-params [v-params]])
Argument types: rendering-flag
BOOLEAN
u-params
INTEGER (optional)
v-params
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
386
None
None
This function is used to visualize the parametric curves for each entity,
defined in the database. The Boolean rendering-flag is used to switch
on or off the parameter line visualization. If the optional arguments
u-params and v-params are not specified, the default value of 5 is used.
Only the wire frame view is affected by this function, by rendering the
parameter lines.
A: Commands
sde:show-refinement
sde:show-refinement
Action:
Group:
sde
(sde:show-refinement ref-name)
Argument types: ref-name
REFINEMENT
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Placements Viewer can also be used, during an interactive session, to
visualize facewise refinements.
None
sde:show-region
Action:
Group:
sde
(sde:show-region region-name | region-name-list)
Argument types: region-name
STRING (existing region name)
region-name-list
STRING LIST (existing region names)
Syntax:
Returns:
Errors:
None
None
Description:
Limitations:
window. The bodies, which have the specified region name as region
attribute, are added to the scene and the view is refreshed. If the region is
already visible, there is no change in the view window.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position
(sdegeo:create-rectangle (position 2 0 0) (position
(sdegeo:create-rectangle (position 4 0 0) (position
(sdegeo:create-rectangle (position 6 0 0) (position
(sde:xshow-material "")
(sde:show-region "region_1")
(sde:show-region (list "region_3" "region_4"))
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
387
A: Commands
sde:split-solid
sde:split-solid
Action:
Group:
sdegeo
(sde:split-solid solid-body base-position plane-normal)
Argument types: solid-body
BODY
base-position
POSITION
plane-normal
GVECTOR
Returns:
BODY LIST
Syntax:
Errors:
Description:
Limitations:
Example:
NOTE
388
None
The new split bodies can be treated as high-level entities. They can be
deleted, new material and region properties can be assigned to them, and
any geometry operations can be applied to them that can be applied to highlevel entities only. The argument list contains solid-body, which will be
split. The cut plane is defined by a base-position (that is, a position
variable) and a normal vector (plane-normal), that is, a gvector variable.
None
(sde:clear)
(define my_cube (sdegeo:create-cuboid (position -1 -1 -1)
(position 1 1 1) "Silver" "xx"))
(sde:split-solid my_cube (position 0 0 0) (gvector 1 1 0))
(sde:split-solid my_cube (position 0 0 0) (gvector 1 -1 0))
After a solid entity is split into parts, the region names will no longer be
unique. All split parts will have the same region name, therefore,
renaming of these parts may be necessary.
A: Commands
sde:stripextension
sde:stripextension
Action:
Group:
sde
(sde:stripextension name)
Argument types: name
STRING
Returns:
STRING
Syntax:
Errors:
Description:
Limitations:
None
This function locates the last dot (.) in the specified string and removes all
characters that follow. The stripped string is returned. If the input string does
not have a dot, the input string is returned.
None
sde:test-entity
Action:
Group:
sde
(sde:test-entity entities)
Argument types: entities
ENTITY | ENTITY LIST
Returns:
"unknown"
"solid"
Solid with a positive volume (manifold)
"non-manifold"
Solid with 0 volume (non-manifold)
"mask"
Mask (same conditions as for "non-manifold", but
also the maskname attribute is defined)
Syntax:
Errors:
Description:
Limitations:
None
Returns the entity types.
None
389
A: Commands
sde:toggle-lights
sde:toggle-lights
Action:
Group:
sde
(sde:toggle-lights)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
The function behaves like a light switch. It switches on or off the lights of
the view window.
None
sde:view-filter-reset
Action:
Group:
sde
(sde:view-filter-reset)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
The scene is reset to the default value. (All regions and contacts are shown,
and interfaces are hidden.)
None
sde:view-set-light-intensity
Action:
Group:
sde
(sde:view-set-light-intensity lintensity)
Argument types: lintensity
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
390
None
None
This function sets the light intensity of the GUI drawing area. The light
intensity can be changed between 0 and 1.
None
A: Commands
sde:view-set-visible-area
sde:view-set-visible-area
Action:
Group:
sde
(sde:view-set-visible-area xmin xmax ymin ymax)
Argument types: xmin
REAL
xmax
REAL
ymin
REAL
ymax
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function is used to resize the GUI drawing area explicitly. If the
bounding box of the created device is known, it may be convenient to preset
the view area to that size.
None
sde:wait-cursor
Action:
Group:
sde
(sde:wait-cursor)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This function is used to change the pointer to an hourglass pointer.
None
391
A: Commands
sde:window-select-2d
sde:window-select-2d
Action:
Returns a list containing all vertex and edge entities that are inside the
specified 2D window.
Group:
sdegeo
(sde:window-select-2d x-left y-left x-right y-right elist stype)
Argument types: x-left
REAL
y-left
REAL
x-right
REAL
y-right
REAL
elist
{BODY LIST | "all"}
stype
{"vertex" | "edge"}
Returns:
LIST
Syntax:
Errors:
Description:
Limitations:
None
This function selects all entities (of the specified type, stype), lying in the
specified 2D window. The first four arguments in the argument list x-left,
y-left, x-right, and y-right define the rectangular window that will
be used during the selection. The elist argument can be either "all", in
which case, all entities in the model will be used for the selection, or it can
be a body list. The last argument stype is the selection criterion. It can be
either "vertex" or "edge". If stype is "vertex", a vertex list will be
returned. If it is "edge", an edge list will be returned. If no entity is found,
an empty list is returned.
The function can be applied only to 2D models.
A similar extension sde:window-select-3d can be applied to 3D
models.
Example:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-rectangle (position 0 0
(sdegeo:create-circle (position 1 2 0)
(define vlist (sde:window-select-2d -1
(define elist (sde:window-select-2d -1
392
A: Commands
sde:window-select-3d
sde:window-select-3d
Action:
Returns a list containing all vertex, edge, or face entities that are inside the
specified 3D window.
Group:
sdegeo
(sde:window-select-3d pmin pmax elist stype)
Argument types: pmin
POSITION
pmax
POSITION
elist
{BODY LIST | "all"}
stype
{"vertex" | "edge" | "face"}
Returns:
LIST
Syntax:
Errors:
Description:
Limitations:
None
This function selects all entities (of the specified type, stype), lying in the
specified 3D window. The first two arguments pmin and pmax define the 3D
window (cuboid) that will be used during the selection. The elist
argument can be either "all", in which case, all entities in the model will
be used for the selection or it can be a body list. The last argument stype is
the selection criterion. It can be either "vertex", "edge", or "face". If
stype is "vertex", a vertex list will be returned. If it is "edge", an edge
list will be returned. If it is "face", a face list is returned. If no entity is
found, an empty list is returned.
The function applies only to 3D models.
A similar extension sde:window-select-2d can be applied to 2D
models.
sde:write-hsf
Action:
Generates a HOOPS Stream Format (.hsf) file, which represents the model.
Group:
sde
(sde:write-hsf file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Scheme extension generates an .hsf file, which can be used for
presentations (for example, the file can be included in a Microsoft
PowerPoint presentation). The Microsoft tools require the installation of an
ActiveX component, which is available from http://www.openhsf.org. The
HSF representation of a geometric model provides a very small file, which
is fast to load or to forward electronically. For more information about the
HSF initiative, visit the abovementioned website.
None
393
A: Commands
sde:xshow
sde:xshow
Action:
Adds the specified entity or entities to the scene and hides all other entities.
Group:
sde
(sde:xshow entity | entity-list)
Argument types: entity
ENTITY
entity-list
ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to show the specified entities exclusively in the view
window. The entities are added to the scene. All other entities are removed
from the view and the view is refreshed.
None
Example:
(sde:clear)
(define r1 (sdegeo:create-rectangle
"r_1"))
(define r2 (sdegeo:create-rectangle
(define r3 (sdegeo:create-rectangle
(define r4 (sdegeo:create-rectangle
"r_4"))
(sde:xshow r1)
(sde:xshow (list r3 r4))
sde:xshow-contact
Action:
Adds all the regions to the view that have the specified contact attributes and
removes all other regions.
Group:
sde
(sde:xshow-contact contact-name | contact-name-list)
Argument types: contact-name
STRING
contact-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
394
None
None
This function exclusively adds all regions to the view that have contacts
defined with the specified contact attributes. Contacts are identified with the
attribute name contact. In 2D, contacts are edges and, in 3D, contacts are
faces.
None
A: Commands
sde:xshow-interface
sde:xshow-interface
Action:
Adds the specified interfaces to the view and removes all other interfaces.
Group:
sde
(sde:xshow-interface interface-name | interface-name-list)
Argument types: interface-name
STRING
interface-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function exclusively adds all regions to the view, which have interfaces
defined, with the specified interface attributes. Interfaces are identified with
the attribute name interface. In 2D, interfaces are edges between
neighboring regions and, in 3D, interfaces are faces between neighboring
regions.
None
sde:xshow-mask
Action:
Adds the specified masks to the scene and removes all other masks.
Group:
sde
(sde:xshow-mask mask-name | mask-name-list)
Argument types: mask-name
STRING
mask-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command exclusively adds the specified masks to the view, that is, the
specified masks are added and all other masks are removed. Masks are
planar wire bodies that have the specified mask-names as mask name
attributes.
None
395
A: Commands
sde:xshow-material
sde:xshow-material
Action:
Adds the entities with the specified materials to the scene and hides all other
entities.
Group:
sde
(sde:xshow-material datex-material | datex-material-list)
Argument types: datex-material
DATEXMAT
datex-material-list
DATEXMAT LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to show exclusively the regions that have the
specified material names as material attributes. The region is added to the
scene, all other regions are removed from the view, and the view is
refreshed. The argument is a DATEX material or list of DATEX materials.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sde:xshow-material "Silicon")
396
0
2
4
6
0
0
0
0
0)
0)
0)
0)
(position
(position
(position
(position
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
A: Commands
sde:xshow-region
sde:xshow-region
Action:
Adds the specified entity or entities to the scene and hides all other entities.
Group:
sde
(sde:xshow-region region-name | region-name-list)
Argument types: region-name
STRING (existing region name)
region-name-list
STRING LIST (existing region names)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to show the specified regions exclusively in the view
window. The bodies, which have the specified region names as region
attributes, are added to the scene. All other bodies are removed from the
view and the view is refreshed.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sde:xshow-region "region_1")
(sde:xshow-region (list "region_3"
0
2
4
6
0
0
0
0
0)
0)
0)
0)
(position
(position
(position
(position
1
3
5
7
1
1
1
1
0)
0)
0)
0)
"Photoresist" "region_1")
"Silicon" "region_2")
"Resist" "region_3")
"PolySilicon" "region_4")
"region_4"))
sde:zoom-all
Action:
Group:
sde
(sde:zoom-all)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This Scheme extension is used to fit the model to the view window.
None
397
A: Commands
sdeaxisaligned:set-parameters
sdeaxisaligned:set-parameters
Action:
Group:
sde
(sdeaxisaligned:set-parameters "maxAngle" maxAngle
"maxAspectRatio" maxAspectRatio "geometricAccuracy" geometricAccuracy
"maxNeighborRatio" maxNeighborRatio "minEdgeLength" minEdgeLength
"decimate" decimate "smoothing" smoothing "xCuts" xCuts-list
"yCuts" yCuts-list "zCuts" zCuts-list)
Argument types: maxAngle
REAL
maxAspectRatio
REAL
geometricAccuracy
REAL
maxNeighborRatio
REAL
minEdgeLength
REAL
decimate
BOOLEAN
smoothing
BOOLEAN
xCuts
REAL LIST
yCuts
REAL LIST
zCuts
REAL LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
398
None
None
This command sets the global variables used inside the AxisAligned
block of the command file.
None
A: Commands
sdedelaunizer:set-parameters
sdedelaunizer:set-parameters
Action:
Sets the parameters for the delaunizer module of the Mesh Generation
Tools.
Group:
sde
(sdedelaunizer:set-parameters "coplanarityDistance" coplanarityDistance
"coplanarityAngle" coplanarityAngle "minEdgeLength" minEdgeLength
"edgeProximity" edgeProximity "faceProximity" faceProximity
"delaunayTolerance" delaunayTolerance
"type" {"boxmethod" | "conforming" | "constrained"}
"maxPoints" maxPoints "sliverAngle" sliverAngle
"maxSolidAngle" maxSolidAngle "maxNeighborRatio" maxNeighborRatio)
Argument types: coplanarityDistance
REAL
coplanarityAngle
REAL
minEdgeLength
REAL
edgeProximity
REAL
faceProximity
REAL
delaunayTolerance
REAL
type
{"boxmethod" | "conforming" | "constrained"}
maxPoints
REAL
sliverAngle
REAL
maxSolidAngle
REAL
maxNeighborRatio
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Scheme extension sdedelaunizer:set-parameters sets the global
variables used inside the Delaunizer section of the command file of the
Mesh Generation Tools. These are the parameters for the delaunizer module.
See Mesh Generation Tools User Guide, Delaunizer Section on page 44.
None
399
A: Commands
sdedelaunizer:set-tolerance
sdedelaunizer:set-tolerance
Action:
Group:
sde
(sdedelaunizer:set-tolerance tolerance location location-type window)
Argument types: tolerance
REAL
location
{"boundary" | "interior" | "surface"}
location-type
{"region" ["region1" ["region2"]] |
"material" ["material1" ["material2"]] |
"global"}
window
"window" x0 y0 z0 x1 y1 z1
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command sets the tolerance parameters for the delaunizer in the Mesh
and Noffset3D command files.
None
sdedr:append-cmd-file
Action:
Group:
sdedr
(sdedr:append-cmd-file file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
400
None
None
This command appends a text file to the end of a mesh command file. The
mesh command file is not created by this command. You must call
sdedr:write-cmd-file after sdedr:append-cmd-file to create the
mesh command file.
None
A: Commands
sdedr:clear
sdedr:clear
Action:
Group:
sdedr
(sdedr:clear)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command clears all doping-related and refinement-related data from
Sentaurus Structure Editor. A subsequent sdedr:write-cmd-file call
creates an empty command file.
(Mesh > Clear All > Profiles and Definitions)
None
sdedr:clear-multibox-definitions
Action:
Group:
sdedr
(sdedr:clear-multibox-definitions)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command deletes all multibox definitionrelated data from the doping
and refinement container. (Mesh > Clear All > Multibox Definitions)
None
sdedr:clear-multibox-placements
Action:
Group:
sdedr
(sdedr:clear-multibox-placements)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command deletes all multibox placementrelated data from the doping
and refinement container. (Mesh > Clear All > Multibox Placements)
None
401
A: Commands
sdedr:clear-profile-definitions
sdedr:clear-profile-definitions
Action:
Group:
sdedr
(sdedr:clear-profile-definitions)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command deletes all profile definitionrelated data from the doping
and refinement container. (Mesh > Clear All > Profile Definitions)
None
sdedr:clear-profile-placements
Action:
Group:
sdedr
(sdedr:clear-profile-placements)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command deletes all profile placementrelated data from the doping
and refinement container. (Mesh > Clear All > Profile Placements)
None
sdedr:clear-ref-windows
Action:
Group:
sdedr
(sdedr:clear-ref-windows)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
402
None
None
None
This command deletes all previously defined refinement/evaluation
windows from the database. (Mesh > Clear All > Ref/Eval Windows)
None
A: Commands
sdedr:clear-refinement-definitions
sdedr:clear-refinement-definitions
Action:
Group:
sdedr
(sdedr:clear-refinement-definitions)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This function deletes all refinement definitionrelated data from the doping
and refinement container. The DFISE command files contain all
refinement-related data. The command file includes two data blocks that are
related to doping and refinement: a Definitions block and a
Placements block. The Definitions block contains the definitions of
the refinement entities (definition name, refinement size information) and
the Placements block contains the named placements for refinements
(associated refinement windows). This functions deletes all refinementrelated data only from the Definitions data block.
(Mesh > Clear All > Refinement Definitions)
None
sdedr:clear-refinement-placements
Action:
Group:
sdedr
(sdedr:clear-refinement-placements)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This command deletes all refinement placementrelated data from the
doping and refinement container. The DFISE command files contain all
refinement-related data. The command file includes two data blocks that are
related to doping and refinement: a Definitions block and a
Placements block. The Definitions block contains the definitions of
the refinement entities (definition name, refinement size information) and
the Placements block contains the named placements for refinements
(associated refinement windows). This functions deletes all refinementrelated data only from the Placements block.
(Mesh > Clear All > Refinement Placements)
None
403
A: Commands
sdedr:convert-mask-to-drs-body
sdedr:convert-mask-to-drs-body
Action:
Group:
sdedr
(sdedr:convert-mask-to-drs-body maskname refwindowname)
Argument types: maskname
STRING
refwindowname
STRING
Returns:
Boolean
Syntax:
Errors:
Description:
Limitations:
404
None
This function converts the specified mask into a Ref/Eval window. If the
mask is not found, the function returns #f; if the conversion is successful, it
returns #t.
None
A: Commands
sdedr:define-1d-external-profile
sdedr:define-1d-external-profile
Action:
Group:
sdedr
(sdedr:define-1d-external-profile name filename "Scale" scale
["Range" range-from range-to] [lateral-function])
Syntax:
or:
"Gauss" {"Factor" lateral-factor | "Length" length | "StdDev" stddev}
or:
"Eval" eval-init eval-function
STRING
filename
STRING
scale
REAL
range-from
REAL (optional)
range-to
REAL (optional)
lateral-factor
REAL
length
REAL
stddev
REAL
eval-init
STRING
eval-function
STRING
Returns:
Errors:
Description:
Limitations:
None
None
The default units are micrometers. The lateral profile can be given as a
Gaussian function or an error function (see Mesh Generation Tools User
Guide, Defining Analytic Profiles on page 14 for a detailed description of
the parameters). The "Range" keyword with its parameters range-from
and range-to is optional.
None
405
A: Commands
sdedr:define-analytical-profile
sdedr:define-analytical-profile
Action:
Group:
sdedr
(sdedr:define-analytical-profile name species initialization function
start-value analytical-type [ lateral-type-gauss-erf lateral-parameter
lateral-value | "Eval" lateral-eval-init lateral-eval-func ])
Argument types: name
STRING
species
STRING
initialization
STRING
function
STRING
start-value
REAL
analytical-type
STRING = "General" | "Eval"
lateral-type-gauss-erf STRING = "Gauss" | "Erf" (optional)
lateral-parameter
STRING = "factor" | "stddev" | "length" (optional)
lateral-value
REAL (optional)
lateral-eval-init
STRING (optional)
lateral-eval-func
STRING (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
406
None
None
See Mesh Generation Tools User Guide, Defining Analytic Profiles on
page 14 for a detailed description of the parameters.
Note that the optional definition of lateral diffusion is not available if the
definition in the primary direction is the analytic type "General". The
"General" type includes both the primary and lateral distributions in its
definition and, therefore, it is not intended to have a separate lateral
diffusion.
None
A: Commands
sdedr:define-analytical-profile-placement
sdedr:define-analytical-profile-placement
Action:
Group:
sdedr
(sdedr:define-analytical-profile-placement placement-name definition-name
ref-eval-window symmetry replacement evaluation eval-window decay-length
[ "Gauss" ] eval-window-type)
Argument types: placement-name
STRING
definition-name
STRING
ref-eval-window
STRING
symmetry
{"Both" | "Positive" | "Negative"}
replacement
{"Replace" | "NoReplace"}
evaluation
{"Eval" | "NoEval"}
eval-window
STRING
decay-length
REAL
eval-window-type
{"region" | "material" | "evalwin"}
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The parameter decay-length corresponds to the meshing command file
parameter "DecayLength" unless the optional string "Gauss" is
additionally present, in which case, decay-length is interpreted instead as
corresponding to the "GaussDecayLength" parameter of the meshing
command file.
See Mesh Generation Tools User Guide, Referencing Analytic Profiles on
page 26 for a detailed description of the parameters.
None
407
A: Commands
sdedr:define-analytical-profile-placement (old syntax)
Group:
sdedr
(sdedr:define-analytical-profile-placement placement-name definition-name
ref-eval-window "Symm"|"NoSymm" "Replace"|"NoReplace" "Eval"|"NoEval")
Argument types: placement-name
STRING
definition-name
STRING
ref-eval-window
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Analytic Profiles on
page 14 for a detailed description of the parameters.
None
sdedr:define-constant-profile
Action:
Creates a definition for a constant doping profile in the Mesh command file.
Group:
sdedr
(sdedr:define-constant-profile definition-name species concentration)
Argument types: definition-name
STRING
species
STRING
concentration
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
408
None
None
See Mesh Generation Tools User Guide, Defining Constant Profiles on
page 14 for a detailed description of the parameters.
None
A: Commands
sdedr:define-constant-profile-material
sdedr:define-constant-profile-material
Action:
Group:
sdedr
(sdedr:define-constant-profile-material placement-name definition-name
material decay-length replace)
Argument types: placement-name
STRING
definition-name
STRING
material
DATEXMAT
decay-length
REAL (optional)
replace
"Replace" (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Constant Profiles on
page 14 for a detailed description of the parameters.
None
sdedr:define-constant-profile-placement
Action:
Group:
sdedr
(sdedr:define-constant-profile-placement placement-name definition-name
ref-win-name decay-length [ "Gauss" ] replace)
Argument types: placement-name
STRING
definition-name
STRING
ref-win-name
STRING
decay-length
REAL (optional)
replace
"Replace" (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The parameter decay-length corresponds to the meshing command file
parameter "DecayLength" unless the optional string "Gauss" is
additionally present, in which case, decay-length is interpreted instead as
corresponding to the "GaussDecayLength" parameter of the meshing
command file.
See Mesh Generation Tools User Guide, Defining Constant Profiles on
page 14 for a detailed description of the parameters.
None
409
A: Commands
sdedr:define-constant-profile-region
sdedr:define-constant-profile-region
Action:
Group:
sdedr
(sdedr:define-constant-profile-region placement-name definition-name
region-name decay-length replace)
Argument types: placement-name
STRING
definition-name
STRING
region-name
STRING
decay-length
REAL (optional)
replace
"Replace" (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
410
None
None
See Mesh Generation Tools User Guide, Defining Constant Profiles on
page 14 for a detailed description of the parameters.
None
A: Commands
sdedr:define-erf-profile
sdedr:define-erf-profile
Action:
Group:
sdedr
(sdedr:define-erf-profile definition-name species "SymPos" peak-position
"MaxVal" max-value | "Dose" dose "Junction" junction "ValueAtDepth"
value-at-depth "Depth" depth "Length" length "StdDev" standard-deviation
"Gauss"|"Erf" "Factor" factor "StdDev" lateral-standard-deviation
"Length" lateral-length)
Argument types: definition-name
STRING
species
STRING
peak-position
REAL
max-value
REAL
dose
REAL
junction
REAL
value-at-depth
REAL
depth
REAL
length
REAL
standard-deviation
REAL
factor
REAL
lateral-standard-deviation REAL
lateral-length
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Constant Profiles on
page 14 for a detailed description of the parameters.
None
411
A: Commands
sdedr:define-gaussian-profile
sdedr:define-gaussian-profile
Action:
Group:
sdedr
(sdedr:define-gaussian-profile definition-name species
"PeakPos" peak-position {"PeakVal" peak-concentration | "Dose" dose}
{"ValueAtDepth" concentration-at-depth "Depth" depth |
"Length" diffusion-length | "StdDev" standard-deviation}
"Gauss"|"Erf" "Factor" factor)
Argument types: definition-name
STRING
species
STRING
peak-position
REAL
peak-concentration
REAL
dose
REAL
concentration-at-depth REAL
depth
REAL
diffusion-length
REAL
standard-deviation
REAL
factor
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Analytic Profiles on
page 14 for a detailed description of the parameters.
None
sdedr:define-multibox-placement
Action:
Group:
sdedr
(sdedr:define-multibox-placement placement-name definition-name
refwindow-name)
Argument types: placement-name
STRING
definition-name
STRING
refwindow-name
STRING
Syntax:
Returns:
Limitations:
None
None
This command defines the placements part of a multibox definition.
None
Example:
Errors:
Description:
412
A: Commands
sdedr:define-multibox-size
sdedr:define-multibox-size
Action:
Group:
sdedr
(sdedr:define-multibox-size mbox-name max-x max-y [max-z] min-x min-y
[min-z] ratio-x ratio-y [ratio-z])
Argument types: mbox-name
STRING
max-x
REAL
max-y
REAL
max-z
REAL (optional)
min-x
REAL
min-y
REAL
min-z
REAL (optional)
ratio-x
REAL
ratio-y
REAL
ratio-z
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
None
None
This command defines the definitions part of a multibox definition. Note
that max-z, min-z, and ratio-z (in brackets) are optional.
None
(sdedr:define-multibox-size "multibox-2d" 10 10 1 1 2 2)
(sdedr:define-multibox-size "multibox-3d" 10 10 10 1 1 1 2 2 2)
413
A: Commands
sdedr:define-particle-profile
sdedr:define-particle-profile
Action:
Creates a particle profile that describes doping in the Mesh command file.
Group:
sdedr
(sdedr:define-particle-profile name file ["Species" species]
["ScreeningFactor" screening-factor]
["BoundaryExtension" boundary-extension] ["Divisions" divisions]
["AutoScreeningFactor" auto-screening-factor]
["Normalization" normalization])
Argument types: name
STRING
file
STRING
species
STRING
screening-factor
REAL
boundary-extension
REAL
divisions
INTEGER
auto-screening-factor BOOLEAN
normalization
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension creates a particle doping profile.
See Mesh Generation Tools User Guide, Defining Particle Profiles on
page 12 for a detailed description of the parameters.
None
sdedr:define-particle-profile-placement
Action:
Group:
sdedr
(sdedr:define-particle-profile-placement placement-name definition-name
"EvalWindow" eval-window eval-window-type ["Replace" replace])
Argument types: placement-name
STRING
definition-name
STRING
eval-window
STRING
eval-window-type
{"region" | "material" | "evalwin"}
replace
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
414
None
This extension creates a particle profile placement.
See Mesh Generation Tools User Guide, Referencing Particle Profiles on
page 25 for a detailed description of the parameters.
None
A: Commands
sdedr:define-refeval-window
sdedr:define-refeval-window
Action:
Group:
sdedr
(sdedr:define-refeval-window rfwin-name { single-shape | multi-shape })
Argument types: rfwin-name
STRING (name of Ref/Eval window)
multi-shape
(list single-shape1 single-shape2 ...
single-shapen)
single-shape
rfwin-type data
rfwin-type
{"Point" | "Line" | "Rectangle" | "Polygon" |
"Cuboid" | "ComplexPolygon" | "Polyhedron"}
data
POSITION | POSITION LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
415
A: Commands
sdedr:define-refeval-window
Example:
; Line
(sdedr:define-refeval-window "rfwin1" "Line" (position 0 0 0) (position 1 0 0))
; Rectangle
(sdedr:define-refeval-window "rfwin2" "Rectangle" (position 0 -2 0) (position 1 -1 0))
; Polygon
(sdedr:define-refeval-window "rfwin3" "Polygon" (list (position 1 2 0.0)
(position 0.75 2 0.0) (position 1 2.5 0.0) (position 1.25 3 0.0) (position 1.5 3.5 0.0)
(position 1.75 4 0.0) (position 2 4.25 0.0) (position 2.25 4.5 0.0) (position 2.5 2 0.0)
(position 1.5 2 0.0) (position 1 2 0.0)))
; Cuboid
(sdedr:define-refeval-window "rfwin4" "Cuboid" (position 0 0 0) (position 1 2 3))
; Multiconnected Polygon = ComplexPolygon
(sdedr:define-refinement-window "polygon-multiconnected" "ComplexPolygon"
(list
(list (position 0 0 0) (position 0 3 0) (position 3 3 0) (position 3 0 0))
(list (position 1 1 0) (position 1 2 0) (position 2 2 0) (position 2 1 0))))
; Polyhedron
(sdedr:define-refinement-window "polyhedron_shape"
(list (position 0 0 0) (position 0 3 0) (position
(list (position 0 0 3) (position 0 3 3) (position
(list (position 0 0 0) (position 0 0 3) (position
(list (position 0 3 0) (position 0 3 3) (position
(list (position 0 0 0) (position 0 3 0) (position
(list (position 3 0 0) (position 3 3 0) (position
"Polyhedron" (list
3 3 0) (position 3
3 3 3) (position 3
3 0 3) (position 3
3 3 3) (position 3
0 3 3) (position 0
3 3 3) (position 3
0
0
0
3
0
0
0))
3))
0))
0))
3))
3))))
; Multiple body
(sdedr:define-refinement-window "multiple_body" (list
(list "Point" (position 0.15 0.25 0))
(list "Rectangle" (position 0.1 0.2 0) (position 0.3 0.4 0))
(list "Line" (position 1.5 1.6 0) (position 1.7 1.8 0))
(list "Polygon" (list (position 0 0 0) (position 0.1 0.3 0) (position 0.2 0.4 0)
(position 0.3 0.2 0) (position 0.2 0.0 0) (position 0.1 -0.1 0) (position 0 0 0)))
(list "Cuboid" (position 3.1 3.2 3.3) (position 3.4 3.5 3.6))))
416
A: Commands
sdedr:define-refinement-function
sdedr:define-refinement-function
Action:
Group:
sdedr
(sdedr:define-refinement-function definition-name function-name
{ region-ref | material-ref | interface-ref })
Argument types: definition-name
STRING
function-name
STRING (name of function to be used for
refinement)
region-ref
"MaxGradient" REAL
material-ref
"MaxTransDiff" REAL
interface-ref
"MaxLenInt" REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Adds a refinement function to the specified refinement.
None
sdedr:define-refinement-material
Action:
Group:
sdedr
(sdedr:define-refinement-material placement-name definition-name
material-name)
Argument types: placement-name
STRING
definition-name
STRING
material-name
DATEXMAT
Syntax:
Returns:
Limitations:
None
None
Defines the placements information for a materialwise refinement.
None
Example:
Errors:
Description:
417
A: Commands
sdedr:define-refinement-placement
sdedr:define-refinement-placement
Action:
Group:
sdedr
(sdedr:define-refinement-placement refinement-name definition-name
ref-eval-window)
Argument types: refinement-name
STRING
definition-name
STRING
ref-eval-window
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Refinement Regions on
page 8 for a detailed description of the parameters.
None
sdedr:define-refinement-region
Action:
Group:
sdedr
(sdedr:define-refinement-region placement-name definition-name
region-name)
Argument types: placement-name
STRING
definition-name
STRING
region-name
STRING
Syntax:
Returns:
Limitations:
None
None
Defines the placements information for a regionwise refinement.
None
Example:
Errors:
Description:
418
A: Commands
sdedr:define-refinement-size
sdedr:define-refinement-size
Action:
Group:
sdedr
(sdedr:define-refinement-size definition-name max-x max-y max-z min-x
min-y min-z)
Argument types: definition-name
STRING
max-x
REAL
max-y
REAL (optional)
max-z
REAL (optional)
min-x
REAL
min-y
REAL (optional)
min-z
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Refinement Regions on
page 8 for a detailed description of the parameters.
None
sdedr:define-submesh
Action:
Group:
sdedr
(sdedr:define-submesh definition-name geofile-name file1 mode1 file2
mode2 ... filen moden [ (list field1 field2 fieldn) ])
Argument types: definition-name
STRING
geofile-name
STRING
file[1...n]
STRING
mode[1...n]
{"r" | "i" | "o" | "w" | "w=outfile-name"}
field[1...n]
STRING (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
See Mesh Generation Tools User Guide, Defining Submeshes on page 10
for a detailed description of the parameters.
None
419
A: Commands
sdedr:define-submesh-placement
sdedr:define-submesh-placement
Action:
Group:
sdedr
(sdedr:define-submesh-placement placement-name definition-name
evaluation-window
["DecayLength" decay-length]
["GaussDecayLength" gauss-decay-length]
["SelectWindow" (position x y z) (position x y z)]
[ [ ["AttachPoint" (position x y z)] ["ToPoint" (position x y z)] ] |
["ShiftVector" (gvector x y z)] ]
["Replace" | "NoReplace"]
["Reflect" ["X" | "Y" | "Z"]]
["Rotation" angle ["X" | "Y" | "Z"]]
["IgnoreMat"])
Argument types: placement-name
STRING
definition-name
STRING
evaluation-window
STRING
decay-length
REAL (optional)
x, y, z
REAL (optional)
angle
REAL
Syntax:
Returns:
Errors:
Description:
None
None
This extension creates a submesh placement in the Mesh command file (see
Mesh Generation Tools User Guide, Placements Section on page 18 for a
detailed description of the parameters).
Note that SelectWindow, AttachPoint, and ToPoint are deprecated.
AttachPoint and ToPoint are translated internally to ShiftVector =
ToPoint AttachPoint, and a warning is printed.
Limitations:
420
A: Commands
sdedr:define-submesh-placement (old syntax)
Group:
sdedr
(sdedr:define-submesh-placement placement-name definition-name
ref-eval-window decay-factor "Replace"|"NoReplace" shift-x shift-y
shift-z "X"|"Y"|"Z"|"" "X"|"Y"|"Z" rotation-angle)
Argument types: placement-name
STRING
definition-name
STRING
ref-eval-window
STRING
decay-factor
REAL
shift-x
REAL
shift-y
REAL
shift-z
REAL
rotation-angle
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension creates a submesh placement in the Mesh command file (see
Mesh Generation Tools User Guide, Defining Submeshes on page 10 for a
detailed description of the parameters). The first X, Y, or Z is the reflection
axis. The second is the rotation axis.
None
sdedr:del-selected-drentity
Action:
Group:
sdedr
(sdedr:del-selected-drentity entity | entity-list)
Argument types: entity
ENTITY
entity-list
ENTITY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension deletes a specified entity or list of entities.
None
421
A: Commands
sdedr:delete-multibox-placement
sdedr:delete-multibox-placement
Action:
Deletes the specified multibox placement from the placements part of the
command file.
Group:
sdedr
(sdedr:delete-multibox-placement placement-name)
Argument types: placement-name
STRING
Syntax:
Returns:
Limitations:
None
None
This command deletes the specified multibox placement from the
placements part of the command file.
None
Example:
(sdedr:delete-multibox-placement "multibox_1")
Errors:
Description:
sdedr:delete-profile-placement
Action:
Group:
sdedr
(sdedr:delete-profile-placement placement-name)
Argument types: placement-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
422
None
None
This extension deletes the specified placement.
None
A: Commands
sdedr:delete-refeval-window
sdedr:delete-refeval-window
Action:
Group:
sdedr
(sdedr:delete-refeval-window bodies)
Argument types: bodies
BODY | BODY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension deletes specified Ref/Eval windows.
None
Example:
NOTE
1 0))
1 0))
1 0))
using
423
A: Commands
sdedr:delete-refinement-placement
sdedr:delete-refinement-placement
Action:
Deletes the specified refinement placement from the placements part of the
command file.
Group:
sdedr
(sdedr:delete-refinement-placement placement-name)
Argument types: placement-name
STRING
Syntax:
Returns:
Limitations:
None
None
This function deletes the specified refinement placement from the
placements part of the command file.
None
Example:
(sdedr:delete-refinement-placement "refinement_1")
Errors:
Description:
sdedr:delete-submesh-placement
Action:
Group:
sdedr
(sdedr:delete-submesh-placement placement-name)
Argument types: placement-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension deletes the specified placement.
None
sdedr:get-definition-list
Action:
Group:
sdedr
(sdedr:get-definition-list "profile" | "refinement" | "multibox")
Argument types: "profile" | "refinement" | "multibox"
Returns:
STRING LIST
Syntax:
Errors:
Description:
Limitations:
424
None
This function returns a list of definition names of the given placement type.
None
A: Commands
sdedr:get-placement-list
sdedr:get-placement-list
Action:
Group:
sdedr
(sdedr:get-placement-list "profile" | "refinement" | "multibox")
Argument types: "profile" | "refinement" | "multibox"
Returns:
STRING LIST
Syntax:
Errors:
Description:
Limitations:
None
This function returns a list of placement names of the given placement type.
None
sdedr:hide-mbox
Action:
Group:
sdedr
(sdedr:hide-mbox mbox-list)
Argument types: mbox-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command displays the specified multiboxes.
None
sdedr:hide-profile
Action:
Group:
sdedr
(sdedr:hide-profile profile-list)
Argument types: profile-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command hides the specified analytic doping profiles.
None
425
A: Commands
sdedr:hide-refinement
sdedr:hide-refinement
Action:
Group:
sdedr
(sdedr:hide-refinement refinement-list)
Argument types: refinement-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command hides the specified refinements.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position 4 10 0) (position 6 12 0) "PolySilicon" "region_2")
(sdedr:define-refinement-size "ref1" 2 2 2 1 1 1)
(sdedr:define-refinement-region "ref1" "ref1" "region_1")
(sdedr:show-refinement "ref1")
(sdedr:hide-refinement "ref1")
426
A: Commands
sdedr:hide-rewin
sdedr:hide-rewin
Action:
Group:
sdedr
(sdedr:hide-rewin rewin-list)
Argument types: rewin-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command hides the specified reference/evaluation window or
windows.
None
Example:
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:hide-rewin (list "N1"
(sdedr:show-rewin "N1")
(sdedr:show-rewin (list "N2"
"N1"
"N2"
"N3"
"N4"
"N5"
"N6"
"N7"
"N8"
"N9"
"N2"
1
3
5
1
3
5
1
3
5
1
1
1
3
3
3
5
5
5
0))
0))
0))
0))
0))
0))
0))
0))
0))
"N3" "N4"))
sdedr:read-cmd-file
Action:
Group:
sdedr
(sdedr:read-cmd-file cmd-file-name)
Argument types: cmd-file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command parses a specified DFISE command file and initializes the
doping-related and refinement-related data structures in Sentaurus Structure
Editor. The command file entities can be visualized using the Placements
Viewer. The command file entities can be manipulated by using the sdedr
Scheme extensions or the Sentaurus Structure Editor GUI menus.
None
427
A: Commands
sdedr:redefine-refeval-window
sdedr:redefine-refeval-window
Action:
Group:
sdedr
(sdedr:redefine-refeval-window rfwin-name new-rfwin-name rfwin-type data)
Argument types: rfwin-name
STRING (name of Ref/Eval window)
new-rfwin-name
STRING (new name of Ref/Eval window)
rfwin-type
{"Point" | "Line" | "Rectangle" | "Polygon" |
"Cuboid"}
data
POSITION | POSITION LIST
Syntax:
Returns:
Errors:
None
In the case of "Point", the data argument is a position; in the case of
"Line" or "Rectangle" or "Cuboid", the data argument is
POSITION POSITION (the two opposite corners). In the case of
"Polygon", the data argument is a position list (the first and last positions
must be the same). This command is mainly used in renaming existing Ref/
Eval windows.
None
Description:
Limitations:
NOTE
428
A: Commands
sdedr:set-meshing-engine
sdedr:set-meshing-engine
Action:
Group:
sdedr
(sdedr:set-meshing-engine meshing-engine)
Argument types: meshing-engine
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command sets the name of the meshing engine that is written to the
Control section of the command file. The implemented meshing engines
are Sentaurus Mesh (snmesh), Noffset3D (noffset), and Mesh (mesh).
None
sdedr:set-title
Action:
Group:
sdedr
(sdedr:set-title cmd-file-title)
Argument types: cmd-file-title
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Information is written to the Title section of the command file. If this
function is not called explicitly, the title of the command file is set to
Untitled.
None
sdedr:show-mbox
Action:
Group:
sdedr
(sdedr:show-mbox mbox-list)
Argument types: mbox-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command displays the specified multiboxes.
None
429
A: Commands
sdedr:show-profile
sdedr:show-profile
Action:
Group:
sdedr
(sdedr:show-profile profile-list)
Argument types: profile-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command displays the specified analytic doping profiles.
None
sdedr:show-refinement
Action:
Group:
sdedr
(sdedr:show-refinement refinement-list)
Argument types: refinement-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command displays the specified refinements.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position 4 10 0) (position 6 12 0) "PolySilicon" "region_2")
(sdedr:define-refinement-size "ref1" 2 2 2 1 1 1)
(sdedr:define-refinement-region "ref1" "ref1" "region_1")
(sdedr:show-refinement "ref1")
430
A: Commands
sdedr:show-rewin
sdedr:show-rewin
Action:
Group:
sdedr
(sdedr:show-rewin rewin-list)
Argument types: rewin-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command displays the specified reference/evaluation window or
windows.
None
Example:
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:define-refeval-window
(sdedr:hide-rewin (list "N1"
(sdedr:show-rewin "N1")
(sdedr:show-rewin (list "N2"
"N1"
"N2"
"N3"
"N4"
"N5"
"N6"
"N7"
"N8"
"N9"
"N2"
1
3
5
1
3
5
1
3
5
1
1
1
3
3
3
5
5
5
0))
0))
0))
0))
0))
0))
0))
0))
0))
"N3" "N4"))
sdedr:write-cmd-file
Action:
Group:
sdedr
(sdedr:write-cmd-file cmd-file-name)
Argument types: cmd-file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command writes all doping-related and refinement-related data to the
specified command file. The command file can be used during a subsequent
meshing action, together with the generated boundary file. By using a
command file, you can control, for example, local mesh refinements during
meshing.
None
431
A: Commands
sdedr:write-scaled-cmd-file
sdedr:write-scaled-cmd-file
Action:
Group:
sdedr
(sdedr:write-scaled-cmd-file cmd-file-name scaling-factor)
Argument types: cmd-file-name
STRING
scaling-factor
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension writes all doping-related and refinement-related data to the
specified command file, which can be used during a subsequent meshing
action, together with the generated boundary file. By using a command file,
you can control, for example, local mesh refinements, during meshing.
All position and length parameters are multiplied by scaling-factor. All
gradient parameters are divided by scaling-factor.
None
sdegeo:2d-cut
Action:
Group:
sdegeo
(sdegeo:2d-cut p1 p2)
Argument types: p1
p2
Syntax:
Returns:
Errors:
Description:
Limitations:
432
POSITION
POSITION
None
None
This function extracts a 2D rectangular part from a 2D device. The rectangle
is specified by the two opposite corners of the rectangle (p1 and p2).
None
A: Commands
sdegeo:3d-cut
sdegeo:3d-cut
Action:
Group:
sdegeo
(sdegeo:3d-cut base-position normal-vector [tr-xy] [tr-dfise])
Argument types: base-position
POSITION
normal-vector
GVECTOR
tr-xy
BOOLEAN
tr-dfise
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function cuts a 2D slice from a 3D device. The cut plane is defined by a
base point (base-position) and a normal vector to the cut plane
(normal-vector). The extension sdegeo:3d-cut transfers 3D face
contacts to 2D edge contacts.
The optional tr-xy argument is used to transform the 2D cut to the xy
plane. This is needed when the 2D cut is to be meshed.
The optional tr-dfise argument allows you to set the proper translation
vector and rotation matrix when the DFISE boundary file is generated for
the cut. Setting the translation vector and the rotation matrix correctly in the
DFISE boundary output is needed when the 2D cut will be meshed using
snmesh -C, which uses the affine transformation from the DFISE
boundary file during meshing to place the 2D cut in the proper space in 3D.
This is needed to apply the correct doping and refinement information from
the 3D mesh command file when the 2D cross section is meshed.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:define-contact-set "cstop" 4 (color:rgb 1 0 0) "##")
(sdegeo:define-contact-set "csbottom-middle" 4 (color:rgb 1 1 0) "||")
(sdegeo:define-2d-contact (find-edge-id (position 5 10 0)) "cstop")
(sdegeo:insert-vertex (position 3 0 0))
(sdegeo:insert-vertex (position 7 0 0))
(sdegeo:set-current-contact-set "csbottom-middle")
(sdegeo:define-2d-contact (find-edge-id (position 5 0 0))
"csbottom-middle")
(render:rebuild)
; 2D model containing edge contacts
(sdegeo:extrude (find-face-id (position 5 5 0)) 6)
; 3D model containing face contacts
(sdegeo:3d-cut (position 5 0 2) (gvector 0 0 1))
; 2D model containing edge contacts
433
A: Commands
sdegeo:align-horizontal
sdegeo:align-horizontal
Action:
Group:
sdegeo
(sdegeo:align-horizontal vertex-list align-position)
Argument types: vertex-list
VERTEX LIST
align-position
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function aligns the specified vertices to a horizontal line. vertexlist contains the list of vertices and align-position defines the
position (y-coordinate) of the line.
The function can be applied only to 2D models.
sdegeo:align-horizontal-aut
Action:
Group:
sdegeo
(sdegeo:align-horizontal-aut vertex-list)
Argument types: vertex-list
VERTEX LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
434
None
None
This command aligns the specified vertices to a horizontal line. vertexlist contains the list of vertices. The align position (y-coordinate) of the
line is defined using the average y-coordinate of the specified vertices,
which is calculated automatically.
The function can be applied only to 2D models.
A: Commands
sdegeo:align-to-line
sdegeo:align-to-line
Action:
Group:
sdegeo
(sdegeo:align-to-line vertex-list pos1 pos2)
Argument types: vertex-list
VERTEX LIST
pos1
POSITION
pos2
POSITION
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function aligns the specified vertices (given by a vertex list vertexlist) to a line. The line is specified by two points (pos1 and pos2). The
points must lie on the same work plane as the vertex-list vertices. The
vertices are projected to the specified line.
The function can be applied only to 2D models.
sdegeo:align-vertical
Action:
Group:
sdegeo
(sdegeo:align-vertical vertex-list align-position)
Argument types: vertex-list
VERTEX LIST
align-position
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command aligns the specified vertices to a vertical line. vertex-list
contains the list of vertices and align-position defines the new position
(x-coordinate) of the line.
The function can be applied only to 2D models.
435
A: Commands
sdegeo:align-vertical-aut
sdegeo:align-vertical-aut
Action:
Group:
sdegeo
(sdegeo:align-vertical-aut vertex-list)
Argument types: vertex-list
VERTEX LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command aligns the specified vertices to a vertical line. vertex-list
contains the list of vertices. The align position (x-coordinate) of the line is
defined using the average x-coordinate of the specified vertices, which is
calculated automatically.
The function can be applied only to 2D models.
sdegeo:average-edge-length
Action:
Group:
sdegeo
(sdegeo:average-edge-length edge-list)
Argument types: edge-list
EDGE LIST
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
This function computes the length of each edge in edge-list and returns
the average edge length.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")
(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")
(define elist (entity:edges (get-body-list)))
(sdegeo:average-edge-length elist)
436
A: Commands
sdegeo:body-trim
sdegeo:body-trim
Action:
Group:
sdegeo
(sdegeo:body-trim x0 y0 z0 x1 y1 z1)
Argument types: x0
REAL
y0
REAL
z0
REAL
x1
REAL
y1
REAL
z1
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The function trims all bodies to the specified box. All parts of the geometric
bodies that lie outside of the specified box are removed.
None
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0
(sdegeo:create-cuboid (position 0
(sdegeo:create-cuboid (position 2
(sdegeo:create-cylinder (position
(sdegeo:body-trim 5 5 5 20 20 20)
0
0
2
5
437
A: Commands
sdegeo:bool-intersect
sdegeo:bool-intersect
Action:
Group:
sdegeo
(sdegeo:bool-intersect body-list)
Argument types: body-list
BODY LIST
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function intersects the first body from the specified body list with the
rest of the bodies from the list. The resulting body inherits the DATEX
material attribute from the first body. Similarly, the DFISE region attribute
is inherited from the first entity in the body list. This function can be applied
to both 2D and 3D bodies.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "XX")
(define b1 (sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon"
"region_1"))
(define b2 (sdegeo:create-rectangle (position 5 5 0) (position 12 12 0) "PolySilicon"
"region_2"))
(sdegeo:bool-intersect (list b2 b1))
438
A: Commands
sdegeo:bool-subtract
sdegeo:bool-subtract
Action:
Group:
sdegeo
(sdegeo:bool-subtract body-list)
Argument types: body-list
BODY LIST
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function subtracts the first body from the specified body list with the
rest of the bodies from the list. The resulting body inherits the DATEX
material attribute of the first body. Similarly, the DFISE region attribute is
inherited from the first entity in the body list. This function can be applied to
both 2D and 3D bodies.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "XX")
(define b1 (sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon"
"region_1"))
(define b2 (sdegeo:create-rectangle (position 5 5 0) (position 12 12 0) "Silicon"
"region_2"))
(sdegeo:bool-subtract (list b2 b1))
439
A: Commands
sdegeo:bool-unite
sdegeo:bool-unite
Action:
Group:
sdegeo
(sdegeo:bool-unite body-list)
Argument types: body-list
BODY LIST
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The function performs a Boolean unite operation on the specified body list.
The newly united body inherits the DATEX material attribute of the first
body from the specified list of bodies. Similarly, the DFISE region attribute
is inherited from the first entity in the body list. This function can be applied
to both 2D and 3D bodies.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position -10 -8 0) (position -5 -3 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position -6 -7 0) (position 1 -4 0) "Silicon" "region_2")
(sdegeo:create-rectangle (position -1 -9 0) (position 3 -3 0) "PolySilicon" "region_3")
(sdegeo:create-polygon (list (position 1 -7 0) (position 5 -9 0) (position 10 -9 0)
(position 11 -4 0) (position 3 -1 0) (position 1 -7 0)) "Silver" "region_4")
(sdegeo:bool-unite (get-body-list))
440
A: Commands
sdegeo:break-nearly-axis-aligned-edges
sdegeo:break-nearly-axis-aligned-edges
Action:
Group:
sdegeo
(sdegeo:break-nearly-axis-aligned-edges edge-list [angular-tolerance])
Argument types: edge-list
EDGE LIST
angular-tolerance
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function changes the nearly axis-aligned edges to axis-aligned edges by
inserting additional vertices and staircase edges to the model. This step may
be needed before meshing because some meshing algorithms (typically,
quadtree-based meshing engines) may have difficulties handling nearly
axis-aligned edges. The angular tolerance angular-tolerance specifies
the minimal angle in degrees that is permitted between model edges and
between the x-axis and y-axis of the model. If the angle between the edge
and the horizontal and vertical direction is smaller than angulartolerance, the edge will be split into a horizontal and vertical component.
The use of the angular-tolerance argument is optional. If it is not
specified, the default value (5 degrees) is used.
The function can be applied only for 2D models.
441
A: Commands
sdegeo:chamfer
sdegeo:chamfer
Action:
Group:
sdegeo
(sdegeo:chamfer edge|vertex-list chamfer-dist)
Argument types: edge|vertex-list
EDGE LIST | VERTEX LIST
chamfer-dist
REAL
Syntax:
Returns:
Errors:
Description:
None
None
This extension is used to perform edge or vertex chamferings for 3D bodies.
The edge|vertex-list contains a list of edges or vertices to be
chamfered. chamfer-dist is the chamfering distance used for the
operation. The GUI can be used to select the edges to be operated on, or
some other method can be used to find the edge entity IDs. For example,
find-edge-id can be used to find the edge IDs.
Chamfering is a complex operation and can fail for several reasons. A
common problem is the use of an incorrect chamfer distance, which is
usually too large. The chamfer distance must be selected so that the
resulting model (after performing the chamfering operation) is physically
(topologically) correct. Another typical problem is the incorrect selection of
the edges to be chamfered. The edge|vertex-list must contain all
tangent continuous edges; otherwise, the operation may fail. Chamfering
changes the model topology; new faces (and edges) are created, and old
faces (edges) are removed from the model. When chamfering is performed
in several steps, the order of performing the sdegeo:chamfer operation
may be important.
Limitations:
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silver" "region_1")
(define edge1 (find-edge-id (position 5 0 0)))
(sdegeo:chamfer edge1 2)
(define face1 (find-face-id (position 5 5 10)))
(sdegeo:chamfer (entity:edges face1) 1)
(define face1 (find-face-id (position 5 0 5)))
(sdegeo:chamfer (entity:edges face1) 3)
442
A: Commands
sdegeo:chamfer-2d
sdegeo:chamfer-2d
Action:
Group:
sdegeo
(sdegeo:chamfer-2d vertex(s) chamfer-dist)
Argument types: vertex(s)
VERTEX | VERTEX LIST
chamfer-dist
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command performs a chamfering operation on a specified vertex or list
of vertices. When you use the GUI, the chamfer-2d operation is applied to
the selected entities. ((sde:selected-entities) returns the selected
entity list.)
Note that when the chamfering is to be performed on a vertex (or vertices)
that is shared by neighboring regions, all vertices must be added to the
argument list. (Edit > Edit 2D > Chamfer)
The chamfering distance, chamfer-dist, must be selected so that the
operation does not result in an invalid geometry.
Example:
443
A: Commands
sdegeo:chop-domain
sdegeo:chop-domain
Action:
Group:
sdegeo
(sdegeo:chop-domain vertex list)
Argument types: vertex list
ACIS VERTEX LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
If the base of the device is placed at the xy plane, the device can be cut off to
cover only the specified polygonal base. The argument is a list of x, y point
pairs.
The device must be placed at the y-plane, and the cut is performed in the
z-direction.
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0
(sdegeo:create-cuboid (position 0
(sdegeo:create-cuboid (position 2
(sdegeo:create-cylinder (position
(sdegeo:chop-domain (list 0 0 2 2
0
0
2
5
6
sdegeo:contact-sets
Action:
Group:
sdegeo
(sdegeo:contact-sets)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
444
None
A Scheme list that contains the names of the defined contact sets
None
This function returns the names of all the defined contact sets.
None
A: Commands
sdegeo:create-circle, sdegeo:create-circular-sheet
sdegeo:create-circle, sdegeo:create-circular-sheet
Action:
Group:
sdegeo
(sdegeo:create-circle center-pos radius region-material region-name
[start-angle end-angle])
Argument types: center-pos
POSITION
radius
REAL
region-material
DATEXMAT
region-name
STRING
start-angle
REAL (optional)
end-angle
REAL (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
Example:
None
This function adds a 2D circular region to the model. The circle is defined
by specifying the center position and the radius. If the generated polygon
overlaps already existing regions, the default Boolean behavior determines
the topology of the newly inserted region and the overlapping regions. The
material attribute is set to region-material and the region attribute is set
to region-name.
When the optional start-angle and end-angle are specified, a circular
arch is generated.
None
; Scheme Extension
(sdegeo:create-circle (position 0 0 0) 10 "Silicon" "Region_1")
445
A: Commands
sdegeo:create-cone
sdegeo:create-cone
Action:
Group:
sdegeo
(sdegeo:create-cone {{start-axis end-axis} | {start-axis-x start-axis-y
start-axis-z end-axis-x end-axis-y end-axis-z}} base-radius top-radius
[ratio=1 [position3 | {x3 y3 z3}]] region-material region-name)
Argument types: start-axis
POSITION
end-axis
POSITION
start-axis-x
REAL
start-axis-y
REAL
start-axis-z
REAL
end-axis-x
REAL
end-axis-y
REAL
end-axis-z
REAL
base-radius
REAL
top-radius
REAL
ratio
REAL (optional)
position3
POSITION (optional)
x3
REAL (optional)
y3
REAL (optional)
z3
REAL (optional)
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
446
None
The argument start-axis specifies the start axis position or base of the
cone. The argument end-axis specifies the end axis position or top of the
cone. There are two syntax formats available for defining these positional
arguments. The first (original) syntax format defines all positional
arguments by placing them in position statements enclosed in parentheses.
The second syntax format defines positional arguments without using the
position statement or the additional set of parentheses. Otherwise, the two
formats are identical. The format selected must be used for all three
positional arguments. The argument base-radius specifies the radius at
start-axis (must be greater than zero). The argument top-radius
specifies the radius at end-axis (which can be zero). If the optional
arguments ratio and position3 are specified, an elliptical cone is
created. If ratio is specified, the ratio between the major and minor axes of
the ellipse is used.
A: Commands
sdegeo:create-cuboid
Description:
Limitations:
If position3 (or x3, y3, and z3) is specified, the vector from the
projection of position3 (or x3, y3, and z3) onto the axis of the cone to
position3 (or x3, y3, and z3) specifies the major axis. If position3 (or
x3, y3, and z3) is not specified, the major axis is defined by the projection
of the x-axis of the active work coordinate system onto the plane that is
defined by start-axis and the vector from start-axis to end-axis.
Note that position3 cannot lie on the axis of the cone; otherwise, an error
occurs. If the generated body overlaps already existing regions, the default
Boolean behavior determines the topology of the newly inserted body and
the overlapping regions. The material attribute is set to region-material
and the region attribute is set to region-name.
None
Example:
sdegeo:create-cuboid
Action:
Group:
sdegeo
(sdegeo:create-cuboid diagonal1 diagonal2 region-material region-name)
Argument types: diagonal1
POSITION
diagonal2
POSITION
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
The argument diagonal1 specifies the first diagonal corner and
diagonal2 specifies the second diagonal corner. The block is oriented with
respect to the current work plane. If the generated body overlaps already
existing regions, the default Boolean behavior determines the topology of
the newly inserted body and the overlapping regions. The material attribute
is set to region-material and the region attribute is set to regionname.
None
Example:
447
A: Commands
sdegeo:create-cylinder
sdegeo:create-cylinder
Action:
Creates a cylinder.
Group:
sdegeo
(sdegeo:create-cylinder {{start-pos end-pos} | {x-start y-start z-start
x-end y-end z-end}} radius [ratio=1 {position3 | {x3 y3 z3}}]
region-material region-name)
Argument types: start-pos
POSITION
end-pos
POSITION
x-start
REAL
y-start
REAL
z-start
REAL
x-end
REAL
y-end
REAL
z-end
REAL
radius
REAL
ratio
REAL (optional)
position3
POSITION (optional)
x3
REAL (optional)
y3
REAL (optional)
z3
REAL (optional)
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
The argument start-pos (or x-start, y-start, and z-start) specifies
the start position of the cylinder. The argument end-pos (or x-end, y-end,
and z-end) specifies the end position of the cylinder. There are two syntax
formats available for defining the starting and ending positions for creating a
cylinder. The first (original) syntax format defines the positional arguments
by placing them in position statements enclosed in parentheses. The
second syntax format defines the positional arguments without using the
position statement or the additional set of parentheses. Otherwise, the two
formats are identical. The format selected must be used for all three
positional arguments.
The argument radius specifies the radii for the base and top. If the optional
arguments ratio and position3 (or x3, y3, and z3) are specified, an
elliptical cylinder is created. If ratio is specified, the ratio between the
major and minor axes of the ellipse is used.
448
A: Commands
sdegeo:create-cylinder
Description:
Limitations:
If position3 (or x3, y3, and z3) is specified, the vector from the
projection of position3 (or x3, y3, and z3) on to the axis of the cylinder
to position3 (or x3, y3, and z3) specifies the major axis. If position3
(or x3, y3, and z3) is not specified, the major axis is defined by the
projection of the x-axis of the active work coordinate system onto the plane
that is defined by position1 and the vector from position1 to
position2.
Note that position3 cannot lie on the axis of the cylinder; otherwise, an
error occurs. If the generated body overlaps already existing regions, the
default Boolean behavior determines the topology of the newly inserted
body and the overlapping regions. The material attribute is set to regionmaterial and the region attribute is set to region-name.
None
Example:
(sde:clear)
(sdegeo:create-cylinder (position 0 0 0) (position 25 25 0) 30 "Gold" "")
(sdegeo:create-cylinder 2 2 2 -20 -20 0 15 3 "Gold" "")
(sdegeo:create-cylinder 2 2 2 -20 -20 0 15 3 -5 -5 0 "Gold" "")
449
A: Commands
sdegeo:create-ellipse, sdegeo:create-elliptical-sheet
sdegeo:create-ellipse, sdegeo:create-elliptical-sheet
Action:
Creates a 2D ellipse.
Group:
sdegeo
(sdegeo:create-elliptical-sheet position1 position2 ratio lmat lreg)
Argument types: position1
POSITION
position2
POSITION
ratio
REAL
lmat
DATEXMAT
lreg
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
The Scheme extension sdegeo:create-elliptical-sheet can be
used to create a 2D elliptical region (ellipse). The first argument
position1 is the center position of the ellipse and position2 is the end
point of the major axis. The ratio argument is the ratio of the major and
minor axes. lmat is the DATEX material and lreg is the region name. The
command generates the ellipse on the active work plane, using the active
coordinate system. The default Boolean setting is respected by the
command.
None
Example:
; Scheme Extension
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-elliptical-sheet (position 0 0 0) (position 10 0 0) 0.5 "PolySi" "x1")
(sdegeo:create-elliptical-sheet (position 0 0 0) (position 3 0 0) 3 "Silver" "x2")
(sdegeo:create-elliptical-sheet (position 0 0 0) (position 8 8 0) 0.2 "Oxide" "x3")
450
A: Commands
sdegeo:create-ellipsoid
sdegeo:create-ellipsoid
Action:
Creates a 3D ellipsoid.
Group:
sdegeo
(sdegeo:create-ellipsoid position1 position2 ratio lmat lreg)
Argument types: position1
POSITION
position2
POSITION
ratio
REAL
lmat
DATEXMAT
lreg
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
This Scheme extension creates a 3D ellipsoid. The first argument
position1 is the center position of the ellipse and position2 is the end
point of the major axis. The ratio argument is the ratio of the major and
minor axes. lmat is the DATEX material and lreg is the region name. The
command generates the ellipse on the active work plane, using the active
coordinate system. The default Boolean setting is respected by the
command.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(isegeo:create-ellipsoid (position 0 0 0) (position 10 0 0) 0.5 "PolySi" "x1")
(isegeo:create-ellipsoid (position 0 0 0) (position 3 0 0) 3 "Silver" "x2")
(sdegeo:create-ellipsoid (position 0 0 0) (position 8 8 0) 0.2 "Oxide" "x3")
sdegeo:create-linear-edge
Action:
Group:
sdegeo
(sdegeo:create-linear-edge position1 position2)
Argument types: position1
POSITION
position2
POSITION
Returns:
ENTITY (EDGE)
Syntax:
Errors:
Description:
Limitations:
None
The arguments position1 and position2 specify the end positions.
None
451
A: Commands
sdegeo:create-polygon, sdegeo:create-polygonal-sheet
sdegeo:create-polygon, sdegeo:create-polygonal-sheet
Action:
Group:
sdegeo
(sdegeo:create-polygon
Argument types: vertex-list
region-material
region-name
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
This function adds a closed 2D polygonal region to the model. The polygon
is defined by specifying the vertex list of the polygon (either closed or not
closed). If the last vertex is different from the first vertex, the first vertex
closes the polygon. If the generated polygon overlaps already existing
regions, the default Boolean behavior determines the topology of the newly
inserted region and the overlapping regions. The material attribute is set to
region-material and the region attribute is set to region-name.
None
sdegeo:create-polyline-wire
Action:
Group:
sdegeo
(sdegeo:create-polyline-wire vertex-list)
Argument types: vertex-list
POSITION LIST
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
452
None
The function defines a wire body consisting of linear edges only. The vertex
positions of the wire are specified in the argument list as a position list. The
wire body does not have an attached material or region-name attribute and is
not written to the DFISE boundary output file. The wire body can be used,
for example, during a sweep operation when the sweep along a wire option
is used.
None
A: Commands
sdegeo:create-prism
sdegeo:create-prism
Action:
Group:
sdegeo
(sdegeo:create-prism centerposition height major-radius minor-radius
nsides region-material region-name)
Argument types: centerposition
POSITION
height
POSITION
major-radius
REAL
minor-radius
REAL
nsides
INTEGER
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Limitations:
None
This function creates an nsides-sided prism where n is greater than or
equal to three. The prism is centered about the center position with its height
along the z-axis, the major-radius along the x-axis, and the minorradius along the y-axis. If height is zero, the resulting body consists of
only one polygonal-sided sheet face, lying in the xy plane. If the generated
body overlaps already existing regions, the default Boolean behavior
determines the topology of the newly inserted body and the overlapping
regions. The material attribute is set to region-material and the region
attribute is set to region-name.
None
Example:
Description:
453
A: Commands
sdegeo:create-pyramid
sdegeo:create-pyramid
Action:
Group:
sdegeo
(sdegeo:create-pyramid centerposition height major-radius minor-radius
nsides top region-material region-name)
Argument types: height
REAL
major-radius
REAL
minor-radius
REAL
nsides
INTEGER
top
REAL
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
Example:
454
None
The number of sides (nsides) must be greater than or equal to three. The
prism is centered about the origin with its height along the z-axis, the
major-radius, along the x-axis, and the minor-radius, along the yaxis. The argument top specifies the major axis length at the top of the
pyramid. If height is zero, the resulting body consists of only one
polygonal-sided sheet face, lying in the xy plane. If the generated body
overlaps already existing regions, the default Boolean behavior determines
the topology of the newly inserted body and the overlapping regions. The
material attribute is set to region-material and the region attribute is set
to region-name.
None
(sde:clear)
(sdegeo:create-pyramid (position 0 0 0) 20 40 40 6 12 "PolySilicon" "")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-pyramid (position 0 0 0) 30 30 20 5 5 "Gold" "")
A: Commands
sdegeo:create-rectangle
sdegeo:create-rectangle
Action:
Group:
sdegeo
(sdegeo:create-rectangle v1 v2 region-material region-name)
Argument types: v1
POSITION
v2
POSITION
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
Example:
None
This function adds a 2D rectangle to the model. The rectangle is defined by
specifying two opposite corner vertices. If the generated rectangle overlaps
with already existing regions, the default Boolean behavior determines the
topology of the newly inserted region and the overlapping regions. The
material attribute is set to region-material and the region attribute, to
region-name.
None
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0))
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon"
"sir")
455
A: Commands
sdegeo:create-reg-polygon
sdegeo:create-reg-polygon
Action:
Group:
sdegeo
(sdegeo:create-reg-polygon v1 rad [nsides] [angle] [method]
region-material region-name)
Argument types: v1
POSITION
rad
REAL
nsides
INTEGER (optional)
angle
REAL (optional)
method
STRING (optional)
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
Example:
456
None
This function adds a regular 2D polygonal region to the model. The regular
polygon is defined by specifying the center position of the polygon, the
radius, and the number of segments. If the generated polygon overlaps
already existing regions, the default Boolean behavior determines the
topology of the newly inserted region and the overlapping regions. The
material attribute is set to region-material and the region attribute is set
to region-name.
The following parameters must be specified in the argument list:
v1
Center of the regular polygon.
rad
Radius of the circle that defines the vertex points.
nsides Number of sides.
angle Angle [degree], counterclockwise from the x-axis and defines the
rotation of the regular polygon.
method in or out; defines whether the polygon is created inside or outside
of the envelope circle.
None
; Scheme Extension
(sdegeo:create-reg-polygon (position 0 0 0) 1 10 0 "Silicon" "region_1")
A: Commands
sdegeo:create-ruled-region
sdegeo:create-ruled-region
Action:
Group:
sdegeo
(sdegeo:create-ruled-region edge1 edge2 region-material region-name)
Argument types: edge1
EDGE
edge2
EDGE
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
This function adds a 2D ruled region to the model. The ruled region is
defined by specifying to already existing edges. Edge orientation is not
important, since the ruled region is always created in such a way that a
simply connected region is created. The selected edges cannot intersect each
other. If the ruled region overlaps already existing regions, the default
Boolean behavior determines the topology of the newly inserted region and
the overlapping regions. The material attribute is set to region-material
and the region attribute is set to region-name.
None
457
A: Commands
sdegeo:create-sphere
sdegeo:create-sphere
Action:
Group:
sdegeo
(sdegeo:create-sphere {center-position | {center-x center-y center-z}}
radius region-material region-name)
Argument types: center-position
POSITION
center-x
REAL
center-y
REAL
center-z
REAL
radius
REAL
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
None
Description:
Limitations:
Example:
(sde:clear)
(define sphere1 (sdegeo:create-sphere (position -4 -4 0) 1.5 "Gold" ""))
(define sphere2 (sdegeo:create-sphere -30 0 0 15 "Silver" ""))
(define sphere3 (sdegeo:create-sphere 10 10 10 5 "Copper" ""))
458
A: Commands
sdegeo:create-spline-wire
sdegeo:create-spline-wire
Action:
Group:
sdegeo
(sdegeo:create-spline-wire vertex-list)
Argument types: vertex-list
POSITION LIST
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
The function defines a spline wire body. The vertex positions of the wire are
specified in the argument list as a position list. The wire body does not have
an attached material or region-name attribute and is not written to the
DFISE boundary output file. The wire body can be used, for example,
during a sweep operation when the sweep along a wire option is used.
None
459
A: Commands
sdegeo:create-torus
sdegeo:create-torus
Action:
Group:
sdegeo
(sdegeo:create-torus {center-position | {center-x center-y center-z}}
major-radius minor-radius region-material region-name)
Argument types: center-position
POSITION
center-x
REAL
center-y
REAL
center-z
REAL
major-radius
REAL
minor-radius
REAL
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
This extension creates a solid torus of given radii centered at the origin. The
torus is defined in the xy plane of the active coordinate system and is
oriented using the normal gvector of the active coordinate system. The
argument center-position specifies the center location of the torus.
Two syntax formats are available for this argument. The first (original)
syntax format defines the center-position by placing it in a position
statement enclosed in parentheses. The second format defines the xyz
coordinates of the center position without using the position statement or
the additional set of parentheses. Otherwise, the two formats are identical.
Limitations:
Example:
460
The argument major-radius specifies the distance from the center to the
spine curve lying in this plane. It is specified around a circle having the
minor axis. It is swept to define the torus. Three shapes of tori can be
specified (donut, apple, or lemon) depending on the relative magnitudes of
the major and minor radii. If the major-radius is greater than the minorradius, the torus is a donut. If the major-radius is positive, but smaller
than the minor-radius, the torus is an apple. If the major-radius is
negative, the torus is a lemon. If the generated body overlaps already
existing regions, the default Boolean behavior determines the topology of
the newly inserted body and the overlapping regions. The material attribute
is set to region-material and the region attribute is set to regionname.
None
(sde:clear)
(sdegeo:create-torus (position -10 -5 -10) 7 3 "Gold" "")
(sdegeo:create-torus 10 15 20 10 5 "Gold" "")
A: Commands
sdegeo:create-triangle, sdegeo:create-triangular-sheet
sdegeo:create-triangle, sdegeo:create-triangular-sheet
Action:
Group:
sdegeo
(sdegeo:create-triangle v1 v2 v3 region-material region-name)
Argument types: v1
POSITION
v2
POSITION
v3
POSITION
region-material
DATEXMAT
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
This function adds a 2D triangle to the model. The triangle is defined by
specifying three vertices. If the generated triangle overlaps with already
existing regions, the default Boolean behavior determines the topology of
the newly inserted region and the overlapping regions. The material attribute
is set to region-material and the region attribute, to region-name.
None
Example:
sdegeo:curve-intersect
Action:
Group:
sdegeo
(sdegeo:curve-intersect edge1 edge2)
Argument types: edge1
EDGE
edge2
EDGE
Returns:
POSITION LIST
Syntax:
Errors:
Description:
Limitations:
Example:
None
This Scheme extension determines the intersections between the specified
curves.
None
(define e1 (edge:linear (position 0 0 0) (position 10 10 0)))
(define e2 (edge:linear (position 0 10 0) (position 10 0 0)))
(sdegeo:curve-intersect e1 e2)
; (#[position 5 5 0])
(define e3 (edge:circular (position 5 5 0) 3))
(sdegeo:curve-intersect e1 e3)
; (#[position 7.12132034355964 7.12132034355964 0]
#[position 2.87867965644036 2.87867965644036 0])
461
A: Commands
sdegeo:define-2d-contact
sdegeo:define-2d-contact
Action:
Group:
sdegeo
(sdegeo:define-2d-contact entity-list name)
Argument types: entity-list
EDGE | EDGE LIST
name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
An error occurs if entity-list is not an EDGE or a list of (at least) one
EDGE, or name is not an already defined contact set.
Defines a named 2D contact for a specified edge or list of edges.
None
Example:
sdegeo:define-3d-contact
Action:
Group:
sdegeo
(sdegeo:define-3d-contact entity-list name)
Argument types: entity-list
FACE | FACE LIST
name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
An error occurs if entity-list is not a FACE or a list of (at least) one
FACE, or name is not an already defined contact set.
This command adds a 3D contact attribute to a specified face list.
None
Example:
462
A: Commands
sdegeo:define-3d-contact-by-polygon
sdegeo:define-3d-contact-by-polygon
Action:
Group:
sdegeo
(sdegeo:define-3d-contact-by-polygon pos-list dir-vector contact-name)
Argument types: pos-list
POSITION LIST
dir-vector
GVECTOR
contact-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function imprints a general polygon wire to an existing body. The
imprinted wire splits the faces of the body. This function can be used to
define a polygonal contact area. The imprint functions split faces to surface
patches. After the face split, the newly created face patches to be marked as
contacts must be identified. During the assignment of contacts, these face ID
numbers can be used explicitly. pos-list contains the vertices of the
imprinted polygon. The polygon must be closed to imprint it, so the first
position must be repeated as the last position. dir-vector specifies the
direction in which the polygon is projected for the imprint step. contactname specifies the name of the contact set.
None
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "region_1")
(sdegeo:define-contact-set "demo" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "demo")
(sdegeo:define-3d-contact-by-polygon (list (position 1 1 10) (position 5 1 10)
(position 5 5 10) (position 3 2 10) (position 1 5 10) (position 1 1 10))
(gvector 0 0 -1) "demo")
463
A: Commands
sdegeo:define-contact-set
sdegeo:define-contact-set
Action:
Group:
sdegeo
(sdegeo:define-contact-set name [edgeThickness] [edgeColor]
[facePattern])
Argument types: name
STRING
edgeThickness
REAL NUMBER (optional; default is 4.0)
edgeColor
(Optional) Default is rgb_color(1.0,0.0,0.0)
facePattern
STRING (optional); can be one of (default is
"##"): "solid", "##", "||", "==", "//", "::", "",
"[] []"
Returns:
Unspecified
Syntax:
Errors:
Description:
Limitations:
Example:
None
The last three arguments are optional and can be given in any order. If the
contact set name is already defined, the existing contact set is replaced by
the new definition. The Contact Sets button of the GUI is used to display
the corresponding Contact Set dialog box, which can be used to define the
arguments interactively. (Device > Contacts > Contact Sets)
None
(sdegeo:define-contact-set "Drain")
(sdegeo:define-contact-set "Source" 4.0 (color:rgb 1.0 0.0 0.0) "##")
sdegeo:define-coord-sys
Action:
Group:
sdegeo
(sdegeo:define-coord-sys cs-name x-pos y-pos angle)
Argument types: cs-name
STRING
x-pos
REAL
y-pos
REAL
angle
REAL
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
464
None
If the active work plane is called awp, the newly created coordinate system
is called awp_cs-name. The origin of the new coordinate system is based at
x-pos and y-pos, relative to the origin of the active work plane. The
coordinate system is rotated by angle [degree]. Counterclockwise rotation
is positive (looking from the positive z-axis of the active work plane).
None
A: Commands
sdegeo:define-work-plane
sdegeo:define-work-plane
Action:
Group:
sdegeo
(sdegeo:define-work-plane wp-name origin x-axis y-axis)
Argument types: wp-name
STRING
origin
POSITION
x-axis
POSITION
y-axis
POSITION
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The name of the work plane is wp-name. The origin of the work plane is
placed at origin. The x-axis points towards x-axis and the y-axis points
towards y-axis. The z-axis is defined by the right-hand rule. The origin
must be considered when you define the x-axis and y-axis.
None
Example:
; Define a new working plane, wp1 parallel to the global x-y plane, located at z = 1.
(sdegeo:define-work-plane "wp1" (position 0 0 1) (position 1 0 1) (position 0 1 1))
sdegeo:del-short-edges
Action:
Group:
sdegeo
(sdegeo:del-short-edges entity edge-length angular-tolerance)
Argument types: body-list
BODY LIST
edge-length
REAL
angular-tolerance
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This Scheme extension deletes linear edges if the edge length is shorter than
the specified edge-length. Ridges can be protected by an angular
tolerance, angular-tolerance. If the vertex normal difference is larger
than angular-tolerance at a given vertex location, the vertex (and the
adjoining edges) are protected. In this case, even if the edge length is
smaller than edge-length, the edge is not removed. This function is fast
and very robust and is recommended to simplify 2D geometry.
The function can be applied only to 2D models.
465
A: Commands
sdegeo:delete-collinear-edges
sdegeo:delete-collinear-edges
Action:
Group:
sdegeo
(sdegeo:delete-collinear-edges edge-list)
Argument types: edge-list
EDGE LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function can be used to remove collinear edges from the specified edge
list by merging the neighboring collinear edges into one single-edge entity.
The function can be applied only to 2D models.
sdegeo:delete-contact-boundary-edges
Action:
Removes the active contact set attribute from all edges of the specified
regions.
Group:
sdegeo
(sdegeo:delete-contact-boundary-edges body-list)
Argument types: body-list
BODY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
466
None
None
This command deletes the current contact set attributes from all edges of the
selected body or bodies. Alternatively, a body or body list can be given in
the argument list. Only the active contacts are removed.
None
A: Commands
sdegeo:delete-contact-boundary-faces
sdegeo:delete-contact-boundary-faces
Action:
Deletes a contact attribute from all faces of the specified body or bodies.
Group:
sdegeo
(sdegeo:delete-contact-boundary-faces [body-list])
Argument types: body-list
BODY LIST (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function is used to remove a contact attribute from all faces of each
specified body in body-list. If the argument list is empty and body-list
is not defined, the function takes the body or bodies from
(sde:selected-entities). The active contact set name is taken to
specify the contacts. Alternatively, to the selected faces, a face list can be
given explicitly in the argument list.
None
Example:
(sde:clear)
(sdegeo:define-contact-set "xx" 4.0 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "xx")
(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "PolySilicon"
"region_1"))
(sdegeo:set-contact-boundary-faces mycube)
(sdegeo:delete-contact-boundary-faces mycube)
sdegeo:delete-contact-edges
Action:
Deletes the current contact set attributes from the selected edges.
Group:
sdegeo
(sdegeo:delete-contact-edges entity-list)
Argument types: entity-list
EDGE LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Deletes the current contact set attributes from the selected edges.
Alternatively, an edge or edge list can be given in the argument list. Only the
active contacts are removed. (Device > Contacts > Unset Edge(s))
None
467
A: Commands
sdegeo:delete-contact-faces
sdegeo:delete-contact-faces
Action:
Group:
sdegeo
(sdegeo:delete-contact-faces [face-list])
Argument types: face-list
FACE LIST (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function removes a contact attribute from faces. If the argument list is
empty and face-list is not defined, the function takes the faces from
(sde:selected-entities). The name of the active contact set is taken
to specify the contacts. Alternatively, to the selected faces, a face list can be
given explicitly in the argument list.
None
sdegeo:delete-contact-set
Action:
Group:
sdegeo
(sdegeo:delete-contact-set)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
Deletes the specified contact set and removes the corresponding contact
attributes (either 2D contact or 3D contact).
None
sdegeo:delete-coord-sys
Action:
Group:
sdegeo
(sdegeo:delete-coord-sys cs-name)
Argument types: cs-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
468
None
This command deletes the specified coordinate system.
None
A: Commands
sdegeo:delete-edges
sdegeo:delete-edges
Action:
Group:
sdegeo
(sdegeo:delete-edges edge-list [angular-tolerance])
Argument types: edge-list
EDGE LIST
angular-tolerance
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function removes the specified edges from the model. If there are
neighboring regions, edges that are shared by more than one body must be
selected from all bodies. Otherwise, model conformity is not preserved. By
default, a 90 angular tolerance is used to protect model features (that is,
only those edges from the specified entity list that enclose an angle larger
than 90 will be removed from the edge list).
The optional angular-tolerance value (in degrees) can be used to
modify the default setting.
The function can be applied only to 2D models. Only linear edges can be
deleted.
sdegeo:delete-nearly-collinear-edges
Action:
Group:
sdegeo
(sdegeo:delete-nearly-collinear-edges edge-list dist)
Argument types: edge-list
EDGE LIST
dist
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Nearly collinear edges are defined as follows: If the distance from the point
between the two edges is closer than the specified distance (dist) to the
edge that is defined by the other two noncommon end points of the two
edges, they are classified as nearly collinear. All nearly collinear edges are
removed from the edge list.
The function can be applied only for 2D models.
469
A: Commands
sdegeo:delete-region
sdegeo:delete-region
Action:
Group:
sdegeo
(sdegeo:delete-region bodies)
Argument types: bodies
BODY | BODY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension removes the specified body or bodies from the entity list. The
body is specified by its entity number. The specified regions are
permanently removed from the model.
None
sdegeo:delete-short-edges
Action:
Deletes all edges from the edge list that are shorter than the specified edge
length.
Group:
sdegeo
(sdegeo:delete-short-edges edge-list max-edge-length)
Argument types: edge-list
EDGE LIST
max-edge-length
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
470
None
None
This command removes edges from the specified list of edges. An edge is
deleted from the model only if the length of the edge is shorter than the
specified edge length, max-edge-length. If there are neighboring regions,
edges that are shared by more than one body must be selected from all
bodies. Otherwise, model conformity is not preserved.
The function can be applied only to 2D models.
A: Commands
sdegeo:delete-vertices
sdegeo:delete-vertices
Action:
Group:
sdegeo
(sdegeo:delete-vertices vertex-list)
Argument types: vertex-list
VERTEX LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function removes the specified vertices from the model. If there are
neighboring regions, vertices that are located at the same position and are
shared by more than one body must be selected from all bodies. Otherwise,
model conformity is not preserved.
The function can be applied only to 2D models. Only vertices that are
shared by linear edges can be deleted.
sdegeo:delete-work-plane
Action:
Group:
sdegeo
(sdegeo:delete-work-plane wp-name)
Argument types: wp-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function deletes the specified work plane wp-name.
The global work plane base is automatically created and cannot be deleted.
sdegeo:distance
Action:
Group:
sdegeo
sdegeo:distance vertex-list)
Argument types: vertex-list
VERTEX LIST
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
Returns the distance between two vertices.
None
471
A: Commands
sdegeo:dnce
sdegeo:dnce
Action:
Group:
sdegeo
(sdegeo:dnce angular-tolerance)
Argument types: angular-tolerance
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
472
None
None
The Scheme extension sdegeo:dnce is used to remove nearly collinear
edges from a 2D model. The specified angular tolerance, angulartolerance, is used to determine which linear edges are removed. If the
edge normals differ less than the angular tolerance (in degrees) at a given
vertex, the two neighboring edges will be deleted and they will be replaced
by a linear edge connecting the other two vertices of the two original edges
that shared the given vertex.
Applicable to 2D models only.
A: Commands
sdegeo:extend-device
sdegeo:extend-device
Action:
Group:
sdegeo
(sdegeo:extend-device { "right" rightextension } { "left" leftextension }
{ "top" topextension } { "bottom" bottomextension })
Argument types: "right"
KEYWORD
rightextension
REAL
"left"
KEYWORD
leftextension
REAL
"top"
KEYWORD
topextension
REAL
"bottom"
KEYWORD
bottomextension
REAL
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function is used to extend a device around its axis-aligned perimeter.
The keywords specify the direction of the extension. At least one of the
keywords must be used in the argument list. More than one keyword can be
used together with the actual extension distance. If an extension is defined
around a corner (for example, both "top" and "right" are specified), then
the rounded corner will also be filled. The region names of the extended
strips will be derived from the original region names. The extended sides
must be axis aligned.
The command can be used only for 2D devices.
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1
(sdegeo:create-rectangle (position 0 0.2 0) (position
(sdegeo:create-rectangle (position 0 0.3 0) (position
(sdegeo:create-rectangle (position 0 0.6 0) (position
(sdegeo:extend-device "right" 0.3 "top" 0.2)
473
A: Commands
sdegeo:extrude
sdegeo:extrude
Action:
Group:
sdegeo
(sdegeo:extrude body-list extrusion-depth)
Argument types: body-list
BODY LIST
extrusion-depth
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function takes a list of 2D bodies (specified by body-list) and
extrudes them in the positive z-direction by extrusion-depth. Instead of
body-list, the keyword all can be used, in which case, the complete
model is extruded.
The sdegeo:extrude command also applies to Ref/Eval windows. In the
case of a submesh reference, information regarding the extruded Ref/Eval
window prior to the extrusion and the extrude-depth is stored in the
command file so that the meshing engine can reproduce doping information
in the 3D extruded profile. For other doping profile types, the extruded Ref/
Eval window is stored directly in the command file without extrusion
information.
None
Example:
474
A: Commands
sdegeo:face-find-interior-point
sdegeo:face-find-interior-point
Action:
Group:
sdegeo
(sdegeo:face-find-interior-point position)
Argument types: position
POSITION
Returns:
ENTITY (FACE)
Syntax:
Errors:
Description:
Limitations:
None
This function takes a face Scheme object and returns a position object for an
interior point of that face.
None
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "xx")
(define myface (car (find-face-id (position 5 5 10))))
(sdegeo:face-find-interior-point myface)
;; #[ position 5 5 10 ]
(sde:clear)
(define mybody (sdegeo:create-polygon (list (position 0 0 0) (position 10 0 0) (position
10 5 0) (position 9 5 0) (position 9 1 0) (position 1 1 0) (position 1 5 0) (position 0 5
0) (position 0 0 0)) "Silicon" "xx"))
(define myface (car (entity:faces mybody)))
(sdegeo:face-find-interior-point myface)
;; #[ position 5 0.5 0 ]
475
A: Commands
sdegeo:fillet
sdegeo:fillet
Action:
Group:
sdegeo
(sdegeo:fillet edge|vertex-list fillet-radius)
Argument types: edge|vertex-list
EDGE LIST | VERTEX LIST
fillet-radius
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension performs edge or vertex roundings for 3D bodies.
edge|vertex-list contains a list of edges or a list of vertices to be
rounded. fillet-radius is the rounding radius used for the operation.
The GUI can be used to select the edges that need to be rounded or other
methods can be used to find out the edge entity IDs. For example, findedge-id can be used to find the edge IDs.
Rounding is a complex operation and can fail for several reasons. A
common problem is the use of an incorrect fillet-radius, which is
usually too large. The fillet-radius must be selected so that the
resulting model (after performing the filleting operation) is physically
(topologically) correct. Another typical problem is the incorrect selection of
the edges to be filleted. The edge|vertex-list must contain all tangent
continuous edges if an edge list is specified; otherwise, rounding fails.
Rounding changes model topology; new faces (and edges) are created and
old faces (edges) are removed from the model. When rounding is performed
in several steps, the order of performing the sdegeo:fillet operation
may be important. The rounding employs a constant-radius rounding for all
edges in the edge|vertex-list.
None
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silver" "region_1")
(define edge1 (find-edge-id (position 5 0 0)))
(sdegeo:fillet edge1 2)
(define face1 (find-face-id (position 5 5 10)))
(sdegeo:fillet (entity:edges face1) 1)
(define face1 (find-face-id (position 5 0 5)))
(sdegeo:fillet (entity:edges face1) 3)
476
A: Commands
sdegeo:fillet-2d
sdegeo:fillet-2d
Action:
Group:
sdegeo
(sdegeo:fillet-2d vertex(s) fillet-radius)
Argument types: vertex(s)
ACIS VERTEX | ACIS VERTEX LIST
fillet-radius
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command rounds the specified vertex or list of vertices. When you use
the GUI, the fillet-2d operation is applied to the selected entities.
((sde:selected-entities) returns the selected entity list.)
Note that when the rounding is to be performed on a vertex (or vertices) that
is shared by neighboring regions, all vertices must be added to the argument
list. (Edit > Edit 2D > Fillet)
The fillet-radius must be selected so that the operation does not result
in an invalid geometry. Small roundings may result in an excessive number
of small elements during meshing.
Example:
sdegeo:find-closest-edge
Action:
Group:
sdegeo
(sdegeo:find-closest-edge position)
Argument types: position
POSITION
Returns:
(EDGE.REAL)
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the edge list of all defined geometric bodies and
returns the entity ID of the closest edge to the specified position.
None
477
A: Commands
sdegeo:find-closest-face
sdegeo:find-closest-face
Action:
Group:
sdegeo
(sdegeo:find-closest-face position)
Argument types: position
POSITION
Returns:
(FACE.REAL)
Syntax:
Errors:
Description:
Limitations:
None
The function goes through the face list of all defined geometric bodies and
returns the entity ID of the closest face to the specified position.
None
sdegeo:find-closest-vertex
Action:
Group:
sdegeo
(sdegeo:find-closest-vertex position)
Argument types: position
POSITION
Returns:
(VERTEX.REAL)
Syntax:
Errors:
Description:
Limitations:
478
None
The function goes through the vertex list of all defined geometric bodies and
returns the entity ID of the closest vertex to the specified position.
None
A: Commands
sdegeo:find-touching-faces
sdegeo:find-touching-faces
Action:
Group:
sdegeo
(sdegeo:find-touching-faces flist)
Argument types: flist
FACE | FACE LIST
Returns:
ENTITY (FACE PAIR) | (FACE PAIR LIST)
Syntax:
Errors:
Description:
Limitations:
None
This function takes a list of faces and returns a list of pairs where the first
face is from the input list and the second is the touching face.
None
Example:
(sde:clear)
(define mb1 (sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "xx1"))
(define mb2 (sdegeo:create-cuboid (position 3 3 8) (position 7 7 10) "PolySilicon"
"xx2"))
(define tflist (sdegeo:find-touching-faces (entity:faces mb2)))
(entity:delete mb2)
(for-each
(lambda (lfpair)
(if (face? (cdr lfpair))
(entity:set-color (cdr lfpair) BLUE))
)
tflist)
sdegeo:get-active-work-plane
Action:
Group:
Syntax:
sdegeo
(sdegeo:get-active-work-plane)
Argument types:
None
Returns:
STRING
Errors:
None
This function returns the name of the active work plane.
None
Description:
Limitations:
479
A: Commands
sdegeo:get-auto-region-naming
sdegeo:get-auto-region-naming
Action:
Group:
Syntax:
sdegeo
(sdegeo:get-auto-region-naming)
Argument types:
None
Returns:
BOOLEAN
Errors:
None
This function returns #t if the automatic region-naming option is switched
on. It returns #f if it is switched off.
None
Description:
Limitations:
sdegeo:get-contact-edgelist
Action:
Returns the edges that have the specified contact set as 2D contact
attributes.
Group:
sdegeo
(sdegeo:get-contact-edgelist contact-set-name)
Argument types: contact-set-name
STRING
Returns:
EDGE LIST
Syntax:
Errors:
Description:
Limitations:
480
None
This function returns all edges that have the specified contact set name
attached as a 2D contact attribute (sdegeo:get-contactedgelist csetname). csetname is the name of the contact set.
None
A: Commands
sdegeo:get-contact-facelist
sdegeo:get-contact-facelist
Action:
Returns the faces that have the specified contact set as 3D contact
attributes.
Group:
sdegeo
(sdegeo:get-contact-facelist contact-set-name)
Argument types: contact-set-name
STRING
Returns:
FACE LIST
Syntax:
Errors:
Description:
Limitations:
None
This function returns all faces that have the specified contact set name
attached as a 3D contact attribute (sdegeo:get-contact-edgelist
csetname). csetname is the name of the contact set.
None
sdegeo:get-current-contact-set
Action:
Group:
sdegeo
(sdegeo:get-current-contact-set)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
Example:
None
Returns the name (string) of the current (active) contact set
None
The function returns the name of the current (active) contact set.
None
(sdegeo:define-contact-set "Drain")
(sdegeo:define-contact-set "Source" 4.0 (color:rgb 1.0 0.0 0.0) "##")
(sdegeo:set-current-contact-set "Drain")
(sdegeo:get-current-contact-set)
481
A: Commands
sdegeo:get-default-boolean
sdegeo:get-default-boolean
Action:
Group:
Syntax:
sdegeo
(sdegeo:get-default-boolean)
Argument types:
None
Returns:
STRING
Errors:
None
This function obtains the default Boolean behavior and returns it in a string.
Boolean_Value can be any of the predefined values: AB, ABA, BAB, ABiA,
ABiB, and XX.
None
Description:
Limitations:
sdegeo:get-region-counter
Action:
Group:
Syntax:
sdegeo
(sdegeo:get-region-counter)
Argument types:
None
Returns:
INTEGER
Errors:
None
This Scheme extension returns the valid region counter. By default, region
names are automatically assigned to the generated regions. The generated
region names are "region_%N", where %N is the region counter. The
function returns %N.
None
Description:
Limitations:
482
A: Commands
sdegeo:imprint-circular-wire
sdegeo:imprint-circular-wire
Action:
Group:
sdegeo
(sdegeo:imprint-circular-wire center-position radius)
Argument types: center-position
POSITION
radius
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function imprints a circular wire to an existing body. The imprinted
wire splits the faces of the existing bodies. This function can be used to
prescribe a circular contact area. The imprint functions split existing faces to
surface patches. After the face split, the newly created face patches to be
marked as contacts must be identified. During the assignment of contacts,
these face ID numbers can be used explicitly. center-position is used to
define the center of the circular wire body and radius specifies the radius
of the circular patch.
None
sdegeo:imprint-polygonal-wire
Action:
Group:
sdegeo
(sdegeo:imprint-polygonal-wire vertex-list)
Argument types: vertex-list
POSITION LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function imprints a polygonal wire to an existing body. The imprinted
wire splits the faces of the existing body. This function can be used to
prescribe a polygonal contact area. The imprint functions split existing faces
to surface patches. After the face split, the newly created face patches to be
marked as contacts must be identified. During the assignment of contacts,
these face ID numbers can be used explicitly. vertex-list contains the
vertices of the imprinted polygon. The polygon must be closed to imprint it,
so the first position must be repeated as the last position.
None
483
A: Commands
sdegeo:imprint-rectangular-wire
sdegeo:imprint-rectangular-wire
Action:
Group:
sdegeo
(sdegeo:imprint-rectangular-wire position1 position2)
Argument types: position1
POSITION
position2
POSITION
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function imprints a rectangular wire to an existing body. The imprinted
wire splits the faces of the existing body. This function can be used to
prescribe a rectangular contact area. The imprint functions split existing
faces to surface patches. After the face split, the newly created face patches
to be marked as contacts must be identified. During the assignment of
contacts, these face ID numbers can be used explicitly. position1 and
position2 define the two opposite corners of the imprinted rectangular
body.
None
sdegeo:imprint-triangular-wire
Action:
Group:
sdegeo
(sdegeo:imprint-triangular-wire position1 position2 position3)
Argument types: position1
POSITION
position2
POSITION
position3
POSITION
Syntax:
Returns:
Errors:
Description:
Limitations:
484
None
None
This function imprints a triangular wire to an existing body. The imprinted
wire splits the faces of the existing body. This function can be used to
prescribe a triangular contact area. The imprint functions split existing faces
to surface patches. After the face split, the newly created face patches to be
marked as contacts must be identified. During the assignment of contacts,
these face ID numbers can be used explicitly. position1, position2, and
position3 define the three vertices of the imprinted triangular wire.
None
A: Commands
sdegeo:insert-vertex
sdegeo:insert-vertex
Action:
Group:
sdegeo
(sdegeo:insert-vertex vertex-list)
Argument types: vertex-list
VERTEX LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function inserts a vertex in a 2D model by projecting the specified
insert position to the nearest edge.
The function works only for 2D models.
sdegeo:max-edge-length
Action:
Group:
sdegeo
(sdegeo:max-edge-length edge-list)
Argument types: edge-list
EDGE LIST
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
This function sdegeo:max-edge-length computes the length of each
edge in edge-list and returns the largest edge length.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")
(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")
(define elist (entity:edges (get-body-list)))
(sdegeo:max-edge-length elist)
485
A: Commands
sdegeo:min-edge-length
sdegeo:min-edge-length
Action:
Group:
sdegeo
(sdegeo:min-edge-length edge-list)
Argument types: edge-list
EDGE LIST
Returns:
REAL
Syntax:
Errors:
Description:
Limitations:
None
This function sdegeo:min-edge-length computes the length of each
edge in edge-list and returns the smallest edge length.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-rectangle (position 0 0 0) (position 2 2 0) "Silicon" "region_1")
(sdegeo:create-circle (position 1 2 0) 1 "Silicon" "region_2")
(define elist (entity:edges (get-body-list)))
(sdegeo:min-edge-length elist)
sdegeo:mirror-selected
Action:
Group:
sdegeo
(sdegeo:mirror-selected entity-list transform [keep-flag]
[repeat-number])
Argument types: entity-list
ENTITY LIST
transform
transform:reflection
keep-flag
BOOLEAN (optional)
repeat-number
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
486
None
None
The reflection data is specified through a transform, which is a
transform:reflection-type transform object.
None
A: Commands
sdegeo:move-2d-regions
sdegeo:move-2d-regions
Action:
Group:
sdegeo
(sdegeo:move-2d-regions body | body-list gvector)
Argument types: body
BODY
body-list
BODY LIST
gvector
GVECTOR
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This extension is used to move the specified regions (identified by their
entity IDs) to a new location. The new position of the regions is specified by
a gvector.
The function applies only to 2D models.
Example:
(sde:clear)
(define mb1 (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver"
"region_1"))
(sdegeo:move-2d-regions mb1 (gvector 1 1 0))
sdegeo:move-edge
Action:
Group:
sdegeo
(sdegeo:move-edge edge gvector)
Argument types: edge
EDGE
gvector
GVECTOR
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to move the specified edge (identified by its entity
ID) to a new location. The new position of the edge is specified by a gvector.
The function can be applied only to 2D models.
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver" "region_1")
(define top-edge (car (find-edge-id (position 0.5 1 0))))
(sdegeo:move-edge top-edge (gvector 0.2 0.2 0))
487
A: Commands
sdegeo:move-vertex
sdegeo:move-vertex
Action:
Group:
sdegeo
(sdegeo:move-vertex vertex position)
Argument types: vertex
VERTEX
position
POSITION
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to move the specified vertex (identified by its entity
ID) to a new location, which is given by a position entity, new-position.
The function applies only to 2D models. Vertices of 2D geometric bodies, as
well as vertices of 2D DRS bodies (Ref/Eval windows), can be used.
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silver" "region_1")
(define lower-left-vertex (car (find-vertex-id (position 0 0 0))))
(sdegeo:move-vertex lower-left-vertex (position -0.2 0.2 0))
sdegeo:point-entity-relationship
Action:
Group:
sdegeo
(sdegeo:point-entity-relationship body lposition)
Argument types: body
BODY
lposition
POSITION
Returns:
STRING ("inside", "boundary", "outside")
Syntax:
Errors:
Description:
Limitations:
488
None
This Scheme extension determines the containment of the specified position
with respect to the specified body. If the body contains the specified
position, the function returns inside. If the body lies on a face of the body,
the function returns boundary. If the point is not contained, the function
returns outside.
None
A: Commands
sdegeo:polygonal-split
sdegeo:polygonal-split
Action:
Group:
sdegeo
(sdegeo:polygonal-split plist)
Argument types: plist
POSITION LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function splits a 2D device along the specified path. The first and last
positions in the argument position list snap to the closest boundary edge. All
device bodies are split along the specified path, and a new unique region
name is assigned to each split part (original region name plus _N, where N is
a counter, which counts the split parts for each region separately).
None
Example:
489
A: Commands
sdegeo:prune-vertices
sdegeo:prune-vertices
Action:
Group:
sdegeo
(sdegeo:prune-vertices body-list angular-tolerance)
Argument types: body-list
BODY LIST
angular-tolerance
REAL
Syntax:
Returns:
Errors:
Description:
None
None
This Scheme extension merges neighboring edges by pruning the vertices.
The angular-tolerance argument specifies the angular threshold for the
operation. If the edge normals (at the common vertex position) differ less
than the specified angular-tolerance (in degrees), the edges will be
merged by removing the common vertex and replacing the two neighboring
linear edges by a single edge.
An additional function sdegeo:dnce (delete nearly collinear edges) is
defined, which calls sdegeo:prune-vertices for all bodies.
Limitations:
490
A: Commands
sdegeo:ray-test
sdegeo:ray-test
Action:
Group:
sdegeo
(sdegeo:ray-test entity ray radius)
Argument types: entity
BODY
ray
RAY
radius
REAL
Returns:
((ENTITY . POSITION) ...)
Syntax:
Errors:
Description:
Limitations:
None
Returns the positions where a ray intersects a solid. This extension returns
pairs. The first element of each pair is the entity hit by the ray, and the
second element of the pair is the position where the ray intersects the solid.
The pairs are sorted along the direction of the ray. If the ray intersects a
single face more than once, the extension returns the first intersection.
The argument entity must be a solid body.
The argument ray consists of a position and a direction.
None
Example:
; solid:ray-test
; Create a solid block.
(define block1 (solid:block (position 0 0 0) (position 40 40 40)))
; Determine where the ray intersects the solid block.
(sdegeo:ray-test block1 (ray (position 10 20 60) (gvector 0 0 -1)) 0.1)
; ((#[face 20 1] . #[position 10 20 40]) (#[face 19 1] . #[position 10 20 0]))
(sde:clear)
(define mysphere (sdegeo:create-sphere (position 5 5 10) 3 "Gold" "x2"))
(sdegeo:ray-test mysphere (ray (position 5 5 20) (gvector 0 0 -1)) 0.1)
; ((#[face 27 1] . #[position 5 5 13]))
491
A: Commands
sdegeo:reflect
sdegeo:reflect
Action:
Group:
sdegeo
(sdegeo:reflect entity-list base-position base-vector keep-flag)
Argument types: entity-list
BODY | BODY LIST | "all"
base-position
POSITION
base-vector
GVECTOR
keep-flag
BOOLEAN
Syntax:
Returns:
Errors:
Description:
None
None
Instead of an entity-list, the keyword all can be used. In this case, the
operation is performed on all entities. The base position that is used for the
operation is specified by base-position. base-vector is a gvector
specifying the direction of the reflection. The reflect operation generates
new bodies that inherit the material properties of the parent bodies. If the
base-vector points to the x-direction, the region names for the new
regions are inherited from the parent region names and an ".x" string is
appended to the region names. If gvector points to the y-direction, a ".y"
string is appended to the region names. Similarly, for the z-direction, ".z"
is used. In all other cases, ".tr" is added to the region names.
The keep-flag determines whether the parent elements are kept. If keepflag is #t, the parent elements are kept. If it is #f, the parent elements are
Limitations:
deleted.
This function is still available, but it is obsolete. Use sdegeo:mirrorselected.
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
(sdegeo:create-rectangle (position
; (sdegeo:extrude "all" 4)
(sdegeo:reflect "all" (position 10
492
A: Commands
sdegeo:rename-contact
sdegeo:rename-contact
Action:
Group:
sdegeo
(sdegeo:rename-contact oldContName newContName)
Argument types: oldContName
STRING (name of the contact set)
newContName
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function renames an existing contact.
None
493
A: Commands
sdegeo:revolve
sdegeo:revolve
Action:
Group:
sdegeo
(sdegeo:revolve entity-list base-position base-vector angle)
Argument types: entity-list
BODY | BODY LIST | "all"
base-position
POSITION
base-vector
GVECTOR
angle
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function revolves the specified entity or entities with the specified
base-position and base-vector. The specified entity can be either a
single entity or a list of entities. Alternatively, all can be used, in which
case, the complete device is revolved. When the GUI is used, the revolve
operation is applied to the selected entities. ((sde:selected-entities)
returns the selected entity list.) If no entities are selected and the GUI is
used, the operation is performed for the complete model. The revolve
operation is defined by a base-position and base-vector. The
specified entity-list entities are revolved about the base-position.
The axis of the revolve operation is specified by base-vector. The revolve
operation is always performed with respect to the active coordinate system.
When the operation is applied only to some parts of a device, overlapping
regions or gaps can be created. In this case, explicit Boolean operations
must be performed on the model to avoid overlapping regions.
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position 0 10 0) (position 10 10.1 0) "Oxide" "region_2")
(sdegeo:create-rectangle (position 4 10.1 0) (position 6 14 0) "PolySilicon" "region_3")
(sdegeo:revolve "all" (position 0 0 0) (gvector 0 1 0) 90)
(sdegeo:reflect "all" (position 0 0 0) (gvector -1 0 0) #t)
494
A: Commands
sdegeo:rotate-selected
sdegeo:rotate-selected
Action:
Group:
sdegeo
(sdegeo:rotate-selected entity-list transform [keep-flag]
[repeat-number])
Argument types: entity-list
BODY | BODY LIST
transform
transform:rotation
keep-flag
BOOLEAN (optional)
repeat-number
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The rotation data is specified through a transform, which is a
transform:rotation type transform object.
None
495
A: Commands
sdegeo:scale
sdegeo:scale
Action:
Group:
sdegeo
(sdegeo:scale entity-list scale-x scale-y | scale-z)
Argument types: entity-list
BODY | BODY LIST | "all"
scale-x
REAL
scale-y
REAL
scale-z
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function scales the specified entity or entities with the specified scaling
factors. The specified entity can be either a single entity or a list of entities.
Alternatively, all can be used, in which case, the complete device is scaled.
When the GUI is used, scaling is applied to the selected entities.
((sde:selected-entities) returns the selected entity list.) If no
entities are selected and the GUI is used, the operation is performed for the
complete model. Scaling is defined by its xyz components. The zcomponent is optional.
Note that the scale operation is always performed with respect to the active
coordinate system, that is, the xyz values are applied in the active coordinate
system, in the local xyz directions. (Edit > Transform > Scale)
When the operation is applied to only some parts of a device, overlapping
regions or gaps can be created. In this case, explicit Boolean operations
must be performed on the model to avoid overlapping regions.
This function is still available, but it is obsolete. Use sdegeo:scaleselected.
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position 4 8 0) (position 6 14 0) "PolySilicon" "region_2")
(sdegeo:scale "all" 2 1 1)
496
A: Commands
sdegeo:scale-selected
sdegeo:scale-selected
Action:
Group:
sdegeo
(sdegeo:scale-selected entity-list transform)
Argument types: entity-list
BODY | BODY LIST
transform
transform:scaling
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The scaling data is specified through a transform, which is a
transform:scaling type transform object.
None
sdegeo:set-active-coord-sys
Action:
Group:
sdegeo
(sdegeo:set-active-coord-sys cs-name)
Argument types: cs-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This command sets the specified coordinate system with cs-name as the
active coordinate system. All subsequent geometry creation commands are
applied to that coordinate system.
None
497
A: Commands
sdegeo:set-active-work-plane
sdegeo:set-active-work-plane
Action:
Group:
sdegeo
(sdegeo:set-active-work-plane wp-name)
Argument types: wp-name
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function sets the specified work plane with wp-name as the active work
plane. All subsequent geometry creation commands are applied to that work
plane.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "region_1")
(sdegeo:define-work-plane "wp1" (position 0 0 1) (position 1 0 1) (position 0 1 1))
(sdegeo:set-active-work-plane "wp1")
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "PolySilicon" "region_2")
; view the model, by rotating the view.
sdegeo:set-auto-region-naming
Action:
Group:
sdegeo
(sdegeo:set-auto-region-naming on-off)
Argument types: on-off
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
498
None
This function switches on or off the automatic region-naming option.
Regions are named using region_%d, where %d is an increasing integer.
None
A: Commands
sdegeo:set-contact
sdegeo:set-contact
Action:
Group:
sdegeo
(sdegeo:set-contact entity | entity-list [contact-set-name])
Argument types: entity
ENTITY
entity-list
ENTITY LIST
contact-set-name
STRING
Syntax:
Returns:
Errors:
Description:
None
None
This command attaches the active contact to the specified entity (or entities)
if the optional argument contact-set-name is not given.
If contact-set-name is given, it will be activated (or created as a contact
set if it does not exist). If the entity type is EDGE, a 2D contact is defined. If
the entity type is FACE (and the entity belongs to a 3D body), a 3D contact
will be assigned. If the entity is a 2D body, a 2D contact will be defined on
all edges of the entity. If the entity is a 3D body, a 3D contact will be defined
on all faces of the entity.
This function is more convenient and can replace the following functions:
sdegeo:set-contact-boundary-edges
sdegeo:set-contact-boundary-faces
sdegeo:set-contact-edges
sdegeo:set-contact-faces
Limitations:
499
A: Commands
sdegeo:set-contact-boundary-edges
sdegeo:set-contact-boundary-edges
Action:
Attaches the name of the active contact set to all edges of a specified body.
Group:
sdegeo
(sdegeo:set-contact-boundary-edges body | body-list)
Argument types: body
BODY
body-list
BODY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This command defines all edges of a selected region or regions as contacts,
using the name of the active contact set and the selected entities
(sde:selected-entities). Alternatively, a body list can be specified in
the argument list. In this case, (sde:selected-entities) is ignored
and the edge list is extracted from the specified body list.
(Device > Contacts > Set Region Boundary Edges)
None
sdegeo:set-contact-boundary-faces
Action:
Group:
sdegeo
(sdegeo:set-contact-boundary-faces body | body-list])
Argument types: body
BODY
body-list
BODY LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function is used to attach a contact attribute to each face of the
specified body or bodies. If the argument list is empty and body-list is
not defined, the function takes the bodies from (sde:selectedentities). The name of the active contact set is taken to specify the
contacts. Alternatively, to the selected faces, a face list can be given
explicitly in the argument list.
None
Example:
(sde:clear)
(sdegeo:define-contact-set "xx" 4.0 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "xx")
(define mycube (sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "PolySilicon"
"region_1"))
(sdegeo:set-contact-boundary-faces mycube)
500
A: Commands
sdegeo:set-contact-edges
sdegeo:set-contact-edges
Action:
Group:
sdegeo
(sdegeo:set-contact-edges edge-list contact-set-name)
Argument types: edge-list
EDGE LIST
contact-set-name
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function marks all edges in edge-list as contacts. contact-setname specifies the contact set to which the contact edges will belong. The
specified contact set must be predefined. When the GUI is used to add
contact attributes to the edges, the selected entities are used to initialize
edge-list. (sde:selected-entities) returns the edges that were
previously selected (and that are highlighted) from the GUI as contacts. The
contact set name is the active contact set name.
(Device > Contacts > Set Edge(s))
None
sdegeo:set-contact-faces
Action:
Group:
sdegeo
(sdegeo:set-contact-faces face | face-list])
Argument types: face
FACE
face-list
FACE LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function attaches a contact attribute to faces. If the argument list is
empty and face-list is not defined, the function takes the faces from
(sde:selected-entities). The name of the active contact set is taken
to specify the contacts. Alternatively, to the selected faces, a face list can be
given explicitly in the argument list. (Device > Contacts > Set Face(s))
None
501
A: Commands
sdegeo:set-contact-faces-by-polygon
sdegeo:set-contact-faces-by-polygon
Action:
Group:
sdegeo
(sdegeo:set-contact-faces-by-polygon polygon-list normal-list
contact-set-name)
Argument types: polygon-list
POLYGON LIST (a polygon is a POSITION list)
normal-list
GVECTOR LIST
contact-set-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function provides an alternative way to prescribe contacts. It can be
used to attach a contact attribute to only a part of an existing face (or list of
faces). The specified polygons are imprinted on the faces of the existing
model. After the imprint operation, the original faces are split and the
contact attribute is attached to the imprinted face segment. A normal vector
must be specified for each face to mark the direction of the imprint.
None
Example:
502
A: Commands
sdegeo:set-current-contact-set
sdegeo:set-current-contact-set
Action:
Group:
sdegeo
(sdegeo:set-current-contact-set csName)
Argument types: csName
STRING (name of the contact set)
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
503
A: Commands
sdegeo:set-default-boolean
sdegeo:set-default-boolean
Action:
Group:
sdegeo
(sdegeo:set-default-boolean boolean-value)
Argument types: boolean-value
STRING
Returns:
STRING
Syntax:
Errors:
Description:
Limitations:
None
The argument boolean-value can be any of the predefined values: AB,
ABA, BAB, ABiA, ABiB, and XX. The default behavior determines how
overlapping regions are treated. When it is set to AB, the newly created
regions are automatically merged (united) with all already existing
overlapping regions. The merged regions inherit the DATEX material (and
region name) from the new region. ABA subtracts all overlapping regions
from the already existing regions. BAB subtracts all existing regions from the
newly created regions. The ABiA behavior is similar to the ABA behavior,
except that the overlaps are separate regions (with the DATEX material
inherited from the new regions). ABiB is similar to ABiA, except that the
overlap regions inherit the DATEX material from the already existing
regions. XX allows for the creation of overlapping regions. In this case, you
must modify the model by explicitly deleting the overlapping parts, before
DFISE output.
None
Example:
(sde:clear)
(sdegeo:set-default-boolean "AB")
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-rectangle (position 3 8 0) (position 7 13 0) "PolySilicon" "region_2")
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 20 0 0) (position 30 10 0) "Silicon" "region_3")
(sdegeo:create-rectangle (position 23 8 0) (position 27 13 0) "PolySilicon" "region_4")
(sdegeo:set-default-boolean "BAB")
(sdegeo:create-rectangle (position 40 0 0) (position 50 10 0) "Silicon" "region_5")
(sdegeo:create-rectangle (position 43 8 0) (position 47 13 0) "PolySilicon" "region_6")
(sdegeo:set-default-boolean "ABiA")
(sdegeo:create-rectangle (position 0 20 0) (position 10 30 0) "Silicon" "region_7")
(sdegeo:create-rectangle (position 3 28 0) (position 7 33 0) "PolySilicon" "region_8")
(sdegeo:set-default-boolean "ABiB")
(sdegeo:create-rectangle (position 20 20 0) (position 30 30 0) "Silicon" "region_9")
(sdegeo:create-rectangle (position 23 28 0) (position 27 33 0) "PolySilicon" "region_10")
(sdegeo:set-default-boolean "XX")
(sdegeo:create-rectangle (position 40 20 0) (position 50 30 0) "Silicon" "region_11")
(sdegeo:create-rectangle (position 43 28 0) (position 47 33 0) "PolySilicon" "region_12")
504
A: Commands
sdegeo:set-region-counter
sdegeo:set-region-counter
Action:
Group:
sdegeo
(sdegeo:set-region-counter counter)
Argument types: counter
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension sets the region counter explicitly. When the automatic
region-naming option is selected, the generated regions are numbered
sequentially using the region counter. Regions are named automatically as
Region_1, Region_2, and so on. When the region counter is set to N, the
next generated region is named Region_N.
None
sdegeo:set-region-counter-aut
Action:
Group:
sdegeo
(sdegeo:set-region-counter-aut)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This function is used to set the region counter automatically. The region
attribute is checked for each existing regions and if a Region_N attribute is
found, the region counter attribute is set to the next available number N+1.
When a DFISE boundary file is loaded, the sdegeo:set-regioncounter-aut function is called automatically.
None
505
A: Commands
sdegeo:skin-wires
sdegeo:skin-wires
Action:
Group:
sdegeo
(sdegeo:skin-wires body-list [path] [skin-options])
Argument types: body-list
WIRE/FACE LIST
path
WIRE (optional)
skin-options
SKIN OPTIONS (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
This extension defines a 3D body such that the given wires or faces define
the cross sections to be interpolated by the resulting 3D body. There must be
at least two wire bodies or faces specified. The wires can be open or closed.
The wires are copies, that is, the originals remain. The wires can share end
points and do not have to be C1 continuous.
The argument body-list is a list of wire bodies.
The optional argument path defines a curve that is intersected with the
plane of each profile. At each of the resulting intersection points on the
curve, the tangent vector is calculated and is applied to the surface as a
constraint at that profile.
Limitations:
The argument skin-options gives the different options for skinning. For
a complete list of skinning options, see skin:options on page 581.
None
Example:
(sde:clear)
(define b1 (sdegeo:create-circle (position 0 0 0) 10 "Copper" "r1"))
(define b2 (sdegeo:create-ellipse (position 0 0 20) (position 20 0 20) 0.5 "Copper"
"r2"))
(define f1 (car (entity:faces b1)))
(define f2 (car (entity:faces b2)))
(define bs (sdegeo:skin-wires (list f1 f2)))
(sde:addmaterial bs "Copper" "bs")
(entity:delete (list b1 b2))
506
A: Commands
sdegeo:skin-wires-guides
sdegeo:skin-wires-guides
Action:
Creates a sheet body that interpolates a series of wires or faces with a guide
curve.
Group:
sdegeo
(sdegeo:skin-wires-guides body-list guides [skin-options])
Argument types: body-list
WIRE/FACE LIST
guides
EDGE LIST
skin-options
SKIN OPTIONS (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
The given wires or faces define the cross sections to be interpolated by the
resulting sheet body. The wire bodies are assumed to be simple and wellbehaved. The wires can be open or closed. The wires are copies, that is, the
originals remain. The wires can share end points and do not have to be C1
continuous.
The argument body-list is a list of wire bodies.
The argument guides are defined to be the curves for which the skinning
surface directly follows (in the skinning direction). The guides must
intersect each wire profile within 1.0e-06, and must start and end on the first
and last profile exactly. Any number of guides can be added, and they can
fall directly on vertices or not. Guides must be C1 continuous and wellbehaved (no looping).
Limitations:
507
A: Commands
sdegeo:skin-wires-normal
sdegeo:skin-wires-normal
Action:
Creates a sheet body that interpolates a series of wires or faces with take-off
vectors normal to the plane of the wire body.
Group:
sdegeo
(sdegeo:skin-wires-normal body-list normal-type [skin-options])
Argument types: body-list
WIRE/FACE LIST
normal-type
STRING
skin-options
SKIN OPTIONS (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
The given wires or faces define the cross sections to be interpolated by the
resulting sheet body with the additional constraint of the surface take-off
vectors leaving normal to the plane of each of the wire bodies. There must
be at least two wire bodies. The wire bodies are assumed to be simple,
meaning only the first wire of each body is used for skinning. The wires can
be open or closed. The wires are copies, that is, the originals remain. The
wires can share end points and do not have to be C1 continuous.
The argument body-list is a list of wire bodies.
The argument normal-type has four values: "first_normal",
"last_normal", "ends_normal", and "all_normal". These values
specify which profiles the normal constraint should be applied to. In the
case of "first_normal", the constraint is only applied to the first profile.
Other values follow similarly.
Limitations:
508
A: Commands
sdegeo:skin-wires-vectors
sdegeo:skin-wires-vectors
Action:
Creates a sheet body that interpolates a series of wires with take-off vectors
as constraints.
Group:
sdegeo
(sdegeo:skin-wires-vectors body-list SPAvector-list [magnitude-list] |
[guide-list] [skin-options])
Argument types: body-list
WIRE/FACE LIST
SPAvector-list
GVECTOR (LIST)
magnitude-list
REAL (LIST) (optional)
guide-list
EDGE (LIST) (optional)
skin-options
SKIN OPTIONS (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
None
The wires provided in the body-list argument define the cross sections to
be interpolated by the resulting sheet body. There must be at least two wire
bodies. The wire bodies are assumed to be simple, meaning only the first
wire of each body is used for skinning. The wires can be open or closed. The
wires are copies, that is, the originals remain. The wires can share end points
and do not have to be C1 continuous.
The argument body-list is a list of wire bodies.
The argument SPAvector-list is a list of vectors.
The argument magnitude-list is a list of magnitudes. Skinning with
vectors accepts as additional constraints a list of vectors and, optionally, a
list of magnitudes to control the take-off directions with which the skin
surface leaves the profiles. The number of supplied vectors must equal the
number of profiles if the closed option is set to FALSE. If the closed
option is set to TRUE, one more vector can be given. It will be used on the
copy that is made of the first profile to create a closed body. If no additional
vector is provided, the first vector will be used also on the first profile copy.
In a similar way, magnitudes can be provided. A profile will be interpolated
without constraint if the vector supplied for it is the zero vector.
The argument guide-list is a list of guides.
Limitations:
509
A: Commands
sdegeo:split-insert-device
sdegeo:split-insert-device
Action:
Splits the device and inserts a part between the split bodies.
Group:
sdegeo
(sdegeo:split-insert-device splitpos splitdir splitlength | splitmerge)
Argument types: splitpos
POSITION
splitdir
GVECTOR
splitlength
REAL
splitmerge
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
This function is used to split a device at a specified position and to insert a
part between the split bodies. The direction of the insertion can also be
specified. The command works both for 2D and 3D devices. If the
splitmerge attribute is set to #t, the split faces are merged.
None
Example:
(sde:clear)
(sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx")
(sdegeo:split-insert-device (position 0.2 0 0) (gvector 1 0 0) 0.4 #t)
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "xx")
(sdegeo:split-insert-device (position 0.2 0 0) (gvector 1 0 0) 0.4 #t)
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 1 1 1) "Silicon" "xx")
(sdegeo:split-insert-device (position 0.5 0.5 0.5) (gvector 1 1 0) 0.4 #t)
(sde:clear)
(sdegeo:create-sphere (position 0 0 0) 1 "Silicon" "xx")
(sdegeo:split-insert-device (position 0 0 0) (gvector 1 0 0) 0.4 #t)
510
A: Commands
sdegeo:sweep
sdegeo:sweep
Action:
Group:
sdegeo
(sdegeo:sweep profile {path | distance | vector | axis} [sweep-options])
Argument types: profile
FACE
path
WIRE | EDGE
distance
REAL
vector
GVECTOR
axis
POSITION . VECTOR
sweep-options
SWEEP OPTIONS (optional)
Returns:
ENTITY
Syntax:
Errors:
Description:
511
A: Commands
sdegeo:taper-faces
Description:
Limitations:
sdegeo:taper-faces
Action:
Tapers an array of faces about a point and a supplied draft vector by a given
draft angle.
Group:
sdegeo
(sdegeo:taper-faces face-list point normal angle)
Argument types: face-list
FACE LIST
point
POSITION
normal
GVECTOR
angle
REAL
Returns:
BODY
Syntax:
Errors:
Description:
Limitations:
512
None
This extension tapers the faces specified by face-list by the supplied
draft angle about an axis defined by the intersection between the plane of the
face and a taper plane, which is defined by a point and normal given as
arguments to the extension. The direction of the normal defines the direction
of the angle, that is, the resulting angled plane will slope in the direction of
the draft plane normal. The taper plane need not intersect the face to be
tapered and, even when it does, this intersection need not be an edge of the
body (unlike in edge tapering). The face-list identifies the faces of the
body to be tapered. point specifies a position on the taper plane. normal
specifies the normal of the taper plane at the point specified. angle
specifies the rotation angle in degrees.
Only planes, cones, ruled surfaces, and previously plane-tapered surfaces
(provided the same taper plane is used) can be plane tapered.
A: Commands
sdegeo:translate
sdegeo:translate
Action:
Group:
sdegeo
(sdegeo:translate entity-list translate-x translate-y | translate-z)
Argument types: entity-list
BODY | BODY LIST | "all"
translate-x
REAL
translate-y
REAL
translate-z
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function translates the specified entity or entities with the specified
distance. The specified entity can be either a single entity or a list of entities.
Alternatively, all can be used, in which case, the complete device is
translated. When you use the GUI, the translate operation is applied to the
selected entities. ((sde:selected-entities) returns the selected entity
list.) If no entities are selected and the GUI is used, the operation is
performed for the complete model. The translation is defined by its xyz
components. The z-component is optional.
Note that the translate operation is always performed with respect to the
active coordinate system, that is, the xyz values are applied in the active
coordinate system, in the local xyz directions.
(Edit > Transform > Translate)
When the operation is applied only to some parts of a device, overlapping
regions or gaps can be created. In this case, explicit Boolean operations
must be performed on the model to avoid overlapping regions.
This function is still available, but it is obsolete. Use sdegeo:translateselected.
Example:
(sde:clear)
(sdegeo:set-default-boolean "ABA")
(sdegeo:create-rectangle (position 0 0 0) (position 10 10 0) "Silicon" "region_1")
(sdegeo:create-polygon (list (position 2 0 0) (position 3 2 0) (position 7 2 0)
(position 8 0 0) position 8 -3 0) (position 7 -4 0) (position 3 -4 0) (position 2 -3 0)
(position 2 0 0)) "PolySilicon" "region_2")
(sdegeo:translate "all" 1 0)
(sdegeo:define-coord-sys "cs" 0 0 45)
(sdegeo:set-active-coord-sys "cs")
(sdegeo:translate "all" 1 0)
513
A: Commands
sdegeo:translate-selected
sdegeo:translate-selected
Action:
Group:
sdegeo
(sdegeo:translate-selected entity-list transform [keep-flag]
[repeat-number])
Argument types: entity-list
BODY | BODY LIST
transform
transform:translation
keep-flag
BOOLEAN (optional)
repeat-number
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
514
None
None
The translate data is specified through a transform, which is a
transform:translation type transform object.
None
A: Commands
sdeicwb:create-boxes-from-layer
sdeicwb:create-boxes-from-layer
Action:
Creates rectangles (2D) or cuboids (3D) with a lateral extent given by the
segments (2D) or polygon bounding boxes (3D) from the layer in an
IC WorkBench (ICWB) TCAD layout. The vertical extent is taken from the
argument list.
Group:
sdeicwb
(sdeicwb:create-boxes-from-layer lname top bot region-material
region-name)
Argument types: lname
STRING (name of a layer)
top
REAL (top coordinate of box)
bot
REAL (bottom coordinate of box)
region-material
STRING
region-name
STRING
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
This command supports layout-driven structural operations, with a syntax
independent of the dimension of the currently active ICWB simulation
domain.
Use this function, for example, to superimpose a dummy region onto a
structure to turn its interfaces into contacts and delete it afterwards.
None
Example:
515
A: Commands
sdeicwb:define-refinement-from-layer
sdeicwb:define-refinement-from-layer
Action:
Group:
sdeicwb
(sdeicwb:define-refinement-from-layer "lname" lname ["rname" rname]
["oversize" oversize] "top" top "bot" bot "dlrmin" dlrmin "dlrmax" dlrmax
"dbtmin" dbtmin "dbtmax" dbtmax ["dbfmin" dbfmin] ["dbfmax" dbfmax])
Argument types: lname
STRING (name of a layer)
rname
STRING (optional name of refinement window;
defaults to layer name)
oversize
REAL (optional parameter to extend the refinement
window beyond the lateral extent of the layer)
top
REAL (top coordinate of refinement window)
bot
REAL (bottom coordinate of refinement window)
dlrmin
REAL (minimum refinement in left-right dimension)
dlrmax
REAL (maximum refinement in left-right dimension)
dbtmin
REAL (minimum refinement in bottom-top dimension)
dbtmax
REAL (maximum refinement in bottom-top dimension)
dbfmin
REAL (minimum refinement in back-front dimension)
(optional)
dbfmax
REAL (maximum refinement in back-front dimension)
(optional)
Syntax:
Returns:
Errors:
Description:
None
None
This command supports layout-driven mesh refinements, with a syntax
independent of the dimension of the currently active ICWB simulation
domain.
The command serves as an interface between the ICWB TCAD layout and
the Sentaurus Structure Editor commands sdedr:define-refinementwindow, sdedr:define-refinement-size, and sdedr:definerefinement-placement by automatically obtaining the lateral dimension
of the refinement box from the specified ICWB layers, taking the vertical
refinement box dimensions from the argument list.
For a 2D or 3D ICWB simulation domain, a refinement window is created
for each segment or polygon found in the specified layers. For 3D, the
lateral extent of the respective refinement windows is given by the bounding
box of the polygon. The name of the refinement window has the form
RPlace.<rname>_<counter>. The name of the refinement size setting is
RSize.<rname>.
516
A: Commands
sdeicwb:define-refinement-from-layer
Description:
Limitations:
Example:
(sdeicwb:define-refinement-from-layer
"lname" "POLY"
"rname" "Channel"
"oversize" 0.15
"top" (sdeicwb:up SiTop 0.03)
"bot" (sdeicwb:down SiTop 0.1)
"dlrmax" 0.05 "dlrmin" 0.025
"dbtmax" 0.02 "dbtmin" 0.01
"dbfmax" 0.05 "dbfmin" 0.025)
(sdedr:define-refinement-function "RSize.Channel" "DopingConcentration"
"MaxTransDiff" 1)
(sdedr:define-refinement-function "RSize.Channel" "MaxLenInt" "Silicon" "Oxide"
0.0002 1.41)
517
A: Commands
sdeicwb:down, sdeicwb:up
sdeicwb:down, sdeicwb:up
Action:
Group:
sdeicwb
(sdeicwb:up value increment)
(sdeicwb:down value increment)
Argument types: value
REAL
increment
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
(define
(define
(define
(define
518
A: Commands
sdeicwb:generate-mask-by-layer-name
sdeicwb:generate-mask-by-layer-name
Action:
Group:
sdeicwb
(sdeicwb:generate-mask-by-layer-name maskname layernames)
Argument types: maskname
STRING
layernames
STRING | STRING LIST
Syntax:
Returns:
Errors:
None
Creates a mask based on the given layer names referencing an ICWB macro
file previously loaded using the (sdeicwb:load-file) Scheme
extension and based on the ICWB domain previously selected with the
(sdeicwb:set-domain) command.
The ICWB macro file must have been previously loaded and the ICWB
domain previously selected. The ICWB domain must be three dimensional.
Description:
Limitations:
sdeicwb:get-back
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-back)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the coordinates
of the domain bounding box can be obtained. Calling sdeicwb:get-back
returns the back coordinate. The bounding box includes all stretches applied
by sdeicwb:stretch.
None
Description:
Limitations:
519
A: Commands
sdeicwb:get-dimension
sdeicwb:get-dimension
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-dimension)
Argument types:
None
Returns:
INTEGER
Errors:
None
The current domain defines a mask for simulation for 1D, 2D, or 3D. The
dimension value as an integer is returned according to the domain type as
follows:
Point: 1
Gauge: 2
Highlight: 3
If multiple domains are set as the current domain, the dimension of the first
domain is returned.
Description:
Limitations:
sdeicwb:get-domains
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-domains)
Argument types:
None
Returns:
STRING LIST
Errors:
None
Current domains are set with sdeicwb:set-domain. The list of current
domains is returned with sdeicwb:get-domains. If only one domain is
the current domain, a list of length one is returned.
None
Description:
Limitations:
520
A: Commands
sdeicwb:get-front
sdeicwb:get-front
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-front)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the coordinates
of the domain bounding box can be obtained. Calling sdeicwb:getfront returns the front coordinate. The bounding box includes all stretches
applied by sdeicwb:stretch.
None
Description:
Limitations:
sdeicwb:get-global-bot, sdeicwb:get-global-top
Action:
Returns the top or bottom coordinate of the global bounding box using a
dimension-independent syntax.
Group:
sdeicwb
(sdeicwb:get-global-bot)
(sdeicwb:get-global-top)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
Example:
None
For a 2D ICWB simulation domain, sdeicwb:get-global-top returns
the minimum y-coordinate. For a 3D domain, the command returns the
maximum z-coordinate of the global bounding box. Correspondingly,
sdeicwb:get-global-bot returns the maximum y-coordinate (2D) or
the minimum z-coordinate (3D).
None
This command supports layout-driven mesh generation and structural
operations, with a syntax independent of the dimension of the currently
active ICWB simulation domain. The default coordinate systems in
Sentaurus Structure Editor are different for 2D and 3D.
For 2D, the y-axis points downwards. For 3D, the y-axis points backwards
and the z-axis points upwards. Use this command to obtain the topmost
coordinate for both 2D and 3D ICWB simulation domains.
None
(define GTop (sdeicwb:get-global-top))
(define GBot (sdeicwb:get-global-bot))
521
A: Commands
sdeicwb:get-layer-ids
sdeicwb:get-layer-ids
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-layer-ids)
Argument types:
None
Returns:
STRING LIST
Errors:
None
Returns a list of layer IDs from the IC WorkBench mask file previously
loaded by sdeicwb:load-file.
None
Description:
Limitations:
sdeicwb:get-layer-names
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-layer-names)
Argument types:
None
Returns:
STRING LIST
Errors:
None
Returns a list of layer names from the IC WorkBench mask file previously
loaded by sdeicwb:load-file.
None
Description:
Limitations:
522
A: Commands
sdeicwb:get-layer-polygon-midpoints
sdeicwb:get-layer-polygon-midpoints
Action:
Group:
sdeicwb
(sdeicwb:get-layer-polygon-midpoints layer-name height)
Argument types: layer-name
STRING
height
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
(sdegeo:set-current-contact-set "drain")
(define DRAINMETAL (find-body-id
(car (sdeicwb:get-layer-polygon-midpoints "ndrain" (sdeicwb:up SiTop epsilon)))))
(sdegeo:set-contact-boundary-faces DRAINMETAL)
(sdegeo:delete-region DRAINMETAL)
sdeicwb:get-left
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-left)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the coordinates
of the domain bounding box can be obtained. Calling sdeicwb:get-left
returns the left coordinate. The bounding box includes all stretches applied
by sdeicwb:stretch.
None
Description:
Limitations:
523
A: Commands
sdeicwb:get-polygon-bounding-boxes-by-layer-name
sdeicwb:get-polygon-bounding-boxes-by-layer-name
Action:
Returns the bounding boxes of polygons on given layer and the current
domain.
Group:
sdeicwb
(sdeicwb:get-polygon-bounding-boxes-by-layer-name layer-name)
Argument types: layer-name
STRING
Returns:
POSITION LIST
Syntax:
Errors:
Description:
None
Returns the bounding boxes for polygons on a given layer and the given the
current domain as segments representing the diagonal of the bounding box
for that polygon. The returned values are represented as:
(list (list a_1 b_1) (list a_2 b_2) ... (list a_n b_n))
Limitations:
where a_n and b_n are the corner POSITIONs of the bounding box of each
polygon on that layer.
The current domain must first be set using sdeicwb:set-domain.
sdeicwb:get-polygon-by-name
Action:
Group:
sdeicwb
(sdeicwb:get-polygon-by-name polygon-name)
Argument types: polygon-name
STRING
Returns:
POSITION LIST
Syntax:
Errors:
Description:
Limitations:
524
None
Returns the polygon coordinates for a given polygon name. Polygons are
named as they are read in using the sdeicwb:load-file command.
A list of polygon names is available on a given layer using sdeicwb:getpolygon-names-by-layer-name.
None
A: Commands
sdeicwb:get-polygon-names-by-layer-name
sdeicwb:get-polygon-names-by-layer-name
Action:
Group:
sdeicwb
(sdeicwb:get-polygon-names-by-layer-name layer-name)
Argument types: layer-name
STRING
Returns:
STRING LIST
Syntax:
Errors:
Description:
Limitations:
None
The given layer-name returns a list of names of polygons on that layer.
None
sdeicwb:get-region-bot, sdeicwb:get-region-top
Action:
Returns the top or bottom coordinate of a given region using a dimensionindependent syntax.
Group:
sdeicwb
(sdeicwb:get-region-top body)
(sdeicwb:get-region-bot body)
Argument types: body
BODY
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
525
A: Commands
sdeicwb:get-right
sdeicwb:get-right
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-right)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the coordinates
of the domain bounding box can be obtained. Calling sdeicwb:getright returns the right coordinate. The bounding box includes all stretches
applied by sdeicwb:stretch.
None
Description:
Limitations:
sdeicwb:get-xmax
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-xmax)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the xmax
coordinate of the domain bounding box is returned in IC WorkBench
coordinates by calling sdeicwb:get-xmax. The bounding box includes all
stretches applied by sdeicwb:stretch.
None
Description:
Limitations:
526
A: Commands
sdeicwb:get-xmin
sdeicwb:get-xmin
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-xmin)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the xmin
coordinate of the domain bounding box is returned in IC WorkBench
coordinates by calling sdeicwb:get-xmin. The bounding box includes all
stretches applied by sdeicwb:stretch.
None
Description:
Limitations:
sdeicwb:get-ymax
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-ymax)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the ymax
coordinate of the domain bounding box is returned in IC WorkBench
coordinates by calling sdeicwb:get-ymax. The bounding box includes all
stretches applied by sdeicwb:stretch.
None
Description:
Limitations:
527
A: Commands
sdeicwb:get-ymin
sdeicwb:get-ymin
Action:
Group:
Syntax:
sdeicwb
(sdeicwb:get-ymin)
Argument types:
None
Returns:
REAL
Errors:
None
When sdeicwb:set-domain has set the current domains, the ymin
coordinate of the domain bounding box is returned in ICWB coordinates by
calling sdeicwb:get-ymin. The bounding box includes all stretches
applied by sdeicwb:stretch.
None
Description:
Limitations:
sdeicwb:load-file
Action:
Group:
sdeicwb
(sdeicwb:load-file filename [scale])
Argument types: filename
STRING
scale
REAL (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
528
A: Commands
sdeicwb:set-domain
sdeicwb:set-domain
Action:
Group:
sdeicwb
(sdeicwb:set-domain domain)
Argument types: domain
STRING | STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Sets the current domain to the given domain name or list of domain names.
Setting the current domain is a prerequisite for other sdeicwb commands
that implicitly depend on the current domain being defined.
None
sdeicwb:stretch
Action:
Stretches the current domain using the given stretch by the given amount.
Group:
sdeicwb
(sdeicwb:stretch stretch-name stretch-amount)
Argument types: stretch-name
STRING
stretch-amount
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Applies the given stretch by the given amount to the current domains. The
order of applied stretches is important because the location of other stretches
can change given the application of one stretch.
None
529
A: Commands
sdeio:assign-local-refs
sdeio:assign-local-refs
Action:
Group:
sdeio
(sdeio:assign-local-refs lref)
Argument types: lref
REAL between (0-1)
Returns:
BOOLEAN (#t for success, #f for failure)
Syntax:
Errors:
Description:
None
This function is used to optimize the quality of the tessellated boundary
output generation for meshing. It is used to attach local refinements
automatically to the faces of a 3D model. When the DFISE or TDR
tessellated boundary output is generated, these local refinements will be
taken into consideration and the faces will be tessellated such that the local
refinement criteria are satisfied. In some cases, this will help to create better
quality boundary output, which will assist the meshing engines to create a
better quality 3D grid.
This function needs only one number as an argument. The range is (0,1);
numbers closer to 0 mean less refinement, and numbers closer to 1 mean
more local refinement. A reasonable range is 0.20.8.
Limitations:
530
The attached local refinement for each face is determined solely based on
the local face geometry (curvature, and other geometric properties).
None
A: Commands
sdeio:read-dfise-mask
sdeio:read-dfise-mask
Action:
Group:
sdeio
(sdeio:read-dfise-mask filename)
Argument types: filename
STRING
Returns:
BOOLEAN (#t for success, #f for failure)
Syntax:
Errors:
Description:
None
This command loads the specified layout file (DFISE layout file syntax)
and initializes the data structure that defines the mask layouts inside
Procem.
During process emulation, the initialized mask layouts can be used in
pattern operations. Mask polarities are not fixed; each mask can be used
either as a light or dark field mask.
Limitations:
The argument filename is the name of the mask layout file (specified with
the file extension .lyt), and it may also contain a path.
None
sdeio:read-tdr-bnd
Action:
Group:
sdeio
(sdeio:read-tdr-bnd file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The Scheme extension sdeio:read-tdr-bnd is analogous to the
sdeio:readbnd Scheme extension. This function loads a TDR boundary
file into Sentaurus Structure Editor. Each TDR region element is converted
to an ACIS body. For 2D models, contact attributes are attached to the
corresponding edges of the ACIS model and to the corresponding faces for
3D models. Two-dimensional regions are converted to non-uniform sheet
bodies, while 3D regions are converted to manifold solids. DFISE material
properties and region names are attached as attributes to the ACIS bodies.
None
531
A: Commands
sdeio:readbnd
sdeio:readbnd
Action:
Group:
sdeio
(sdeio:readbnd file-name | [loadpath] [loadmethod] | [transformation] |
[overlap])
Argument types: file-name
STRING
loadpath
STRING (optional)
loadmethod
STRING "API" or "Direct" (optional)
transformation
BOOLEAN (optional)
overlap
BOOLEAN (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
None
This function loads a DFISE boundary file into Sentaurus Structure Editor.
Each DFISE region element is converted to an ACIS body. For 2D models,
contact attributes are attached to the corresponding edges of the ACIS model
and to the corresponding faces for 3D models. Two-dimensional regions are
converted to sheet bodies, while 3D regions are converted to manifold
solids. DFISE material properties and region names are attached as
attributes to the ACIS bodies.
Several optional arguments can be used with this function: The argument
loadpath specifies an additional load path. The file-name argument is
appended to this path to specify the location of the input file.
The argument loadmethod can be either "API" or "Direct". When a 2D
boundary is loaded, the two load methods are identical. However, in 3D,
when the "Direct" method is used, the tessellated boundary triangles are
kept in the imported model. The "API" method merges the coplanar faces.
Usually, the "Direct" method (default) is faster, especially for large 3D
models.
The argument transformation is a Boolean argument. If it is set to #t,
the transformation matrix from the DFISE .bnd file is applied to the loaded
model. (The default value is #f.)
The argument overlap is a Boolean argument. If it is set to #t, the possible
overlaps in the DFISE .bnd file are removed, using the actual Boolean
overlap setting. The command sdegeo:get-default-boolean can be
used to find the actual Boolean overlap setting, and the command
sdegeo:set-default-boolean can be used to set the overlap handling
method. The default value for overlap is #f.
532
A: Commands
sdeio:readbnd
Description:
Limitations:
None
533
A: Commands
sdeio:save-2d-dfise-bnd
sdeio:save-2d-dfise-bnd
Action:
Group:
sdeio
(sdeio:save-2d-dfise-bnd body-list file-name
[writeinterface saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
None
The output file contains all entities that are listed in body-list. All bodies
in the body-list must be created by using either the sdegeo Scheme
functions or the associated GUI actions. This ensures that all requirements
for generating a DFISE boundary file are automatically guaranteed.
If the boundary is saved successfully, the command returns #t; otherwise, it
returns #f.
The most important requirements are that each region must have associated
material and region attributes (for generating the DFISE material and
region name list), neighboring regions cannot overlap, and neighboring
regions must be conformal. (Shared boundaries must have the same
boundary edges.) If the bodies were generated by using ACIS Scheme
functions directly, you must ensure that all the requirements for DFISE
model conformity are satisfied. Support functions are available to attach the
DATEX material and region-name attributes.
If you want to export the complete model, (get-body-list) can be used
to identify all regions. This command can be given as the body-list
attribute. Since the internal model of Sentaurus Structure Editor can contain
curved boundaries and the 2D DFISE boundary file is based on a
polygonal representation, a discretization step must be performed before the
DFISE output is generated.
After the internal model is tessellated, the boundary loops are extracted
from the triangulation and the boundary loops are written to the DFISE
boundary file. If there are contacts attached to the regions, the contact
information is also extracted to the DFISE boundary file.
534
A: Commands
sdeio:save-2d-tdr-bnd
Description:
Limitations:
sdeio:save-2d-tdr-bnd
Action:
Group:
sdeio
(sdeio:save-2d-tdr-bnd body-list file-name
[writeinterface saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The sdeio:save-2d-tdr-bnd function is analogous to the
sdeio:save-2d-dfise-bnd function and uses the same argument list.
The only difference is that it generates the TDR output boundary file,
instead of the DFISE boundary file.
See sdeio:save-dfise-bnd on page 538 for more information.
None
535
A: Commands
sdeio:save-3d-dfise-bnd
sdeio:save-3d-dfise-bnd
Action:
Group:
sdeio
(sdeio:save-3d-dfise-bnd body-list file-name
[writeinterface writesurfnormal saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
writesurfnormal
#f (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
None
The output file contains all entities that are listed in body-list. All bodies
in the body-list must be created by using either the sdegeo Scheme
functions or the associated GUI actions. This ensures that all requirements
for generating a DFISE boundary file are automatically guaranteed.
If the boundary is saved successfully, the command returns #t; otherwise, it
returns #f.
The most important requirements are that each region must have associated
material and region attributes (for generating the DFISE material and
region name list), neighboring regions cannot overlap, and neighboring
regions must be conformal. (Shared boundaries must have the same
boundary edges.) If the bodies were generated by using ACIS Scheme
functions directly, you must ensure that all the requirements of DFISE
model conformity are satisfied. Support functions are available to attach the
DATEX material and region-name attributes.
If you want to export the complete model, (get-body-list) can be used
to identify all regions. This command can be given as the body-list
attribute. Since the internal model of Sentaurus Structure Editor can contain
curved boundaries and the 3D DFISE boundary file is based on a
polyhedral representation, a discretization step must be performed before
the DFISE output is generated.
After the internal model is tessellated, the boundary triangles are extracted
from the triangulation and the boundaries are written to the DFISE
boundary file. If there are contacts attached to the regions, the contact
information is also extracted to the DFISE boundary file.
536
A: Commands
sdeio:save-3d-tdr-bnd
Description:
Limitations:
sdeio:save-3d-tdr-bnd
Action:
Group:
sdeio
(sdeio:save-3d-tdr-bnd body-list file-name
[writeinterface writesurfnormal saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
writesurfnormal
#f (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The sdeio:save-3d-tdr-bnd function is analogous to the
sdeio:save-3d-dfise-bnd function and uses the same argument list.
The only difference is that it generates the TDR output boundary file,
instead of the DFISE boundary file.
See sdeio:save-dfise-bnd on page 538 for more information.
None
537
A: Commands
sdeio:save-dfise-bnd
sdeio:save-dfise-bnd
Action:
Group:
sdeio
(sdeio:save-dfise-bnd body-list file-name
[writeinterface writesurfnormal saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
writesurfnormal
#f (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
538
None
Depending on the model dimensionality, this function calls either
sdeio:save-2d-dfise-bnd or sdeio:save-3d-dfise-bnd. You can
specify all instead of an entity list in the argument list to use all regions for
the DFISE boundary file generation.
To round the output boundary vertex coordinates:
The global Scheme variable bndprecision is used to control the rounding.
The default number of digits used for the rounding is 16. The command
(set! bndprecision 12) is used to control the precision of the vertex
coordinates.
None
A: Commands
sdeio:save-tdr-bnd
sdeio:save-tdr-bnd
Action:
Group:
sdeio
(sdeio:save-tdr-bnd body-list file-name
[writeinterface writesurfnormal saveprecision])
Argument types: body-list
BODY LIST | "all"
file-name
STRING
writeinterface
BOOLEAN (optional)
writesurfnormal
#f (optional)
saveprecision
INTEGER (optional)
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
None
The sdeio:save-tdr-bnd function is analogous to the sdeio:savedfise-bnd function and uses the same argument list. The only difference
is that it generates the TDR output boundary file, instead of the DFISE
boundary file. Depending on the model dimensionality, this function calls
either sdeio:save-2d-tdr-bnd or sdeio:save-3d-tdr-bnd. You can
specify all instead of an entity list in the argument list to use all regions for
the generation of the TDR boundary file.
See sdeio:save-dfise-bnd on page 538 for more information.
None
539
A: Commands
sdenoffset:create-boundary
sdenoffset:create-boundary
Action:
Group:
sdenoffset
(sdenoffset:create-boundary
< "region" region1 region2 > | < "material" material1 material2 >
[ "hglobal" hglobal ] [ "window" x0 y0 z0 x1 y1 z1 ]
[ "reggrid-window" x1 y1 z1 x2 y2 z2 ]
[ "reggrid-uniform" x y z ] [ "reggrid-regmod" regmode ]
[ "reggrid-minedgeratio" minedgeratio ]
[ "deviationfrac" devfrac ] [ "deviatiorel" devrel ]
[ "deviationabs" devabs ] [ "ridgeangle" rangle ]
"reggrid-grfplane" px py pz)
Argument types: region1, region2
STRING
material1, material2
DATEXMAT
hglobal
REAL (optional)
x,y,z
REAL (optional)
x0,y0,z0
REAL (optional)
x1,y1,z1
REAL (optional)
x2,y2,z2
REAL (optional)
regmode
STRING (optional)
minedgeratio
REAL (optional)
devfrac
REAL (optional)
devrel
REAL (optional)
devabs
REAL (optional)
rangle
REAL (optional)
px,py,pz
BOOLEAN
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
540
None
This extension generates a new Noffset boundary block, which defines the
boundary between either two regions or two materials.
None
A: Commands
sdenoffset:create-global
sdenoffset:create-global
Action:
Group:
sdenoffset
(sdenoffset:create-global "usebox" usebox "grading" grading
"maxangle" maxangle "triangulate" triangulate
"deviationabs" deviationabs
"deviationfrac" deviationfrac
"deviationrel" deviationrel
"ridgeangle" ridgeangle
"maxnumpoints" maxnumpoints
"maxconnect" maxconnect "background" background
"options" options "recoverholes" recoverholes
"hlocal" hlocal "factor" factor
"subdivide" subdivide "terminateline" terminateline
"maxedgelength" maxedgelength "maxlevel" maxlevel
"hglobal" hglobal "aampmode" aampmode "usegrf" usegrf
"layeringtype" layeringtype)
Argument types: usebox
INTEGER
grading
REAL
deviationabs
REAL
deviationfrac
REAL
deviationrel
REAL
ridgeangle
REAL
maxangle
REAL
maxnumpoints
INTEGER
usegrf
INTEGER
triangulate
INTEGER
maxconnect
INTEGER
background
STRING
options
STRING
aampmode
INTEGER
recoverholes
INTEGER
hlocal
REAL
factor
REAL
subdivide
INTEGER
terminateline
INTEGER
maxedgelength
REAL
maxlevel
INTEGER
hglobal
REAL
layeringtype
"Levelset" | "Mixed"
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This Scheme extension generates a new Noffset global parameters block.
None
541
A: Commands
sdenoffset:create-isoline
sdenoffset:create-isoline
Action:
Group:
sdenoffset
(sdenoffset:create-isoline name "species" species "value" value
[ "material" material | "region" region ]
"length" length "submesh" submesh "bgesize" bgesize
"isobgcmode" isobgcmode "dopmaxgval" dopmaxgval
"isoimprovetol" isoimprovetol "isoridgeangle" isoridgeangle
"isominedge" isominedge "elmsizes" elmsizes
"evalwindow" window "aamevwindow" window
"isobgvmaxcon" isobgvmaxcon
"isosernip" isosernip
"isooptimize" isooptimize)
Argument types: name
STRING
species
STRING
value
REAL
region
STRING (optional)
material
DATEXMAT (optional)
length
REAL
submesh
STRING
bgesize
REAL
isobgcmode
STRING
dopmaxgval
REAL
isoimprovetol
REAL
isoridgeangle
REAL
isominedge
REAL
elmsizes
REAL REAL REAL
evalwindow
window
aamevwindow
window
isobgvmaxcon
INTEGER
isosernip
INTEGER
isooptimize
INTEGER
window
(position REAL REAL REAL)
(position REAL REAL REAL)
Syntax:
Returns:
Errors:
Description:
Limitations:
NOTE
542
None
None
This extension creates a new Noffset isoline block inside the Offsetting
section of the Mesh command file.
None
Only one of "region" region or "material" material is given,
not both.
A: Commands
sdenoffset:create-noffset-block
sdenoffset:create-noffset-block
Action:
Group:
sdenoffset
(sdenoffset:create-noffset-block "region" region "maxedgelength"
maxedgelength "maxlevel" maxlevel)
(sdenoffset:create-noffset-block "material" material "maxedgelength"
maxedgelength "maxlevel" maxlevel)
Argument types: region
STRING
material
DATEXMAT
maxedgelength
REAL
maxlevel
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension generates a new Noffset block inside the Offsetting
section of the Mesh command file.
None
sdenoffset:create-noffset-interface
Action:
Group:
sdenoffset
(sdenoffset:create-noffset-interface "region" region1 region2
"hlocal" hlocal "factor" factor "terminateline" terminateline
"subdivide" subdivide "window" x1 y1 z1 x2 y2 z2)
(sdenoffset:create-noffset-interface "material" material1 material2
"hlocal" hlocal "factor" factor "terminateline" terminateline
"subdivide" subdivide "window" x1 y1 z1 x2 y2 z2)
Argument types: region
STRING
material
DATEXMAT
hlocal
REAL
factor
REAL
terminateline
INTEGER
subdivide
INTEGER
x1 y1 z1 x2 y2 z2
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension generates a new Noffset interface block inside the
Offsetting section of the Mesh command file.
None
543
A: Commands
sdepe:add-substrate
sdepe:add-substrate
Action:
Group:
sdepe
(sdepe:add-substrate "material" material "thickness" thickness
["base" base] ["region" region-name])
Argument types: material
DATEXMAT
thickness
REAL
base
REAL (optional)
region-name
STRING (optional)
Returns:
ENTITY (BODY)
Syntax:
Errors:
Description:
Limitations:
None
The Scheme extension sdepe:add-substrate is used to generate the first
substrate layer for a device. The domain boundary must be set before this
function is called. The keyword "material" identifies the DATEX
material of the generated body. "base" can be used to assign a value for the
bottom z-coordinate of the substrate layer. If "base" is not specified, the
substrate layer will be placed such that the bottom will be placed at z = 0.
An explicit region name can be assigned to the generated substrate by using
the "region" keyword.
None
Group:
sdepe
(sdepe:anisotropic-deposit deposit-material deposit-thickness
[blend-type blend-vexity blend-frad nsteps])
Argument types: deposit-material
DATEXMAT
deposit-thickness
REAL
blend-type
STRING {"none" | "bledge"} (optional)
blend-vexity
STRING {"none" | "convex" | "concave" | "all" |
"surfnorm"} (optional)
blend-frad
REAL (optional)
nsteps
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
544
None
None
The command deposits an anisotropic layer on top of the device. For a
detailed description of the command, refer to the description of
(sdepe:isotropic-deposit).
This command is obsolete. Use the sdepe:depo command instead (see
sdepe:depo on page 549).
A: Commands
sdepe:anisotropic-pattern (old syntax)
Group:
sdepe
(sdepe:anisotropic-pattern mname mpolarity pattern-material
pattern-thickness [nsteps])
Argument types: mname
STRING
mpolarity
POLARITY
pattern-material
DATEXMAT
pattern-thickness
REAL
nsteps
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The first argument mname is the mask name, mpolarity is the mask
polarity, pattern-material (usually Resist) is the material that will be
used as the material of the patterned region, and pattern-thickness is
the thickness of the patterned region. The optional argument nsteps is the
number of steps that will be used to perform the operation. The default value
is 1. For more complex geometry, it may be that the total patternthickness cannot be deposited in one step. In that case, user-defined
nsteps must be introduced, that is, during one deposition step, only
pattern-thickness/nsteps thickness will be deposited on the device.
This command is obsolete. Use the sdepe:pattern command instead (see
sdepe:pattern on page 567).
sdepe:clean
Action:
Group:
sdepe
(sdepe:clean)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension regularizes all the bodies and fixes the imprints. It can be
used to simplify or clean the Procem model, especially if the input model is
generated by other tools and a tessellated boundary is imported to Sentaurus
Structure Editor first, as the initial structure.
None
545
A: Commands
sdepe:create-substrate (old syntax)
Group:
sdepe
(sdepe:create-substrate substrate-material substrate-thickness)
Argument types: substrate-material
DATEXMAT
substrate-thickness
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
546
None
None
This command creates a substrate layer. In a previous step, the domain
boundary must be specified using either the (sdepe:define-pedomain) or (sdepe:generate-domainboundary) command (if the
model is generated using other than sdepe Procem commands). Other
Procem commands (such as pattern, etch, deposit) usually assume that
a substrate layer is already defined. The first substrate layer is placed such
that the bottom face is located in the xy plane, at z = 0.
This command is obsolete. Use the sdepe:add-substrate command
instead (see sdepe:add-substrate on page 544).
A: Commands
sdepe:define-pe-domain
sdepe:define-pe-domain
Action:
Group:
sdepe
(sdepe:define-pe-domain {{X0 Y0 X1 Y1} | {polygon}})
Argument types: X0
REAL
Y0
REAL
X1
REAL
Y1
REAL
polygon
REAL LIST
Syntax:
Returns:
Errors:
Description:
None
None
This command creates the simulation domain for subsequent Procem
operations. The argument list contains either four real numbers or a list of
real pairs.
If the argument list contains four real numbers, a rectangle is defined, using
the four numbers as the xy coordinates as the two opposite corners of the
simulation domain.
If a list of real pairs is defined, these pairs define the vertex points of the
simulation domain in the xy plane. If a polygon is used to define the
simulation domain, the only restriction is that the polygon must be a simply
connected convex polygon. The domain is defined in the xy plane at z = 0.
The command creates a wire body, representing the simulation domain. This
wire body is called domainboundary, and this global variable can be
accessed directly from Scheme. The domainboundary is an artificial
object that is needed for other Procem commands to identify the simulation
domain.
The domainboundary is not written separately to the DFISE boundary
output file. If, after some Procem operations, you want to change the
simulation domain, domainboundary must be deleted using the command
(entity:delete domainboundary). This may be necessary, for
example, if the model was reflected after some Procem operations, which
changed the bounding box of the model.
Limitations:
547
A: Commands
sdepe:define-pe-domain
Example:
548
A: Commands
sdepe:depo
sdepe:depo
Action:
Group:
sdepe
(sdepe:depo
"material" material
"thickness" thickness
["region" region-name]
["type" depo-type]
["algorithm" depo-alg]
( ["radius" radius] ["vexity" vexity-type]
["advanced-rounding" advrounding] | ["rounding" rounding] )
( ["taper-angle" taper-angle] ["taper-direction" taper-direction] )
( ["initial-thickness" initial-thickness]
["selective-material" selective-material]
["selective-taper" selective-taper] )
( ["ray-vector" ray-vector] ["BC" BC] ["ext-dist" ext-dist]
["shadowing" shadowing] )
["steps" nsteps]
["adaptive" adaptive]
Syntax:
Returns:
Errors:
None
549
A: Commands
sdepe:doping-constant-placement
Description:
NOTE
sdepe:doping-constant-placement
Action:
Group:
sdepe
(sdepe:doping-constant-placement name species concentration region-name)
Argument types: name
STRING
species
STRING
concentration
REAL
region-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
550
None
None
This command defines and applies a constant doping to a given region. In
the case of constant doping, a separate implant command is not necessary,
as is the case with Gaussian doping profiles.
None
A: Commands
sdepe:doping-gauss
sdepe:doping-gauss
Action:
Group:
sdepe
(sdepe:doping-gauss name species lateral-penetration peak-concentr
peak-depth inside-concentr inside-depth)
Argument types: name
STRING
species
STRING
lateral-penetration
REAL
peak-concentr
REAL
peak-depth
REAL
inside-concentr
REAL
inside-depth
REAL
Syntax:
Returns:
None
None
This command defines a Gaussian doping profile with a given name to be
applied to the device through the implant command. In order to create a
doping implantation in the device, both doping-gauss and implant
statements must be used. The first statement defines the doping profile and
the second is used to apply the doping profile to the device.
None
Errors:
Description:
Limitations:
NOTE
NOTE
sdedr:define-1d-external-profile
sdedr:define-analytical-profile
sdedr:define-constant-profile
sdedr:define-erf-profile
sdedr:define-gaussian-profile
551
A: Commands
sdepe:etch (old syntax)
Group:
sdepe
(sdepe:etch etch-material protect-material depth [nsteps overetch-dist
radius])
Argument types: etch-material
DATEXMAT
protect-material
DATEXMAT
depth
REAL
nsteps
INTEGER (optional)
overetch-dist
REAL (optional)
radius
REAL (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
552
None
None
The etch-material argument specifies the material that will be etched
away. protect-material specifies the material that will protect the
underlying etch-material to be etched away. If protect-material is
specified as an empty string " ", all exposed faces of the etch-material
are used during the etch step. depth specifies the etch depth. If all (not
protected) parts of the etch-material are to be etched away and if the
specific region was obtained during a previous deposition step, it is
suggested that a slightly larger depth value is used than the deposition
thickness that was used during the previous deposition step. In this way, it
can be guaranteed that no undesirable small features remain in the model.
Some optional arguments can also be used in the etching operation. If the
etching is to be performed in several steps (based on similar considerations
that were mentioned for deposition), nsteps can be given an integer value
greater than 1. When the etch operation is performed in nsteps, depth/
nsteps thickness is etched away in each step. This may be needed for
more complex models. overetch-dist specifies the required overetch
distance.
This command is obsolete. Use the sdepe:etch-material command
instead (see sdepe:etch-material on page 553).
A: Commands
sdepe:etch-material
sdepe:etch-material
Action:
Group:
sdepe
(sdepe:etch-material "material" material "depth" depth
+ all deposition arguments listed for sdepe:depo
["overetch" overetch]
["ebl" ebl]
[PT keywords and values])
Argument types: material
DATEXMAT
depth
REAL
overetch
REAL (optional)
ebl
(Optional) "all" (default) or "top"
PT keywords and values Table 26 on page 157 (optional)
+ all deposition arguments listed for sdepe:depo
Syntax:
Returns:
Errors:
Description:
None
None
The etching step is very similar to the deposition step, except that the
deposition is performed on a complementary body. The deposition is
performed on the complementary body and, as a last step, this deposited
layer is removed from the original device (only using the bodies with the
specified material attribute). All regions with a different material attribute
that are originally on top of the material being etched will protect the etch
material underneath. The optional "overetch" keyword can be added to
move the vertical etch faces by the specified offset.
The "ebl" argument determines during etching whether only the initially
exposed bodies (with the given etch material) are affected (if "ebl" "top"
is specified) or whether initially unexposed layers of the specified materials
are affected (if "ebl" "all" is specified).
For detailed descriptions of the available keywords and effects, see
sdepe:depo on page 549.
Limitations:
553
A: Commands
sdepe:fill-device
sdepe:fill-device
Action:
Fills the device with the specified material up to the specified height.
Group:
sdepe
(sdepe:fill-device "material" material ["height" height]
["region" region-name])
Argument types: material
DATEXMAT
height
REAL (optional)
region-name
STRING (optional)
Returns:
ENTITY of the generated fill region
Syntax:
Errors:
Description:
Limitations:
554
None
The material is identified with the "material" keyword and a subsequent
DATEX material. The height is specified by using the "height" keyword
and a real number. If "height" is not given, the function fills up the device
to the top position. The region name of the filled region can be specified
using the optional "region" argument.
None
A: Commands
sdepe:generate-domainboundary
sdepe:generate-domainboundary
Action:
Group:
sdepe
(sdepe:generate-domainboundary)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This function extracts the simulation boundary from an existing model.
When Procem is started from an empty model, one of the first commands
should be (sdepe:define-pe-domain) to define the domain boundary.
All subsequent functions work on that domain. If you want to perform
additional process steps on an existing model, this step is not needed. It is
sufficient to call (sdepe:generate-domainboundary), which will
extract the domainboundary wire from the model. (The same restrictions
apply here as for (sdepe:define-pe-domain).) The extracted boundary
must be convex and can contain only one lump. The command initializes the
Scheme variable domainboundary (wire body).
None
Example:
(sdegeo:set-default-boolean "AB")
(sdegeo:create-cylinder (position 0 0 0) (position 0 0 1) 5 "Silicon" "region_1")
(sdegeo:create-cuboid (position 0 -5 0) (position 15 5 1) "Silicon" "region_2")
(sdepe:generate-domainboundary)
(sdepe:isotropic-deposit "PolySilicon" 0.5)
555
A: Commands
sdepe:generate-empty-mask
sdepe:generate-empty-mask
Action:
Group:
sdepe
(sdepe:generate-empty-mask maskname)
Argument types: maskname
STRING
Returns:
BOOLEAN
Syntax:
Errors:
Description:
None
The function creates a new empty mask. Empty masks behave the same way
in Procem operations as regular masks, except no geometry is attached to
the empty masks. The name of the empty mask is registered, and query
functions can be used to find it (get-empty-mask-list, existsempty-mask-name).
When mask polarity "light" is used, an empty mask behaves like a regular
mask that is placed completely outside of the simulation domain.
Limitations:
When mask polarity "dark" is used, an empty mask behaves like a regular
mask that covers the complete simulation domain.
None
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 4) "Silicon" "base")
(sdepe:generate-empty-mask "M1")
(sdepe:pattern "mask" "M1" "thickness" 1 "material" "Resist")
(sdepe:pattern "mask" "M1" "thickness" 1 "material" "Resist" "polarity" "dark")
556
A: Commands
sdepe:generate-mask
sdepe:generate-mask
Action:
Group:
sdepe
(sdepe:generate-mask mask-name polygon-list)
Argument types: mask-name
STRING
polygon-list
POLYGON LIST
Syntax:
Returns:
Errors:
Description:
None
None
This command is used to define masks in Procem. The defined masks can be
used in further patterning operations. (The used masks are not deleted.)
Each mask is defined as a polygon list. When the polygon list is converted to
a mask, first each polygon is converted to a 2D sheet body. Then, a
containment check is performed, and the partially overlapping converted
sheet bodies are united. If a sheet body is completely contained inside
another body, it will be subtracted from that body and an internal void will
form. In this way, multiply connected mask sheet bodies can be created.
A single mask polygon list cannot contain intersecting edges, and the
polygon vertex list must define a manifold sheet body for each polygon. (No
cutlines or dangling edges are allowed.) If the vertex list is not closed, the
converter will close it automatically. Zero length edges are not allowed in
the polygon vertex list (that is, there should be at least a 1.0e-06 distance
between the vertices). Different masks can have intersecting polygonal
boundaries. If a mask contains rectangular polygons, it is sufficient to
specify only two opposite corners of such polygons. Each polygon is
defined as an xy coordinate list.
mask-name is the name of the mask that is created by the command. The
generated mask will be a 2D sheet body, and a mask name mask-name
Limitations:
attribute will be attached to the mask body. If a mask with the specified
name already exists, subsequent operations will use the newly created mask.
polygon-list specifies the vertex points of the generated mask.
None
557
A: Commands
sdepe:generate-mask
Example:
(sde:clear)
(sdepe:generate-mask
(sdepe:generate-mask
10 7 10.27 6 11 5.27
(sdepe:generate-mask
7.27 2 8 1.27 9 1 10
(sde:clear)
(sdepe:generate-mask
(sdepe:generate-mask
(sdepe:generate-mask
7 9 8 8 9 8) (list 2
(sdepe:generate-mask
(sdepe:generate-mask
3 2 7)))
558
"MASK1"
"MASK2"
"MASK3"
7 3 8 2
"MASK4"
"MASK5"
(list (list
(list (list
(list (list
9 1 8)))
(list (list
(list (list
1 1 3 3) (list 7 7 9 9)))
7 1 9 3 3 9 1 7)))
2 1 3 2 2 3 1 2) (list 8 1 9 2 8 3 7 2) (list 8
3 3 7 7)))
3 0 8 2) (list 8 3 10 7) (list 3 8 7 10) (list 0
A: Commands
sdepe:icon_layer
sdepe:icon_layer
Action:
Group:
sdepe
(sdepe:icon_layer {"mask" mname} {"polarity" mpolarity} {"thickness" lth}
{"taper-angle" tang} {"ic-material" icmat} {"env-material" envmat}
{"ic-region" icr} {"env-region" envr} {"base-coord" bc})
Argument types: mname
STRING (name of mask; default is "")
mpolarity
STRING (mask polarity; default is "light")
lth
REAL (layer thickness; default is 0)
tang
REAL (taper angle; default is 0)
icmat
DATEXMAT (interconnect material; default is
"Metal")
envmat
DATEXMAT (material used for the filling; default
is "Gas")
icr
STRING (interconnect region name; default is
"ic-region")
envr
STRING (region name of the filled part; default is
"env-region")
bc
REAL (base coordinate of created layer in
z-direction; default is the previous maximal
z-coordinate)
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
None
None
This command can be used like other sdepe functions. The arguments must
be added as keywordvalue pairs. The "mask" and "thickness"
arguments must be specified; all other variables have default values, which
as listed in the Argument types section.
If the region names are not given, different layers will have the same region
names ("ic-region" and "env-region"). Before the generation of
boundary output, these regions can be united or renamed to have unique
region names.
None
See Example: Generating an Interconnect Structure on page 180.
559
A: Commands
sdepe:implant
sdepe:implant
Action:
Group:
sdepe
(sdepe:implant doping-name ["flat" ["abs-height" abs-height |
"delta-height" delta-height] ["pmat" pmatlist] ["direction" direction])
Argument types: doping-name
STRING
abs-height
REAL (optional)
delta-height
REAL (optional)
pmatlist
DATEXMAT DATEXMAT LIST (optional)
direction
STRING (optional) "Positive" | "Negative" | "Both"
Syntax:
Returns:
Errors:
Description:
None
None
This command applies the doping profile doping-name to the top surface
of a device. Areas of resist and device features covered by resist are
protected from doping implantation. The doping profile doping-name
must be previously defined using one of the sdedr doping definition
commands sdedr:define-constant-profile, sdedr:define-1dexternal-profile, sdedr:define-erf-profile, sdedr:definegaussian-profile, or sdedr:define-analytical-profile.
Sentaurus Structure Editor analyzes the geometry of the surface of the
structure to find resist layers blocking the interface with the gas. By default,
the doping profile doping-name is placed at all surface faces exposed to
the gas. By giving the option "flat", the contour of the exposed surface is
projected onto the xy plane, and this planar surface is used as the reference
for the placement of the doping profile doping-name. By default, this
plane is positioned along the z-axis at the uppermost nonresist device
feature. This z-coordinate is adjusted by using the option delta-height or
is set absolutely by using the option abs-height.
The optional "pmat" keyword together with a DATEX material list can be
used in addition to define a list of (or only one) other DATEX material that
will behave like resist. The specified materials will also protect the top
exposed surface from doping implantation.
Limitations:
560
A: Commands
sdepe:implant
NOTE
NOTE
sdedr:define-1d-external-profile
sdedr:define-analytical-profile
sdedr:define-constant-profile
sdedr:define-erf-profile
sdedr:define-gaussian-profile
561
A: Commands
sdepe:implant-imp3d
sdepe:implant-imp3d
Action:
Group:
sdepe
(sdepe:implant-imp3d "name" name "dopant" dopant "dose" dose
"peakdepth"
peakdepth "stddev" stddev "gamma" gamma "beta" beta
"exptail" exptail "tilt" tilt "rotation" rotation
"file-basename" file-basename)
Argument types: name
STRING
z
dopant
STRING
Ion Beam
tilt
dose
REAL
peakdepth
REAL
stddev
REAL
gamma
REAL
y
beta
REAL
exptail
REAL
tilt
REAL
rotation
REAL
rotation
file-basename
STRING
Syntax:
x
Definition of tilt and rotation
Returns:
Errors:
Description:
562
None
None
This extension creates a doping profile in the device using imp3d, emulating
the final profile of doping implantation and diffusion steps, resulting in a
distribution that can be described by a Pearson distribution whose moment
parameters are defined by the user. Doping profiles created using this
extension correctly take into account shadowing effects and nonplanar
device surfaces.
name is the name of the implant.
dopant is a valid DATEX variable name defining the species to be
implanted.
2
dose is given in units of cm .
peakdepth is given in micrometers.
stddev, gamma, and beta represent the second, third, and fourth moments
of the Pearson distribution, respectively. stddev is the standard deviation,
gamma is the skewness, and beta is the kurtosis. gamma and beta are
optional, with default values of 0 and 3, respectively, resulting in a Gaussian
distribution.
A: Commands
sdepe:implant-imp3d
Description:
Limitations:
imp3d while meshing with Mesh or Noffset3D or Sentaurus Mesh. The base
name of these files is created from the concatenation of file-basename,
name and #, where # is a sequential count starting from zero, assigned to
each sdepe:implant-imp3d call in sequence. If file-basename is not
defined, its default value is an empty string.
The angles tilt and rotation are given in degrees.
Only supported in 3D.
563
A: Commands
sdepe:isotropic-deposit (old syntax)
Group:
sdepe
(sdepe:isotropic-deposit deposit-material deposit-thickness
[blend-type blend-vexity blend-frad nsteps])
Argument types: deposit-material
DATEXMAT
deposit-thickness
REAL
blend-type
STRING {"none" | "bledge"} (optional)
blend-vexity
STRING {"none" | "convex" | "concave" | "all" |
"surfnorm"} (optional)
blend-frad
REAL (optional)
nsteps
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
None
None
This command deposits an isotropic layer on top of the device. Several
parameters control the properties of the deposited layer. The argument
deposit-material is a DATEX material that will be the material
property of the generated region. The argument deposit-thickness is
the thickness of the deposited layer. These two arguments are compulsory;
the other arguments are optional. If only the two compulsory arguments are
used, the command generates a Manhattan-type deposited layer (no
roundings). In this case, the deposition is performed in one step. If the
model geometry is more complex where global delooping is required, there
may be a need to perform the deposition in several steps. You must specify
the number of steps for the deposition. If you want to deposit a Manhattantype layer in multiple steps, the optional parameters must be specified as
"none" "none" 0 nsteps. In this case, the deposition is performed in
nsteps and, in each step, deposit-thickness/nsteps thickness is
deposited.
Typically, multiple steps are needed if the model geometry is complex and
the deposited-thickness is greater than the length of the shortest edge
that is already present in the model. In this case, a deposited step
(deposit-thickness/nsteps) should be smaller than the shortest edge
length. In addition, in the case of narrow gaps, the deposited step should be
smaller than the diameter of the smallest gap. If you want to generate a
rounded deposited layer, the optional arguments must be specified.
564
A: Commands
sdepe:isotropic-deposit (old syntax)
Description:
Limitations:
565
A: Commands
sdepe:isotropic-pattern (old syntax)
Group:
sdepe
(sdepe:isotropic-pattern mname mpolarity pattern-material
pattern-thickness [nsteps])
Argument types: mname
STRING
mpolarity
POLARITY
pattern-material
DATEXMAT
pattern-thickness
REAL
nsteps
INTEGER (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
566
None
None
The first argument mname is the mask name, mpolarity is the mask
polarity, pattern-material (usually Resist) is the material that will be
used as the material of the patterned region, and pattern-thickness is
the thickness of the patterned region. The optional argument nsteps is the
number of steps that will be used to perform the operation. The default value
is 1. For more complex geometry, it may be that the total patternthickness cannot be deposited in one step. In that case, user-defined
nsteps must be introduced, that is, during one deposition step, only
pattern-thickness/nsteps thickness will be deposited on the device.
This command is obsolete. Use the sdepe:pattern command (see
sdepe:pattern on page 567).
A: Commands
sdepe:pattern
sdepe:pattern
Action:
Group:
sdepe
(sdepe:pattern "mask" mask-name "polarity" polarity ["type" depo-type]
"material" material ["algorithm" depo-alg] "thickness" thickness
["steps" nsteps] ["region" region] [PT keywords and values])
Argument types: mask-name
STRING (name of an existing mask)
polarity
{"light" | "dark"}
depo-type
{"iso" | "aniso"} (optional)
depo-alg
{"lopx" | "lop-move" | "sweep" | "PT"} (optional)
material
DATEXMAT
thickness
REAL
nsteps
INTEGER (>=1) (optional)
region
STRING (region name of the patterned body)
(optional)
PT keywords and values Table 26 on page 157 (optional)
Returns:
ENTITY of the generated pattern layer
Syntax:
Errors:
Description:
Limitations:
None
This extension is used to generate a patterned layer. The "mask" keyword
identifies the mask to be used for the pattern operation. (The mask must be
already defined.) The mask polarity can be defined using the "polarity"
keyword.
Since the pattern operation is analogous to a deposition step, for detailed
explanations of the used algorithms and types, see sdepe:depo on page 549.
None
567
A: Commands
sdepe:photo
sdepe:photo
Action:
Group:
sdepe
(sdepe:photo "mask" mask-name "polarity" polarity ["type" depo-type]
"material" material ["algorithm" depo-alg] { "thickness" thickness |
"height" height } ["steps" nsteps] ["region" region]
[PT keywords and values])
Argument types: mask-name
STRING (name of an existing mask)
polarity
{"light" | "dark"}
depo-type
{"iso" | "aniso"} (optional)
depo-alg
{"lop" | "lopx" | "PT" | "lop-offset" |
"lop-move" | "lop-body"} (optional)
material
DATEXMAT
thickness
REAL
height
REAL
nsteps
INTEGER (>=1) (optional)
region
STRING (region name of the patterned body)
(optional)
PT keywords and values Table 26 on page 157 (optional)
Syntax:
Returns:
Errors:
None
This extension generates a photo layer. The "mask" keyword identifies the
mask to be used for the operation. (The mask must be already defined.) The
mask polarity can be defined using the "polarity" keyword.
Description:
Limitations:
568
A: Commands
sdepe:polish-device
sdepe:polish-device
Action:
Group:
sdepe
(sdepe:polish-device { ["thickness" thickness] | ["height" height] }
["material" material] )
Argument types: thickness
REAL (optional)
height
REAL (optional)
material
DATEXMAT (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
Either the parameter "height" must be specified, in which case, all
material above the specified height is removed or "thickness" must be
specified, in which case, the distance is measured from the top device
position, and all materials from the top are removed.
If the optional "material" keyword and material argument pair is used,
only the top exposed bodies with the specified material attribute are
polished. (This behavior is similar to a selective polish operation.)
None
sdepe:remove
Action:
Group:
sdepe
(sdepe:remove { ["region" region-name] | ["material" material] })
Argument types: region-name
STRING (optional)
material
DATEXMAT (optional)
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function removes either the specified material (in which case, the
keyword "material" is used) or the specified region (in the case, the
keyword "region" is used).
None
569
A: Commands
sdepe:trim-masks
sdepe:trim-masks
Action:
Trims masks so that they do not extend outside the domain boundary.
Group:
sdepe
(sdepe:trim-masks domainboundary)
Argument types: domainboundary
WIRE BODY
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The sdepe:trim-masks command trims masks so that they do not extend
outside the domain boundary. When the sdepe:define-pe-domain
command is used to define the simulation domain, the global variable
domainboundary is initialized. It is set to the wire body that represents the
domain boundary. After domainboundary is set, the command
(sdepe:trim-masks domainboundary) is used, which trims all of the
masks to the specified domain.
NOTE If the domain boundary is not set explicitly and the sdepe
commands are used on an existing body, the domain boundary is extracted
automatically and the domainboundary variable is set as well.
None
sdepp:clear
Action:
Removes all data (grid/data information) from the grid and data viewer.
Group:
sdepp
(sdepp:clear)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
570
None
None
None
This Scheme extension is used to clear the grid and data viewer of Sentaurus
Structure Editor.
None
A: Commands
sdepp:clear-data
sdepp:clear-data
Action:
Removes all data (.dat information) from the grid and data viewer.
Group:
sdepp
(sdepp:clear-data)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension is used to clear all data from the grid and data viewer of
Sentaurus Structure Editor.
None
sdepp:load-data
Action:
Loads the specified DFISE .dat file to the grid and data viewer.
Group:
sdepp
(sdepp:load-data file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to load a DFISE .dat file to the grid and data viewer
of Sentaurus Structure Editor.
None
sdepp:load-grid
Action:
Loads the specified DFISE grid file to the grid and data viewer.
Group:
sdepp
(sdepp:load-grid file-name)
Argument types: file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to load a DFISE grid file to the grid and data viewer
of Sentaurus Structure Editor.
None
571
A: Commands
sdepp:set-ash-factor
sdepp:set-ash-factor
Action:
Group:
sdepp
(sdepp:set-ash-factor ffactor)
Argument types: ffactor
REAL
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to set the ash factor that is used when the
interpolation method is set to "ash".
None
sdepp:set-colormap-type
Action:
Group:
sdepp
(sdepp:set-colormap-type type)
Argument types: type
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The colormap type can be "rainbow", "bw", or "twocolor".
None
sdepp:set-data-mapping
Action:
Group:
sdepp
(sdepp:set-data-mapping method)
Argument types: method
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
572
None
None
The method can be "linear", "log", "ln", or "ash".
None
A: Commands
sdepp:set-face-displacement
sdepp:set-face-displacement
Action:
Group:
sdepp
(sdepp:set-face-displacement displ)
Argument types: displ
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This Scheme extension sets the offset value that the grid and data viewer
uses to offset the wireframe drawing of the edges from the rendered faces. If
the displacement value is small, some rugged edges may be visible due to
rounding errors. If the displacement value is set to a very large value, the
visibility rendering may show some artifacts. Usually, the offset value
should be set to 820 to obtain the required rendering quality. The offset
value may be platform dependent.
None
sdepp:set-num-colors
Action:
Sets the number of colors used for rendering the data fields.
Group:
sdepp
(sdepp:set-num-colors numcolors)
Argument types: numcolors
INTEGER
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to set the number of color bands that is used for fringe
rendering.
None
573
A: Commands
sdepp:set-palette-orientation
sdepp:set-palette-orientation
Action:
Group:
sdepp
(sdepp:set-palette-orientation orientation)
Argument types: orientation
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
The orientation can be set to "normal" or "reversed". For example, if
the "rainbow" colormap is used, the largest data value is represented as
red and the smallest data value is represented as blue. If the palette
orientation is set to "reversed", the largest value is rendered as blue and
the lowest data value is rendered as red.
None
sdepp:set-plot-type
Action:
Group:
sdepp
(sdepp:set-plot-type ftype)
Argument types: ftype
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
574
None
None
This Scheme extension is used to set the rendering method, which can be
"mesh", "isoline", "fringe", or "isofringe".
None
A: Commands
sdepp:show-legend
sdepp:show-legend
Action:
Group:
sdepp
(sdepp:show-legend flag)
Argument types: flag
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This Scheme extension is used to show or hide the legend on the view
window.
None
sdepp:show-mesh-edges
Action:
Group:
sdepp
(sdepp:show-mesh-edges rendering-flag)
Argument types: rendering-flag
BOOLEAN
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This extension is used to switch on or off the mesh grid rendering.
None
575
A: Commands
sdesnmesh:replace-tensor-block
sdesnmesh:replace-tensor-block
Action:
Replaces the Tensor section of the meshing command file with the given
string.
Group:
sdesnmesh
(sdesnmesh:replace-tensor-block value)
Argument types: value
STRING
Returns:
true
Syntax:
Errors:
Description:
None
This command replaces the Tensor section of the meshing command file
with the given string.
Note that double quotation marks within the string must be escaped with the
backslash, for example:
\"example string\"
Limitations:
576
A: Commands
sdesp:begin
sdesp:begin
Action:
Group:
sdesp
(sdesp:begin)
Syntax:
Argument types:
Returns:
Errors:
Description:
Limitations:
None
None
None
This extension is called before beginning the merging of .sat file
boundaries. This command must be called before the sdesp:definestep command can be used. For that reason, it is necessary to begin the
Sentaurus Process and Sentaurus Structure Editor mode, which is
terminated with the sdesp:finalize command.
Only supported in 3D.
Example:
577
A: Commands
sdesp:define-step
sdesp:define-step
Action:
Merges boundary (in .sat file) and defines a structure step to be reproduced
in Sentaurus Process.
Group:
sdesp
(sdesp:define-step step-name file-name)
Argument types: step-name
STRING
file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
None
None
Loads a .sat file file-name. It merges with the currently loaded geometry
and associates step-name with the current step.
None
See sdesp:begin on page 577.
sdesp:finalize
Action:
Group:
sdesp
(sdesp:finalize Tcl-file-name)
Argument types: Tcl-file-name
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
578
None
None
This extension is used to complete the merging of boundaries in the
Sentaurus Process and Sentaurus Structure Editor mode. It writes a Tcl file
defining the recreate_step Tcl procedure called from within Sentaurus
Process to recreate model geometry by redefining region materials.
None
See sdesp:begin on page 577.
A: Commands
sdesp:restore-state
sdesp:restore-state
Action:
Group:
sdesp
(sdesp:restore-state step-name-list)
Argument types: step-name-list
STRING LIST
Syntax:
Returns:
Errors:
Description:
Limitations:
Example:
None
None
During boundary merging by Sentaurus Process and Sentaurus Structure
Editor, you may want to save the state and restore it later (perhaps in a
different Sentaurus Structure Editor session) before continuing with the
merging leading to its finalization. To restore: Most of the internal
bookkeeping is stored in the .sat file that is reloaded. However, the
sequence of steps that have been defined so far must be restored using this
Scheme extension. The list of all steps in the correct order is given as a
parameter to this extension.
None
See sdesp:begin on page 577.
set-interface-contact
Action:
Group:
sdegeo
(set-interface-contact
Argument types: region1
region2
contact-name
Syntax:
Returns:
Errors:
Description:
Limitations:
None
None
This function attaches a contact attribute to the common faces of the
specified regions.
The command works in 3D only.
Example:
(sde:clear)
(sdegeo:create-cuboid (position 0 0 0) (position 10 10 10) "Silicon" "mb1")
(sdegeo:create-sphere (position 10 10 0) 4 "PolySilicon" "mb2")
(sdegeo:define-contact-set "ifcontact" 4 (color:rgb 1 0 0) "##")
(set-interface-contact "mb1" "mb2" "ifcontact")
579
A: Commands
shell?
shell?
Action:
Group:
sde
(shell? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
580
SCHEME OBJECT
None
This extension returns #t if the specified object is a shell; otherwise, it
returns #f. The object specifies the Scheme object to be queried.
None
A: Commands
skin:options
skin:options
Action:
Group:
sdegeo
(skin:options {name-of-option value} [skin-options])
Argument types: "name-of-option"
STRING
value
BOOLEAN
skin-options
SKIN OPTIONS (optional)
Returns:
sweep-options
Syntax:
Errors:
Description:
None
Sets the Scheme object skin-options that are used by the skinning and
lofting Scheme extensions:
name-of-option gives the name of the skinning option.
value is the value of the skin-option. The different name-of-options
and their default values are:
align (Boolean): This option is used to align the direction of the cross
section curves such that the normal of the first profile points towards the
second profile. All other profiles are aligned to follow the first and second.
If the sections are not oriented in the same direction, the align option can
be used to avoid producing a twisted, self-intersecting body. The default
value is #t.
allow_same_uv (Boolean): This option allows surfaces with the same u
and v direction to be created. If the option is set to #t and a surface with the
same u and v directions is created, a warning will be displayed. If set to #f,
581
A: Commands
skin:options
Description:
the weight factor for the tangent continuous of the loft will be determined
such that it minimizes the average radius of curvature of the lofting surfaces.
The resulting bodies should support shelling to greater thickness and also
blending of their edges to larger blend radii. The default value is #f.
gap_type (string): Specifies the type of gap that will be placed between the
new faces. The type can be "extended" (extending the surfaces and
intersecting), "rounded" (tangent surface to both lateral faces), or
"chamfered" (a linear fill between both lateral faces). The default value is
"extended".
guidePreference (string): This is an enumerated type with two possible
values: "constrain_to_guide" and "constrain_to_tangent". This
582
A: Commands
skin:options
Description:
surface twist can add vertices to some of the profiles if none of the existing
vertices match well. This option allows you to force the algorithm to choose
matching vertices from the existing vertices. The default value is #f.
no_twist (Boolean): This option is used to minimize the twist of the
surface produced. Twist minimization aligns closed curves such that the
start of the second curve is aligned to the start of the first curve. Even if the
shape of a body is unaffected by twisting, a surface with a twist could
produce unexpected results when faceting and rendering. The default value
is #t.
periodic (Boolean): This option allows the construction of loft bodies that
are periodic in v, that is, bodies that close back on themselves smoothly
(continuously) at the start and end profiles. This option is activated in the
skinning APIs by giving the closed option a value of 2. In Scheme, this is
achieved by setting the periodic flag to #t. As for the closed option, at
least three profiles must be supplied to create a periodic loft body.
perpendicular (Boolean): The take-off vector is a tangent vector going
out of the starting edge or surface and into the skinned or lofted surface. The
perpendicular option (for lofting only) is used to specify the direction of
the take-off vector, perpendicular to the coedge or in the loft direction. (This
removes any restriction that the take-off vector for the loft has to be
determined by the cross product of the coedge tangent vector and the surface
normal scaled by the tangent factor.) The default value is #f.
postprocess_stitch (Boolean): This option stitches the resulting lofting
body to the original bodies from which its coedge definition came. This
option only works with api_loft_coedges (lofting) and not with any
skinning operation (api_skin_wires). It is identical in nature to the
stitching operation performed in api_loft_faces. The default is #t.
583
A: Commands
solid?
Description:
Limitations:
solid?
Action:
Group:
sde
(solid? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
584
SCHEME OBJECT
None
Determines if a Scheme object is a solid. The object specifies the Scheme
object to be queried.
None
A: Commands
solid:area
solid:area
Action:
Group:
sde
(solid:area solid-body [tolerance=0.01])
Argument types: solid-body
BODY
tolerance
REAL (optional)
Returns:
REAL LIST
Syntax:
Errors:
Description:
Limitations:
None
The first argument solid-body specifies a solid body. If the solid body
entity has not been explicitly defined, the argument should be (entity #
[#]), where the first # is its entity number, and the second # is its part
number. The second argument is an optional tolerance, which specifies the
accuracy of the calculation. This extension returns a pair of values: the total
face area of the body and the relative accuracy (absolute accuracy/area)
achieved in the computation. Cases that are treated analytically (tolerance is
0) are planes with straight or elliptical edges, cones with straight edges,
circular cylinders with elliptical edges, and special cases of latitudinal and
longitudinal edges on spheres.
None
585
A: Commands
solid:massprop
solid:massprop
Action:
Group:
sde
(solid:massprop entity [integer-type=0 [thickness] tolerance=0.01
{{position=center} | {x=center-x y=center-y z=center-z}}
direction=z-axis])
Argument types: entity
BODY
integer-type
INTEGER (optional)
thickness
REAL (optional)
tolerance
REAL (optional)
position
POSITION (optional)
x
REAL (optional)
y
REAL (optional)
z
REAL (optional)
direction
GVECTOR (optional)
Returns:
LIST
Syntax:
Errors:
Description:
None
The argument entity must be a solid body to compute the mass properties.
The optional integer-type specifies the type of calculation to perform.
thickness specifies the thickness required. The optional argument
tolerance specifies the accuracy required. The optional argument
position specifies a point on the projection plane for the moment (x, y, z
are the positional arguments) and can be defined with either of two syntax
formats. The first syntax defines position by placing the xyz coordinates in
position statements enclosed in parentheses. However, the second syntax
format defines the xyz coordinates without using the position statements
or the additional set of parentheses. Otherwise, the two formats are identical
and accomplish the same task.
The optional argument direction specifies the normal to the projection
plane for the moments; the default is the z-axis of the active work coordinate
system. Valid values include: 0 = Volume and tolerance only, 1 = Volume,
tolerance, center of mass, principal moments, and principal axes,
2 = Volume, center of mass, principal moments, principal axes, inertial
tensor, 3 = Volume and tolerance only using thickness for double-sided
faces, 4 = Volume, tolerance, and center of mass using thickness for doublesided faces, and 5 = Volume, center of mass, principal moments, principal
axes, inertia tensor, using thickness for double-sided faces.
586
A: Commands
sort
Description:
Limitations:
For types 35, a nonnegative thickness argument is required (after the type,
before the tolerance if given), which is used to ascribe mass properties to
any double-sided faces that the body contains. For types 02, double-sided
sheets are ignored (they are treated as having zero volume, therefore, no
mass and no influence on the center of mass or inertia). This is equivalent to
using types 35 with a thickness of zero.
Wire bodies are always treated as having zero volume and no influence on
the center of mass or inertia.
None
sort
Action:
Group:
sde
(sort sort-criteria sort-list)
Argument types: sort-criteria
<, <=, >, >= ...
sort-list
LIST
Returns:
REAL
Errors:
List
Syntax:
Description:
Limitations:
This Scheme extension sorts the supplied list based on the sort criteria.
None
Example:
587
A: Commands
sweep:options
sweep:options
Action:
Group:
sdegeo
(sweep:options "name-of-option" {value | location direction})
Argument types: "name-of-option"
STRING
value
STRING | law | REAL | GVECTOR | ENTITY | BOOLEAN |
INTEGER
location
POSITION
direction
GVECTOR
Returns:
sweep-options
Syntax:
Errors:
Description:
Limitations:
None
This extension defines elements in the sweep-options data structure that
are used later for the sdegeo:sweep operation. name-of-option is a
string within quotation marks. If value is a real, it does not require
delimiters. If value is a string representing a law, it should be enclosed in
quotation marks. If value is a law, only the variable name for the law is
required. Multiple pairs of name-of-option and value can be specified
simultaneously.
The following sweep options can be used: draft_angle, gap_type,
miter, rigid, and sweep_angle. The option draft_angle is a real
number that represents the angle with which the swept profile is to draft
while sweeping. Drafting has two mutually exclusive options:
draft_angle and draft_law. The default for draft_angle is 0. One
application of drafting is for molded items. As the profile is swept, the
ending profile has been offset by an equal distance, which helps with the
removal of the item from a mold. Extreme draft angles or draft laws can
result in errors due to self-intersecting bodies, incomplete lateral faces
(likely at corners), or unsupported topologies.
None
Example:
588
A: Commands
system:command
system:command
Action:
Group:
sde
(system:command cmd)
Argument types: cmd
Syntax:
Returns:
Errors:
Description:
Limitations:
STRING
None
None
This extension executes a system command from the Scheme command-line
window. The command results are displayed in the UNIX window.
None
system:getenv
Action:
Group:
sde
(system:getenv name-string)
Argument types: name-string
STRING
Syntax:
Returns:
Errors:
Description:
Limitations:
589
A: Commands
transform:reflection
transform:reflection
Action:
Group:
sde
(transform:reflection plane-position plane-direction)
Argument types: plane-position
POSITION
plane-direction
GVECTOR
Returns:
transform
Syntax:
Errors:
Description:
Limitations:
None
This function is used to define a reflection transform, which can be used in
sdegeo:mirror-selected. plane-position specifies the location to
mirror an object. plane-direction specifies the normal of the mirror in
the plane.
None
Example:
(sde:clear)
(define mb (sdegeo:create-rectangle (position 1 1 0) (position 2 2 0) "Silicon" "xx"))
(define tr1 (transform:reflection (position 0 0 0) (gvector -1 0 0)))
(set! tr1 (transform:reflection (position 0 0 0) (gvector 0 1 0)))
(sdegeo:mirror-selected (get-body-list) tr1 #t)
590
A: Commands
transform:rotation
transform:rotation
Action:
Group:
sde
(transform:rotation origin-position axis-direction angle)
Argument types: origin-position
POSITION
axis-direction
GVECTOR
angle
REAL
Returns:
transform
Syntax:
Errors:
Description:
Limitations:
None
This function is used to define a rotation transform, which can be used in
sdegeo:rotate-selected. The origin-position specifies the start
location of the rotate. axis-direction specifies the axis direction of
rotation. The right-hand rule determines the direction of the rotation. angle
specifies the angle in degrees to rotate the object.
None
Example:
(sde:clear)
(sdegeo:create-circle (position 0 0 0) 0.1 "PolySilicon" "xx")
(define mb (sdegeo:create-rectangle (position 1 1 0) (position 2 2 0) "Silicon" "xx"))
(define tr1 (transform:rotation (position 0 0 0) (gvector 0 0 1) 45))
(sdegeo:rotate-selected mb tr1 #t 7)
591
A: Commands
transform:scaling
transform:scaling
Action:
Group:
sde
(transform:scaling x-scale [y-scale z-scale])
Argument types: x-scale
REAL
y-scale
REAL (optional)
z-scale
REAL (optional)
Returns:
transform
Syntax:
Errors:
Description:
Limitations:
None
This function is used to define a scaling transform, which can be used in
sdegeo:scale-selected. Although the extension accepts a scaling
factor (x-scale, y-scale, or z-scale) 0 or less, only a positive scale
factor is recommended. When uniform scaling is used, only the x-scale
term can be supplied. In this case, all three components of the gvector will
be multiplied by the same x-scale factor. x-scale specifies the scaling
factor for the x-axis direction. y-scale is an optional argument that
specifies the scaling factor for the y-axis direction. z-scale is an optional
argument that specifies the scaling factor for the z-axis direction.
None
Example:
(sde:clear)
(define mb (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx"))
(sdegeo:scale-selected mb tr1)(define tr1 (transform:scaling 1.0 2.0 1.0))
transform:translation
Action:
Group:
sde
(transform:translation gvector)
Argument types: gvector
GVECTOR
Returns:
transform
Syntax:
Errors:
Description:
Limitations:
None
This function is used to define a translation transform, which can be used in
sdegeo:translate-selected.
None
Example:
(sde:clear)
(define mb (sdegeo:create-rectangle (position 0 0 0) (position 1 1 0) "Silicon" "xx"))
(define tr1 (transform:translation (gvector 3.0 0.0 0.0)))
(sdegeo:translate-selected mb tr1 #t 5)
592
A: Commands
vertex?
vertex?
Action:
Group:
sde
(vertex? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Determines if a Scheme object is a vertex. The object specifies the
Scheme object to be queried.
None
wire?
Action:
Group:
sde
(wire? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Determines if a Scheme object is a wire. The object specifies the Scheme
object to be queried.
None
wire-body?
Action:
Group:
sde
(wire-body? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
SCHEME OBJECT
None
Determines if a Scheme object is a wire body. The object specifies the
Scheme object to be queried.
None
593
A: Commands
wire:planar?
wire:planar?
Action:
Group:
sde
(wire:planar? object)
Argument types: object
Returns:
BOOLEAN
Syntax:
Errors:
Description:
Limitations:
594
SCHEME OBJECT
None
Determines if a Scheme object is a planar wire. The object specifies the
Scheme object to be queried.
None
C
color
rgb ......................................................................... 194
convert-to-degree ...................................................... 285
convert-to-radian ....................................................... 285
curve
circular? ................................................................. 273
elliptical? ................................................................ 273
linear? .................................................................... 273
curve? ........................................................................ 273
D
define ........................................................................... 28
E
edge
circular ................................................................... 286
circular? ........................................................ 273, 286
curve? .................................................................... 273
elliptical? ....................................................... 273, 287
end ......................................................................... 287
length ..................................................................... 287
linear ............................................................. 123, 288
linear? ........................................................... 273, 288
mid-point ................................................................ 289
spline? ................................................................... 273
start ........................................................................ 289
type ........................................................................ 289
edge? ............................................................... 273, 285
entity
box ................................................................ 272, 290
copy ....................................................................... 290
debug ............................................................ 270, 291
deep-copy .............................................................. 291
delete ..................................................................... 292
display ................................................................... 292
dist ......................................................................... 293
edges ....................................................270, 271, 293
F
face
area ....................................................................... 300
conical? .........................................................273, 300
cylindrical? ....................................................273, 300
planar? ..........................................................273, 301
plane-normal ......................................................... 301
spherical? ......................................................273, 301
spline? ...........................................................273, 302
toroidal? ........................................................273, 302
face? ......................................................................... 273
filter
type ....................................................................... 303
find-body-id .............................................. 265, 266, 303
find-body-id-drs ......................................................... 304
find-drs-id .................................................................. 304
find-edge-id .............................................. 265, 266, 305
find-edge-id-drs ......................................................... 305
find-face-id ................................85, 265, 266, 271, 306
find-face-id-drs .......................................................... 306
find-mask .................................................................. 137
find-material-id ......................................... 265, 266, 307
find-region-id ............................................ 265, 266, 307
find-vertex-id ............................................ 265, 266, 308
find-vertex-id-drs ....................................................... 308
G
generic
get ......................................................................... 267
get-body-list .............................................................. 309
get-drs-list ................................................................. 309
get-empty-mask-list ...........................................137, 310
595
J
journal
append ................................................................... 321
clean ............................................................... 12, 321
load ................................................................. 12, 322
off .................................................................... 12, 322
on .................................................................... 12, 323
pause .............................................................. 12, 324
resume ............................................................ 12, 324
save ................................................................ 12, 324
step ................................................................. 12, 325
L
load ..................................................................... 10,
loop
external? ....................................................... 273,
loop? ................................................................. 273,
lump? ................................................................ 273,
187
326
325
326
M
mask-refevalwin-extract-2d .............................. 137, 327
mask-refevalwin-extract-3d .............................. 137, 328
mdraw-tcl2scm ................................................... 10, 282
merge-collinear-edges-2d .................................. 74, 329
merge-collinear-edges-2d-2d ...................................... 70
P
part
entities .......................................................... 270, 329
load .................................................. 10, 11, 187, 330
save .............................................................. 184, 331
save-selection ........................................................ 332
596
R
refinement
props .................................................... 239, 245, 338
set-prop ................................................................. 242
render
rebuild ............................................. 34, 42, 196, 338
roll .......................................................................21, 339
S
sde
add-material ..................................................111, 339
attach-refinement ................................. 243, 245, 340
bg-image-transparency .................................276, 340
build-mesh ............................................................. 341
check-3d-license-status ........................................ 341
checkout-3d-license .............................................. 342
clear ................................................................50, 342
create-bg-image ..................276, 340, 343, 355, 384
create-dialog .................................................276, 344
define-parameter .............................................27, 344
define-refinement ................................. 243, 245, 345
delay-graphics-update ........................................... 345
delay-graphics-update? ......................................... 346
delete-bg-image ............................................276, 346
delete-parameter .............................................27, 346
delete-refinement ..........................................245, 347
dialog-add-input ............................................276, 347
dialog-add-pixmap .........................................276, 348
dialog-delete ..................................................276, 348
dialog-ok-command .......................................276, 349
dialog-show ...................................................276, 349
display ...........................................................187, 350
exact-coords? ........................................................ 350
extract-tdr-boundary .............................................. 351
fix-imprint ............................................................... 351
fix-orientation ......................................................... 352
get-default-material .......................................268, 352
get-view-params ..............................................25, 353
gui-get-integer ...............................................279, 353
gui-get-real ....................................................279, 354
gui-get-string .................................................279, 354
hide ....................................................................... 355
hide-bg-image ...............................................276, 355
hide-contact .....................................................37, 356
hide-interface ........................................................ 356
hide-mask ......................................................137, 357
597
598
599
600
T
transform
reflection ........................................................131,
rotation ..........................................................131,
scaling ...........................................................131,
translation ............................................. 127, 131,
590
591
592
592
V
vertex
position .................................................................. 269
vertex? ..............................................................274, 593
view
vertices .................................................................... 34
W
wire
closed? .................................................................. 274
planar? ..........................................................274, 594
wire? .................................................................274, 593
wire-body? ........................................................274, 593