Пакет предназначен для выполнения операций с представлением tin-файлов (представления геометрии) системы ANSYS ICEM.
Для того, чтобы осуществлять манипуляции с геометрическими объектами сначала необходимо выполнить открытие и разбор tin-файлова при помощи функции open-tin-file.
Функции
open-tin-file
(f-name)
Описание: функция open-tin-file возвращает объект типа <tin>, представляющий содержимое tin-файла с сменем f-name.
В настоящий момент производится частичное считыванние tin-файла.
Обобщенные функции
coedged
(object container)
Описание: обобщенная функция coedged возвращает список объектов, имеющих с объектом object совпадающие грани. Для кривых типа <curve> должны возвращаться поверхности типа <surfaces>, находящиеся в контейненре container.
Для поверхностей типа <surfaces> должны возвращаться кривые типа <curve>, находящиеся в контейненре container.
read-object
(lines n object)
- lines - список строк, из которых производится считывание ниформации;
- n - номер строки, соответствующих началу размещения объекта;
- object - объект, данные которого считываются.
Методы
coedged
((curve <curve>) (surface <surface>))
Описание: метод coedged возвращает объект типа surface, если кривая curve имеет совпадающие грани с поверхностью surface или nil в противном случае.
Реализация весьма странная (нелогичная, не соответствующая духу обобщенной функции). Лучше переименовать coedged -> coedged-p .
coedged
((curve <curve>) (tin <tin>))
coedged
((surface <surface>) (tin <tin>))
coedged
((coedge <coedge>) (tin <tin>))
count-surface
((tin <tin>))
Описание: метод count-surface возвращает список каждым элементом которого явяется список, содержащий имя семейства и количество поверхностей, которые находятся в этих семействах.
Пример использования:
(count-surface
(open-tin-file "D:/home/_namatv/CFX/a32_base/PR-01/tin/DOMAINS/D-4/a32-D-4.tin"))
=> (("D1/C/C_1-3_N01_D024.00_S01.61" 2)
("D1/C/C_1-4_N01_D032.00_S04.32" 2)
...
)
families
(entytes)
Описание: метод families возвращает список семейств, содержащий уникальные имена.
Пример использования:
(families (<tin>-surfaces *tin*))
(families (<tin>-curves *tin*))
(families (<tin>-points *tin*))
read-object
(lines n (point <point>))
- объект типа <point>;
- количество считанных строк.
read-object
(lines n (family <family>))
- объект типа <family>;
- количество считанных строк.
read-object
(lines n (curve <curve>))
- объект типа <curve>;
- количество считанных строк.
read-object
(lines n (material-point <material-point>))
- объект типа <point>;
- количество считанных строк.
read-object
(lines n (coedge <coedge>))
- объект типа <coedge>;
- количество считанных строк.
read-object
(lines n (surface <surface>))
- объект типа <curve>;
- количество считанных строк.
read-object
(lines n (solid <solid>))
- объект типа <solid>;
- количество считанных строк - одну строку.
read-object
(lines n-start (tin <tin>))
- объект типа <family>;
- количество считанных строк.
surface-coeged-with-surfaces
(surf (tin <tin>) &key (excluded nil) (times 1))
Описание: метод surface-coeged-with-surfaces возвращает поверхности, сопряженные с поверхностями из списка surf для контейнера геометрии tin.
Параметр times задает глубину поиска - количество итераций.
На каждом шаге times поверхности, задаваемые ключевым параметром @(excluded) из результирующего списка исключаются.
Классы
<coedge>
Option | Value |
Superclasses: | (t) |
Metaclass: | standard-class |
Default Initargs: | nil |
curve-type
Описание: слот curve-type определяет тип ссылочной кривой.
Возможные типы кривых требуют уточнения.
Option Value Allocation: instance Type: nil
Initarg: :curve-type
Initform: "3dcurve"
Accessors: (<coedge>-curve-type)
direction
Описание: слот direction предположительно определяет совпадение или несовпадение направления кривой, связанной объектом типа <coedge>, и направления контура типа <loop>:
- t - направления совпадают;
- nil - направления противоположные.
Пример записи в tin-файле:
coedge 3dcurve E_1056643
Option Value Allocation: instance Type: nil
Initarg: :direction
Initform: t
Accessors: (<coedge>-direction)
name
Описание: слот name определяет имя сопряженной кривой типа <curve>.Option Value Allocation: instance Type: nil
Initarg: :direction
Initform: "COEDGE-NAME"
Accessors: (<coedge>-name)
<curve>
Option | Value |
Superclasses: | (<ent> <tetra> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <curve> представляет кривую.
Пример записи в tin-файле:
define_curve family ASM.02/P02_E_C tetra_size 1e+10 name E_1048326 vertex1 V_1047351 vertex2 V_1047386
vertex1
Описание: слот vertex1 определяет имя начальной точки.Option Value Allocation: instance Type: string
Initarg: :vertex1
Initform: "vertex1"
Accessors: (<curve>-vertex1)
vertex2
Описание: слот vertex1 определяет имя конечной точки.Option Value Allocation: instance Type: string
Initarg: :vertex2
Initform: "vertex2"
Accessors: (<curve>-vertex2)
bspline
Описание: слот bspline объект типа <bspline>, который определяет промежуточные точки кривой типа <curve>. Пока не используется.Option Value Allocation: instance Type: nil
Initarg: :bspline
Initform: nil
Accessors: (<curve>-bspline)
surfaces
Список поверхностей, сопряженных с этой кривой.Option Value Allocation: instance Type: nil
Initform: nil
Accessors: (<curve>-surfaces)
<ent>
Option | Value |
Superclasses: | (<obj> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <ent> представляет графический объект, который имеет свойтство family. Не подлежит непосредственному использованию.
От него порождены объекты следующи типов:
- <point>;
- <curve>;
- <surface>.
family
Описание:family определяет семействоOption Value Allocation: instance Type: string
Initarg: :family
Initform: "Family_XXX"
Accessors: (<ent>-family)
<family>
Option | Value |
Superclasses: | (<obj> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <family> представляет семейство. Все объекты типа <ent> и их потомки относятся к определенному семейству. Семейства используются для группировки графических объектов.
Пример записи в tin-файле:
define_family ASM.02/P02 color 13675571
define_family GEOM prism 0 tetra_size 8.0 height 0 hratio 0 nlay 0 ratio 0 width 0 min 0 dev 0 color 8336365
define_family C/PART.1 internal_wall 1 prism 1 tetra_size 1.0 height 2.0 hratio 3 nlay 4 ratio 5 width 6 min 7.0 dev 8.0 color 13675571
define_family C/PART.1 split_wall 1 prism 1 tetra_size 1.0 height 2.0 hratio 3 nlay 4 ratio 5 width 6 min 7.0 dev 8.0 color 13675571
color
Описание: слот color определяет номер цвета для графических объектов, относящихся к данному семейству.Option Value Allocation: instance Type: integer
Initarg: :color
Initform: 0
Accessors: (<family>-color)
prism
Описание: слот prism определяет признак генерирования призматических слоев при создании сетки. Генерирование призматических слоев при значении:
- 0 - не выполняется;
- 1 - выполняется.
Option Value Allocation: instance Type: integer
Initarg: :prism
Initform: 0
Accessors: (<family>-prism)
internal-wall
Описание: слот internal-wall определяет тип поверхностей, находящихся в семействе как внутреннюю стенку (прозрачную для течения сквозь нее потока жидкости).Option Value Allocation: instance Type: integer
Initarg: :internal-wall
Initform: 0
Accessors: (<family>-internal-wall)
split-wall
Описание: слот internal-wall определяет тип поверхностей, находящихся в семействе как разделительную стенку (прозрачную для течения сквозь нее потока жидкости).Option Value Allocation: instance Type: integer
Initarg: :split-wall
Initform: 0
Accessors: (<family>-split-wall)
tetra-size
Описание: слот tetra-size определяет максимальный размер стороны тетраэбрической сетки.Option Value Allocation: instance Type: number
Initarg: :tetra-size
Initform: 0
Accessors: (<family>-tetra-size)
height
Описание: слот height определяет ... предположиельно максимальную высоту призм.Option Value Allocation: instance Type: number
Initarg: :height
Initform: 0
Accessors: (<family>-height)
hratio
Описание: слот height определяет ... предположиельно максимальную высоту призм.Option Value Allocation: instance Type: number
Initarg: :hratio
Initform: 0
Accessors: (<family>-hratio)
nlay
Описание: слот height определяет количество слоёв при генерации сетки.Option Value Allocation: instance Type: integer
Initarg: :nlay
Initform: 0
Accessors: (<family>-nlay)
ratio
Описание: слот ratio определяет насколько быстро увеличивается размер тетраэдрической сетки.Option Value Allocation: instance Type: number
Initarg: :ratio
Initform: 0
Accessors: (<family>-ratio)
width
Описание: слот width определяет ...Option Value Allocation: instance Type: number
Initarg: :width
Initform: 0
Accessors: (<family>-width)
min
Описание: слот width определяет ...Option Value Allocation: instance Type: number
Initarg: :min
Initform: 0
Accessors: (<family>-min)
dev
Описание: слот width определяет ...Option Value Allocation: instance Type: number
Initarg: :dev
Initform: 0
Accessors: (<family>-dev)
<material-point>
Option | Value |
Superclasses: | (<point> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <material-point>
Пример записи в tin-файле:
material_point -143.653214 578.922058 -0.000000 name B.G-A.1.1 family B.G-A.1
<obj>
Option | Value |
Superclasses: | (t) |
Metaclass: | standard-class |
Default Initargs: | nil |
name
Описание: слот name определяет имя, связанное с объектом.Option Value Allocation: instance Type: string
Initarg: :name
Initform: "Part_XXX"
Accessors: (<obj>-name)
<point>
Option | Value |
Superclasses: | (<ent> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <point> представляет точку.
Пример записи в tin-файле:
prescribed_point 41.599998474121 465.65328979492 -64.346717834473 family ASM.02/P02 name V_1056684
x
Описание: слот x определяет координату х.Option Value Allocation: instance Type: double-float
Initarg: :x
Initform: 0.0d0
Accessors: (<point>-x)
y
Описание: слот x определяет координату y.Option Value Allocation: instance Type: double-float
Initarg: :y
Initform: 0.0d0
Accessors: (<point>-y)
z
Описание: слот x определяет координату z.Option Value Allocation: instance Type: double-float
Initarg: :z
Initform: 0.0d0
Accessors: (<point>-z)
<solid>
Option | Value |
Superclasses: | (<ent> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <solid> представляет
Пример записи в tin-файле:
define_solid body n_lumps 0 n_sheets 0 matlpoint B.G-A.1.1 name B.G-A.1.0 family B.G-A.1
material-point
Описание: слот material-point. Требуется уточнение.Option Value Allocation: instance Type: nil
Initform: nil
Accessors: (<solid>-material-point)
n-lumps
Описание: слот n-lumps. Требуется уточнение.Option Value Allocation: instance Type: nil
Initarg: :n-lumps
Initform: 0
Accessors: (<solid>-n-lumps)
n-sheets
Описание: слот n-sheets. Требуется уточнение.Option Value Allocation: instance Type: nil
Initarg: :n-sheets
Initform: 0
Accessors: (<solid>-n-sheets)
matlpoint
Описание: слот matlpoint содержит имя материальной точки, связанной с объектом <solid>.Option Value Allocation: instance Type: nil
Initarg: :matlpoint
Initform: "matlpoint-name"
Accessors: (<solid>-matlpoint)
<surface>
Option | Value |
Superclasses: | (<ent> <tetra> t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <surface> представляет поверхность.
Пример записи в tin-файле:
define_surface name F_1050388 family ASM.02/P02 tetra_size 1e+10
loops
Описание: слот loops содержит список контуров, на поверхости <surface>. Пока не используется.Option Value Allocation: instance Type: nil
coedges
Описание: слот coedges содержит список объектов типа <coedge>, которые указывают на кривые сопряженные с настоящей поверхностью.Option Value Allocation: instance Type: nil
Initarg: :coedges
Initform: nil
Accessors: (<surface>-coedges)
<tin>
Option | Value |
Superclasses: | (t) |
Metaclass: | standard-class |
Default Initargs: | nil |
file-name
Описание: слот file-name содержит имя tin-файла, из которого выполнялось считывание геометрических данных.Option Value Allocation: instance Type: nil
Initarg: :file-name
Initform: "File-Name"
Accessors: (<tin>-file-name)
families
Описание: слот families содержит список семейств.Option Value Allocation: instance Type: nil
Initarg: :families
Initform: nil
Accessors: (<tin>-families)
points
Описание: слот points содержит список точек.Option Value Allocation: instance Type: nil
Initarg: :points
Initform: (make-hash-table :test (function equal))
Accessors: (<tin>-points)
curves
Описание: слот curves содержит хешированную таблицу кривых. Ключ - имя кривой. Значение - кривая.Option Value Allocation: instance Type: nil
Initarg: :curves
Initform: (make-hash-table :test (function equal))
Accessors: (<tin>-curves)
surfaces
Описание: слот surfaces содержит хешированную таблицу поверхностей. Ключ - имя поверхности. Значение - поверхность.Option Value Allocation: instance Type: nil
Initarg: :surfaces
Initform: (make-hash-table :test (function equal))
Accessors: (<tin>-surfaces)
triangulation-tolerance
Описание: слот triangulation-tolerance содержит значение триангуляции по умолчанию.Option Value Allocation: instance Type: nil
Initarg: :triangulation_tolerance
Initform: 0.001
Accessors: (<tin>-triangulation-tolerance)