acis的sat文件格式说明
- 格式:doc
- 大小:183.50 KB
- 文档页数:25
ACIS是美国Spatial Technology公司推出的三维几何造型引擎,它集线框、曲面和实体造型于一体,并允许这三种表示共存于统一的数据结构中,为各种3D造型应用的开发提供了几何造型平台.Spatial Technology公司在1986年成立,目前ACIS 3D Toolkit在世界上已有380多个基于它的开发商,并有180多个基于它的商业应用,最终用户已近一百万.许多著名的大型系统都是以ACIS作为造型内核,如AutoCAD,CADKEY,Mechanical Desktop,Bravo,TriSpectives,TurboCAD,Solid Modeler,Vellum Solid等.基于ACIS的开发接口有3个:API函数、C++类和DI函数.图中AMFC(ACIS Microsoft Foundation Class Component)是专门为Microsoft Windows平台提供的与MFC的接口. (1) API函数(Application Procedural Interface)API函数提供了应用与ACIS间的主要接口.应用通过调用API函数建立、修改或恢复数据,无论ACIS底层的数据结构或函数如何修改,这些函数在每一版本中均保持不变.当在API例程中发生错误时,ACIS可立即自动回溯到调用此API例程前的状态,从而保证模型不会崩溃.(2) 类(Class)类是ACIS以C++类的形式提供的开发接口,可用于定义模型的几何、拓扑以及实现其它功能.在应用中,可直接通过类的公共(public)数据成员和保护(protected)数据成员以及成员函数(member function)与ACIS相互作用.开发者也可以根据特殊的需要从ACIS 类派生出自己的应用类,类接口在各版本中可能有变化.(3) DI函数(Direct Interface)DI函数提供了不依赖于API而对ACIS造型功能可直接访问的接口,与API不同的是,这些函数在各版本中可能有变化.DI函数并不能访问ACIS中的所有功能,它们通常用于那些并不改变模型的操作,如查询等功能.另外,DI函数提供了底层样条库的接口.功能ACIS产品由两部分构成:核心模块(ACIS 3D Toolkit)和多种可选模块(Optional Husks).在核心模块中提供了基本、通用功能,而在可选模块中提供了一些更为高级的和更专用的功能,其主要功能如下.(1)构造曲面技术.可通过一个线框或一组边生成曲面,其方法包括覆盖(covering)、蒙皮(skinning)、放样(lofting)、网格曲面(net surfaces)、可变形曲面(deformable surfaces).可变形曲面是ACIS可选模块DS(Deformable Surface component)中提供的功能;变形曲面造型(deformable modeling)是一种交互定义合理、自由曲线曲面的方法,而不是一种曲线曲面的表示方法,它是一种基于能量优化策略的方法,用户可通过施加负载和约束来修改曲线或曲面的形状.(2)求交、布尔运算和缝合.求交器(intersector)用于判断曲线和曲面是否相交并可求出交点.求交是通过底层的C++类实现的,用于对模型的几何进行操作,可进行曲线和曲线、曲线和曲面、曲面和曲面的求交运算;布尔运算(Boolean operations)包括并、交、差运算;缝合(stitching)是指通过共边或共顶点缝合两个体.(3)过渡.ACIS具有强大而丰富的过渡功能,标准的过渡功能内置在ACIS核心模块中,而更高级的过渡功能在可选模块Advanced Blending Husk(ABH)中提供.(4)模型分析.ACIS的模型分析功能主要包括:对象关系(object relationship)、物理特性(physical properties)、单元拓扑(cellular topology)、几何分析(geometric analysis)和光线测试(ray testing)等.(5)显示与交互.ACIS的显示方式包括线框图、多面体图、多面体消隐图、光照图.在交互方面提供了拾取和过滤(picking and filtering)、橡皮线(rubberbanding)、网格管理(grid management)等功能.(6)模型管理..文件的存储与恢复. ACIS提供了两种存储模型文件的格式:以ASCII文本格式存储文件SAT(Save As Text)和以二进制格式存储文件SAB(Save As Binary).SAT文件的格式是开放的,为非基于ACIS的应用存取ACIS模型提供了途径..零件管理. 通过ACIS的零件管理组件(part management component),可把实体组织成零件,并且可以以各种方式对零件进行操作..回溯. 通过此功能可在ACIS模型的各状态间切换,支持线性或非线性的历史流,并支持多个历史流.特色ACIS的产品线是采用软件组件技术设计的,在公司成立之时就打起了软件组件技术和开放系统的旗帜向传统的CAD/CAM领域发出了挑战.建立在软件组件技术基础上的开放式体系结构形成了ACIS的重要特色,其主要特色如下:(1)基于组件的开放式体系结构.通过采用软件组件技术,可使不同用户、不同应用采用不同的组件组合,开发者也可以用自己开发的组件替代ACIS组件.ACIS的C++库由35个DLL组成,为开发者开发3D应用提供了极大的柔性和功能基础,开发者可以迅速把ACIS 的新版本集成到产品中.例如Ashlar公司(Vellum Solids)和Visionary Design Systems 公司(IronCAD)几乎在ACIS 4.0面市的同时宣布其基于4.0的应用推出.(2) ACIS的几何总线(ACIS geometry bus).ACIS的开放体系结构和它的SAT构成了ACIS几何总线.ACIS几何总线使线框、曲面、实体的几何与拓扑模型数据能够自由交换,当SAT模型在“bus”上流动时,不需任何解释与翻译.产品模型从概念设计到制造过程,可能使用多个商家提供的应用,通过几何总线摆脱了数据翻译的负担,无须为模型的互操作做任何工作,这在封闭式系统中是不可想象的.(3)强大的组件功能.ACIS除了在它的ACIS 3D Toolkit中提供了各种功能强大的内置组件(如faceter、零件/模型管理、图形交互、基本显示、OpenGL显示等组件),还在Optional Husks中提供了满足更高级需求的可选组件,包括高级过渡(支持复杂拓扑、几何过渡)、高级渲染、可变形曲面、修补、网格曲面、局部修改、精确消隐、抽壳等组件.另外,还有许多第三方开发的组件,这些组件也同样可嵌入基于ACIS的应用中.ACIS 核心功能3D 造型&O1607; 将2D曲线经拉伸、旋转、扫掠等操作生成复杂的3D曲面或实体&O1607; 高级倒角和圆角操作&O1607; 网格曲面生成&O1607; 阵列操作&O1607; 实体抽壳和曲面加厚&O1607; 曲线、曲面和实体的交互式弯曲、扭曲、延展、变形&O1607; 曲线、曲面、实体的交、并、差运算&O1607; 放样操作&O1607; 模型中拔模面生成、曲面等距和移动3D 模型管理&O1607; 在模型的任何级别关联用户自定义的数据&O1607; 跟踪几何和拓扑改变&O1607; 计算质量和体积&O1607; 使用单元拓扑表示实体模型子域&O1607; 独立于历史流的无穷次的撤销(undo)和恢复(redo)操作3D 模型显示&O1607; 将曲面几何离散成多边形网格表示&O1607; 利用可选可变形造型组件创建高级曲面&O1607; 利用可选PHL V5 组件生成带隐藏线消除的精确2D工程图&O1607; 利用Spatial提供的Tech Soft America的HOOPS/3dAF以及HOOPS/ACIS Bridge等产品搭建图形交互应用程序。
Chapter2.SAT Save File FormatTopic:SAT Save and RestoreACIS can store modeling information in external files,called save files.These files have an open format so that external applications,even those not based on ACIS,can have access to the ACIS geometric model.The basic information needed to understand the ACIS file format(focusing on the reading,or restore,operation),includes the structure of the save file format,how data is encapsulated,the types of data written,and subtypes and references.Save File TypesTopic:*SAT Save and RestoreACIS supports two kinds of save files,SAT and SAB,which stand for“Standard ACIS Text”and“Standard ACIS Binary”,respectively.Although one is ASCII text and the other is binary data,the model data information stored in the two formats is identical,so the term SAT file is generally used to refer to either(when no distinction is needed).SAT files are ASCII text files that may be viewed with a simple text editor.A SAT filecontains carriage returns,white space and other formatting that makes it readable to thehuman eye.A SAT file has a.sat file extension.SAB files cannot be viewed with a simple text editor and are meant for compactness and not for human readability.A SAB file has a.sab file extension.A SAB file uses delimitersbetween elements and binary tags,without additional formatting.The binary formats supported are:..........int4--byte2s complement(as long).........long4--byte2s complement.......double8--byte IEEEchar1--byte ASCII.........SAT Format D7.0where“byte”is eight bits,and files are considered to be byte strings.For multi--byte data items,byte order normally just matches that of the processor being used,but a specific order may be imposed by compiling with the preprocessor macro BIG_ENDIAN orLITTLE_ENDIAN defined.Structure of the Save FileTopic:SAT Save and RestoreA save file contains:D Three-line headerD Entity records,representing the bulk of the dataD[optional]Marker for begin history dataD[optional]Old entity records needed for history and rollbackD[optional]Marker for end history dataD End markerBeginning with ACIS Release6.3,it is required that the product ID and units be populated for the file header(using class FileInfo)before you can save a SAT file.Refer to the reference templates for class FileInfo and function api_set_file_info for more information. Reserved Characters in SAT FilesTopic:*SAT Save and RestoreSeveral characters have special meaning when found in“unknown entity”string data in ACIS SAT(.sat)files.Therefore,these characters should not be contained in any user string data written to SAT files.This includes string data in attributes,but applies to string data in any unknown entities.Note This only applies to unknown entity string data written to text save files(.sat);binary files(.sab)are not affected.The portion of the ACIS save(.sat)file restore code that processes unknown entities reserves the following special characters(these are discussed elsewhere in this chapter):{An opening(left)curly brace begins a subtype definition.}A closing(right)curly brace terminates a subtype definition.$A dollar sign indicates a pointer definition.#A pound sign terminates an entity record.SAT Format D7.0@An at sign starts a string record.If these reserved characters are encountered in unknown entity string data when a.sat file is restored(read in),the unknown entity reader will not process the data correctly because these characters are interpreted as special tokens.Because this processing only applies to unknown entities,applications that“know about”entities containing these characters should be able to process the files.However,if the files are shared with other applications,problems may arise. Save File HeaderTopic:*SAT Save and RestoreThe first record of the ACIS save file is a header,such as:71204011Scheme AIDE11ACIS7.0NT24Mon Apr0916:44:182001-19.9999999999999995e-0071e-010.......Integer An encoded version number.In the example,this is“712”,which means the release is major release7,minor release1,and point release2........Integer The total number of saved data records,or zero.If zero,then an end mark is required........Integer A count of the number of entities in the original entity list that were saved to the part file........Integer The least significant bit of this number is used to indicate whether or nothistory has been saved in this save file........Integer String length for the product string:“11”.........String ID for the product which produced the file:“Scheme AIDE”........Integer String length for the ACIS version string:“11”.........String ACIS version which produced the file:“ACIS7.0NT”.This may bedifferent from the file version and can include the major release number,theminor release number,and the point release number.It also includes theplatform on which it was produced........Integer String length for the date string:“24”.........String Date file produced(in C ctime format):“Mon Apr0916:44:182001”.......Double Number of millimeters represented by each unit in the model:“--1”.SAT Format D7.0.........Real Value of resabs when the file was produced:“9.9999999999999995e--007”..........Real Value of resnor when the file was produced:“1e--10”.Version NumbersTopic:*SAT Save and RestoreSpatial has always maintained the concept of a current version(release)number in ACIS,as well as a save version number.The save version allows one to create a SAT save file that can be read by a previous version of ACIS.Beginning with ACIS Release4.0,the SAT save file format does not change with minorreleases,only with major releases.This allows applications that are based upon the samemajor version of ACIS to exchange data without being concerned about the save version.To provide this interoperability in a simple implementation,ACIS save files have contained a symbol that accurately identified the major version number,but not the minor version.This meant that applications created using the same major version of ACIS would producecompatible save files,regardless of their minor versions.This was accomplished by simply not incrementing the“internal”minor version number between major versions.Beginning with Release7.0,ACIS will again provide accurate major,minor,and point version numbers,which can be queried using the functions get_major_version,get_minor_version, and get_point_version.To summarize how release numbers and SAT changes are related:D Major release:SAT file changes may be made;significant functionality changes likely;may require significant changes to existing applicationsD Minor release:No SAT file changes are made;may provide new functionality;mayrequire some minimal changes to existing applicationsD Point release:Minor changes only(bug fixes)Entity RecordsTopic:*SAT Save and RestoreThe header is followed by a sequence of entity records.Each entity record consists of asequence number(optional),an entity type identifier,the entity data,and a terminator.Pointers between entities are saved as integer index values,with NULL pointers represented by the value--1.ACIS pointer indices are preceded by$in the SAT file,or by a binary Tag12 in the SAB file.Top level entities(e.g.,body entities)are always the first records in the save file.The rest of the data records are in no particular order.SAT Format D7.0Beginning with ACIS Release7.0,the format of ENTITY and HISTORY_STREAM records has been changed to accommodate the addition of entity IDs.A new integer field has been added to the entity record to hold the entity’s ID.A value of--1indicates that an ID has not yet been requested for the ENTITY.This is field#2in any entity record,where the entity type is field#0.A new integer field has been added to history stream records(part of the history data section)to hold the next available entity ID in that stream.This is field#3in the historystream record,where“history_stream”is the first field.Optional Sequence NumbersTopic:*SAT Save and RestoreThe indexing of the entity records depends on the active ACIS options when the model was saved.If they are indexed,the indexing is sequential starting at0.-0body$1$2$-1$-1#...-25point$-110025#In this example from a SAT file,“--0”and“--25”are sequence numbers.In the first line,“$1 $2”happen to be pointers to records(not shown)with sequence numbers“--1”and“--2”,respectively.Even when the sequence numbers are not written to the file,they are implied by the order of the records in the file.Pointers to other records correspond to these implied sequencenumbers.If sequence numbers are turned off,a record cannot be simply moved or removed from the save file,because this will create invalid index referencing when the file is restored.If sequence numbers are turned on,an entity may be deleted by simply removing its record from the save file.Any references to the removed record’s index become NULL pointers when the file is restored by ACIS.With sequence numbers on,records may also be rearrangedwithin the file.Save IdentifierTopic:*SAT Save and RestoreA save identifier is unique,reader-friendly string which has a one-to-one correspondence withan ACIS class.For example,“body”is a save identifier for the BODY class,which is derived from ENTITY.ACIS classes perform most of the work associated with reading and writing save files.The restore methods of a given class can make references to the restore methods of other classes.Class names do not appear in the save file,but the save identifiers do.Both class names and save identifiers are contained within the index.SAT Format D7.0The save file sometimes strings save identifiers together using a dash(“--”).This often reflects the ACIS class derivation.For example,the save identifiers“plane--surface”have a class derivation consisting of ENTITY,SURFACE,and PLANE.The save identifiers“colour--tsl--attrib”have the class derivation ENTITY,ATTRIB,ATTRIB_TSL,andATTRIB_COL.Unique save identifier strings are required for private attributes that a developer may create.This is achieved by deriving a private base class from ATTRIB and giving it a unique name.Developers may use any class name for their private attributes,yet the full identifiers areunique in the save file.If the save identifiers are not completely recognized by ACIS,a data structure from just the recognized classes is constructed and restored.The remaining data at the end of the record is remembered so that it is not lost by a later save.For unrecognized classes whose derivation is two or more levels removed from ENTITY,such as classes derived from CURVE,SURFACE, or ATTRIB,the minimum is to create a recognizable data structure so that references to the data structure are correct.For example,if a record from a derived class of ATTRIB is notrecognized,an ATTRIB record is created in such a way that the chain of attributes remains connected for the entity owning the unrecognized attribute.Character Sets SupportedTopic:*SAT Save and RestoreBeginning with ACIS Release7.0,the SAT file will delimit strings using an@sign.This allows SAT files to contain and support any character set,including Japanese or graphics characters.For backward compatibility,SAT files with strings that contain SAT delimiters will be modified when being saved in an earlier version.The SAT delimiters in the string will be replaced with underscores.This will insure that the file can be read in earlier versions ofACIS.Entity Encapsulation in a RecordTopic:*SAT Save and RestoreThe data for an entity is encapsulated in the order of its derivation from the basic ENTITY, from left to right.This is in the opposite order of the derivation of the identifier.The data for ENTITY is written first,followed by the data for the class directly derived from ENTITY,continuing down to the leaf class.For readability in the SAT file,each data field is separated by white space:a space,carriage return,or new line.Because it is known that the encapsulation(and derivation)starts from ENTITY,the ENTITY save identifier is not written.In figure2-1,this is shown in the middle by the empty double quotation marks,(“”).SAT Format D7.0Figure2-1.Format Entity RecordStarting from inside and going out,the ENTITY data is preceded by identifiers and is followed by the data for the identifiers.The identifiers correspond to classes derived directly fromENTITY.This type of encapsulation continues for all class derivations until the leaf class is reached.In figure2-1for a SAT file,the class identifiers are separated from one another with dashes, while their data fields are separated with white space.The white space is typically a space,but may also be a new line.The last element of the record is the terminator character(#). TerminatorTopic:*SAT Save and RestoreThe pound sign(#)terminates the entity data in the SAT file.Tag17is the terminator in the SAB file.This allows unknown entities and attributes to be read and the start of the next entity to be located.Subtypes and ReferencesTopic:*SAT Save and RestoreSubtypes are frequently used in a save file in many of the entity records.Subtypes specify in more detail the characteristics of a geometry type.Interpolated curves(intcurve)and spline surfaces(spl_sur)are two of the major geometry types that make extensive use of subtypes.Subtype definitions contain the bulk of the geometry information of a model and generally span numerous lines within a record of a SAT file.The subtype definition can be preceded and followed by other data pertinent to that record,and subtypes can be nested.When a subtype definition is created as part of a record in the save file,it is numbered in an index table starting with0.Because entity elements within a model often share geometry,the subtype index numbers can be referenced by other entity element records.When a particular record uses a subtype object which has been defined by another record,the latter recordsimply references the index number of the subtype rather than writing the entire set of data out again.These references are written out as“ref n”.The ref indicates that this particular item has already been written out to the save file.The n stands for the subtype reference number, counting from the beginning of the file.SAT Format D7.0All subtype and reference designations are enclosed between subtype_start and subtype_end designators,which are curly braces“{}”in a SAT file and Tag15and Tag16in a SAB file. Geometry with LawsTopic:*SAT Save and RestoreWhen a law is used to create geometry,as for curves,surfaces,a wire offsetting,andsweeping,the string denoting the law and any supporting data is saved to the save file.A law is composed of one or more law symbol character strings.The law symbols are verysimilar to the adaptation of mathematical notation for use in computers.The valid syntax for the character strings is given in the law symbol ws support nesting of lawsymbols.Laws are most likely to appear in the save file as part of a curve or surface subtype definition in the form of a lawintcur or a lawsplsur.Typically,the subtype definition starts with generic geometry information.Then the law specific information is presented.The law itself canreference and/or define any number of other model geometric elements and subtypes using law data definitions.Following the law definition and all associated law data in the save file, other common subtype information can appear.End MarkerTopic:*SAT Save and RestoreThe last entity record is followed by End-of-ACIS-data to mark the end of the ACIS save data.End-of-ACIS-dataIf the history save/restore option is turned on,the Begin--of--ACIS--History--Data andEnd--of--ACIS--History--Section markers together with old entities are listed before theEnd-of-ACIS-data marker.History MarkersTopic:*SAT Save and RestoreWhen the history save/restore option is turned on,a new section is added to the save filebefore the End--of--ACIS--data marker.This new section comes immediately after theinformation pertaining to the entities of the active model.Begin-of-ACIS-History-DataSAT Format D7.0The new history section starts with a marker Begin--of--ACIS--History--Data.Everythingbetween this section marker and the End--of--ACIS--History--Section marker obeys the rules of history save.This section of the save file lists entities which may no longer exist at the active state.However,these entities did exist at some point during the creation of the current model and are necessary for roll back and roll forward operations.Entities that were part of prunedbranches are not saved.When the history save/restore option is turned on,the End--of--ACIS--History--Section marker immediately follows the history data.Between this marker and the Begin--of--ACIS--data marker are more entity records.These adhere to the entity record structure.End-of-ACIS-History-SectionThe End--of--ACIS--History--Section marker is followed by the End--of--ACIS--data marker. Class Restore MethodsTopic:SAT Save and RestoreEvery ACIS class that can have information retrieved from a save file typically has a restore method.In most cases,this is either restore_common or restore_data.When the restore methods are documented for a given class,they contain a function prototype,a description,and some pseudo-code to describe the actual data that is retrieved from the SATfile.The pseudo-code can include references to other class restore functions or to othergeneric functions to handle known data types in the save file.For example,when restoring a cone entity from a save file,the cone::restore_data method references the ellipse::restore_data method as well as the surface::restore_data method.It also references common input functions like read_real and read_logical.Likewise,theellipse::restore_data method references the common input functions read_position,read_unit_vector,and read_vector.Hence,finding out exactly all of the data associated with a given save identifier may involve tracing through several classes and common input functions.Tracing SAT DataTopic:SAT Save and RestoreUsing the ACIS online help“index search can speed the interpretation of the information in a SAT file.The index search lists both class names and save identifiers.SAT Format D7.01.Locate the index entry for the save identifier of interest,for example,the class BODY.Follow the index entry to the class information,of which the save identifier is a part.2.The first three lines of the SAT file contain header information.Parse these lines forinformation of value,such as the modeling units.For more details about the header,refer to the section Save File Header.3.For an entity record within the SAT file,read the inner-most save identifier.a.For more details about entity records,refer to the section Entity Records.b.For more details about the save identifiers,refer to the section Save Identifiers.c.For more details about finding the inner--most save identifiers,refer to the sectionEntity Encapsulation in a Record.4.Locate the index entry for the save identifier.5.Follow the index entry for the save identifier to its owning class description in thedocumentation.6.The restore methods of the class specify the data associated with that save identifier.This data begins just to the right of the inner-most save identifier of the SAT record.For more details about restore methods,refer to the section Class Restore Methods.7.The data associated with the save identifier is represented by the pseudo code of therestore methods.8.The restore methods may reference restore methods for other classes.If required,go tothose classes and follow their restore methods.Be sure to keep track of the class restore stack so that tracing can pop back to the correct class restore method.9.When finished with the data for the given save identifier,go to step4.for the nextinner-most save identifier,if applicable.10.If there are no more save identifiers and the data portion has encountered the entityrecord terminator(“#”),go to step3.for the next entity record.For example,assume the following line was found in a SAT file.cone-surface$-100000110001I I01forward I I I I#The“surface”keyword is the inner-most save identifier which is next to the NULL ENTITY. pointer($--1).The documentation index for the word“surface”leads to the SURFACE class. So,this is the place to start tracing.SURFACE Classpublic:void SURFACE::restore_common();SAT Format D7.0No data This class does not save any dataIn this case,the restore method of the SURFACE class does not read any data.CONE ClassThe“cone”keyword is the next inner-most save identifier.The documentation index for the word“cone”goes to the CONE class.public:void CONE::restore_common();cone::restore_data Cone data definition.The restore method of the CONE class references the restore_data method of the cone class.cone Classpublic:void cone::restore_data();ellipse::restore_data Restore the information for the base ellipseread_real Sine of cone angleread_real Cosine of cone angleif(restore_version_number<CONE_SCALING_VERSION)//the u parameter scale is obtained from the ellipse major axis elseread_real u parameter scaleif(restore_version_number<SURFACE_VERSION)//the reverse u flag is set to FALSEelseread_logical u parameter reversed,either“forward”or reversed”surface::restore_data Generic surface dataThe restore method of the cone class references the restore_data method of the ellipse class.ellipse Classpublic:void ellipse::restore_data();read_position Position of the center of the ellipse.read_unit_vector Unit vector that is normal to plane of the ellipse. SAT Format D7.0read_vector Major axis of the ellipse.read_real Ratio of the radii.curve::restore_data Restore the underlying curve of the ellipse.The restore method of the ellipse class finally calls some input functions to retrieveinformation from the SAT file.Specifically,it reads the position of the base ellipse,which is the first“000”after the“$--1”.It reads a unit vector for the base normal,which is the next“0 01”.It reads a vector for the major axis of the ellipse,which is“1000”.It reads a real,“1”, for the ratio of the ellipse major to minor axis.Then it accesses the restore method of the curve class.curve Classpublic:void curve::restore_data();if(restore_version_number>=BNDCUR_VERSION)read_interval Interval for the subset range.The restore method of the curve class reads in an interval.The interval itself is made up of two logicals,which happen to be the next“I I”,for two infinite values.The curve::restore_data method returns to ellipse::restore_data,which then returns tocone::restore_data so that processing can resume.The next two values,“01”,represent the sine and cosine of the cone angle,respectively.The u parameter scale is obtained from the ellipse’s major axis.It reads the logical“forward”before accessing the restore method of the surface class.surface Classpublic:void surface::restore_data();if(restore_version_number>=BNDSUR_VERSION)read_interval subset u intervalread_interval subset v intervalThe surface::restore_data method reads in two intervals which in this case are infinite,“I I I I”.There are no other save identifiers to parse and the“#”indicates that there is no more data associated with that record.Save File ExampleTopic:*SAT Save and RestoreThe following simple example shows a SAT file with topology and geometry.The first three lines are the header,followed by the entity records,and finally the end marker.Optionalsequence numbers were included.SAT Format D7.0Record lines“--0”and“--1”are explained in more detail following the full example to show exactly what each item is and where to locate that information in this manual.Figure2-2.Save File ExampleSAT Format D7.040001011Scheme AIDE11ACIS 4.0NT24Mon Apr1213:59:03199825.41e-061e-10-0body$1$2$-1$3#-1display_attribute-st-attrib$-1$4$-1$01#-2lump$-1$-1$5$0#-3transform$-110000-101001001rotate no_reflect no_shear#-4rgb_color-st-attrib$-1$6$1$0010#-5shell$-1$-1$-1$7$-1$2#-6id_attribute-st-attrib$-1$-1$4$01#-7face$-1$8$9$5$-1$10forward single#-8face$-1$11$12$5$-1$13forward single#-9loop$-1$14$15$7#-10cone-surface$-100000110001I I01forward I I I I#-11face$-1$-1$16$5$-1$17forward single#-12loop$-1$-1$18$8#-13plane-surface$-100-1000-1-100forward_v I I I I#-14loop$-1$-1$19$7#-15coedge$-1$15$15$18$201$9$-1#-16loop$-1$-1$21$11#-17plane-surface$-10010001100forward_v I I I I#-18coedge$-1$18$18$15$200$12$-1#-19coedge$-1$19$19$21$221$14$-1#-20edge$-1$23$23$18$24forward#-21coedge$-1$21$21$19$220$16$-1#-22edge$-1$25$25$21$26forward#-23vertex$-1$20$27#-24ellipse-curve$-100-1000-110001I I#-25vertex$-1$22$28#-26ellipse-curve$-1001000110001I I#-27point$-1100-10#-28point$-110010#End-of-ACIS-dataThe first three lines of the file are the header.The fourth line,shown below,describes a body entity.-0body$1$2$-1$3#SAT Format D7.0Figure2-3.Body EntityCode Output Class Description--0Sequence number0;firstdata record of file.body BODY ident--(BODY derived fromENTITY)$1ENTITY ENTITY data--Pointer toits attribute $2BODY BODY data--Pointer tobody’s lump $--1BODY BODY data--Pointer tobody’s wire $3BODY BODY data--Pointer tobody’s transform #TerminatorThe fifth line of the file,shown below,describes a display attribute entity.-1display_attribute-st-attrib$-1$4$-1$01#SAT Format D7.0Figure2-4.Display Attribute EntityCode Output Class Description--1ENTITY(implied)Sequence number1;address for attributepointer called out insequence number0.Thedouble quotation marks(“”)are meant to signifythat ENTITY is implied. display_attribute--DISPLAY_ATTRIB save identifier for theDISPLAY_ATTRIBst--ATTRIB_ST save identifier for theATTRIB_ST classattrib ATTRIBUTE save identifier for theATTRIBUTE class$--1ENTITY ENTITY data--Attribute$rec_num$4ATTRIBUTE Pointer to the nextattribute$--1ATTRIBUTE Pointer to the previousattribute$0ATTRIBUTE Pointer to owner1DISPLAY_ATTRIB Display revision#TerminatorSAT Format D7.0Subtypes and References ExampleTopic:*SAT Save and RestoreAs a more graphical illustration of how subtyping and referencing work in a save file,several Scheme commands and a resulting SAT file are presented.The Scheme commands generate a cylinder which has one end bounded by a spline face.Another cylinder intersects the cylinder along the spline face,forming a cylindrical groove in the spline face.The spline surface is used in the definition of several spline curves in this example.Figure2-5.Creating a SAT FileThe following example is taken from the file exm_ref.sat created in the above Scheme code.It does not list all sequence numbers from0to171,but rather only a portion of them.The highlighted entries for sequence numbers17,96,and118are explained in more detailfollowing this listing.40001011Scheme AIDE11ACIS 4.0NT24Mon Apr1213:59:03199825.41e-061e-10-0body$1$2$-1$3#-1display_attribute-st-attrib$-1$4$-1$03#-2lump$-1$-1$5$0#-3transform$-110001000100101rotate no_reflect no_shear#-4rgb_color-st-attrib$-1$6$1$0010#SAT Format D7.0。
ASCII⽂件编码格式⽂件编码格式阶段⼀:ASCII阶段⼆:ANSI(本地化)如:GBK、GB2312阶段三:UNICODE(国际化)如:UTF-8ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是⼀套基于拉丁字母的字符编码,共收录了 128 个字符,⽤⼀个字节就可以存储,它等同于国际标准 ISO/IEC 646。
ASCII 规范于 1967 年第⼀次发布,最后⼀次更新是在 1986 年,它包含了 33 个控制字符(具有某些特殊功能但是⽆法显⽰的字符)和 95个可显⽰字符。
0:48A:65a:97SCII 编码⼀览表(淡黄⾊背景为控制字符,⽩⾊背景为可显⽰字符)⼆进制⼗进制⼗六进制字符/缩写解释00000000000NUL (NULL)空字符00000001101SOH (Start Of Headling)标题开始00000010202STX (Start Of Text)正⽂开始00000011303ETX (End Of Text)正⽂结束00000100404EOT (End Of Transmission)传输结束00000101505ENQ (Enquiry)请求00000110606ACK (Acknowledge)回应/响应/收到通知00000111707BEL (Bell)响铃00001000808BS (Backspace)退格00001001909HT (Horizontal Tab)⽔平制表符00001010100A LF/NL(Line Feed/New Line)换⾏键00001011110B VT (Vertical Tab)垂直制表符00001100120C FF/NP (Form Feed/New Page)换页键00001101130D CR (Carriage Return)回车键00001110140E SO (Shift Out)不⽤切换00001111150F SI (Shift In)启⽤切换000100001610DLE (Data Link Escape)数据链路转义000100011711DC1/XON(Device Control 1/Transmission On)设备控制1/传输开始000100101812DC2 (Device Control 2)设备控制2000100111913DC3/XOFF(Device Control 3/Transmission Off)设备控制3/传输中断000101002014DC4 (Device Control 4)设备控制4000101012115NAK (Negative Acknowledge)⽆响应/⾮正常响应/拒绝接收000101102216SYN (Synchronous Idle)同步空闲000101112317ETB (End of Transmission Block)传输块结束/块传输终⽌000110002418CAN (Cancel)取消000110012519EM (End of Medium)已到介质末端/介质存储已满/介质中断00011010261A SUB (Substitute)替补/替换00011011271B ESC (Escape)逃离/取消00011100281C FS (File Separator)⽂件分割符00011101291D GS (Group Separator)组分隔符/分组符00011110301E RS (Record Separator)记录分离符00011111311F US (Unit Separator)单元分隔符001000003220(Space)空格001000013321! 001000103422" 001000113523# 001001003624$ 001001013725% 001001103826& 001001113927' 001010004028( 001010014129) 00101010422A* 00101011432B+ 00101100442C, 00101101452D-00101110462E. 00101111472F/ 0011000048300 0011000149311 0011001050322 0011001151333 0011010052344 0011010153355 0011011054366 0011011155377 0011100056388 0011100157399 00111010583A: 00111011593B; 00111100603C< 00111101613D= 00111110623E> 00111111633F? 010*********@ 010*********A 010*********B 010*********C 010*********D 010*********E 010*********F 010*********G 010*********H 010*********I 010********A J 010********B K 010********C L 010********D M 010********E N 010********F O010*********P 010*********Q 010*********R 010*********S 010*********T 010*********U 010*********V 010*********W 010*********X 010*********Y010********A Z010********B[010********C\010********D]010********E^010********F_011000009660`011000019761a011000109862b011000119963c0110010010064d0110010110165e0110011010266f0110011110367g0110100010468h0110100110569i011010101066A j011010111076B k011011001086C l011011011096D m011011101106E n011011111116F o0111000011270p0111000111371q0111001011472r0111001111573s0111010011674t0111010111775u0111011011876v0111011111977w0111100012078x0111100112179y011110101227A z011110111237B{011111001247C|011111011257D}011111101267E~011111111277F DEL (Delete)删除对控制字符的解释ASCII 编码中第 0~31 个字符(开头的 32 个字符)以及第 127 个字符(最后⼀个字符)都是不可见的(⽆法显⽰),但是它们都具有⼀些特殊功能,所以称为控制字符( Control Character)或者功能码(Function Code)。
SAT格式用CAD如何打开
SAT格式用CAD如何打开?
1、在PRO/E里,做好实体图,打开“文件”→“保存副本”,选择文件格式为ACIS (*.sat),选择"实体"零件.注意不是*.set的格式.
2、打开Autocad,因为打开文件类型中没有的ACIS(*.sat)格式,所以你先新建一个文件(随便什么名,什么格式),然后找到保存的文件,选中他,按住左键把他拖到Autocad里.
3、哈哈,可以对他进行编辑了。
CAD/CAM/CAE综合资讯网站论坛PRO/E中打开Autocad实体图开思论坛1、在AutoCAD实体图,“文件”→“输出”,选择ACIS (*.sat)格式, 选中零件的全部. CAD/CAM/CAE综合资讯网站论坛2、打开PRO/E ,打开->所有->选择 ACIS(*.sat)文件
2、在CAD中文件-输出-下拉选sat格式文件-鼠标选中你要保存的三维实体-空格-确定就可以了文件名设为英文字母或数字在proe中文件-打开-文件类型下拉选择sat格式-选择你刚才CAD中保存的文件打开后就像proe中画的三维实体一样
3、PRO/E里,做好实体,文件--“保存副本”,在类型中选择文件格式为“ACIS (*.sat)”,选择路径点保存。
在“输出ACIS”对话框中默认其实体、壳的选择,选择坐标系或是默认其坐标系后点确定。
在CAD 中,切换到三维轴测图模式,在命令行输入命令:acisin,在“选择ACIS文件”对话框中选择刚刚保存的ACIS (*.sat)格式的文件,点打开即可。
System Commissioning_Protocol/Report系统调试文件/报告AHU-402 systemAHU-402系统*The above signature indicates that the debugging SAT theme of the system has been reviewed and approved. 以上签字表明本系统调试方案已经审核和批准。
Index目录1. Purpose 目的 (3)2. SAT scope 范围 (3)3. Abbreviations 术语和缩略语 (3)4. System Deription 系统描述 (4)5. Reference and Regulation 参考文件及规 (4)6. Responsibilities 职责 (6)7. SAT Execution 系统调试执行 (7)7.1. Prerequisites 先决条件 (7)7.2. Personnel Identification 人员确认 (9)7.3. Documents Verification 文件确认 (11)7.4. Test Equipment Calibration Verification 测试仪器确认 (13)7.5. PID Walkdown Check流程图检查 (16)7.6. HEPA Filter installation Inspection高效过滤器安装检查 (18)7.7. Room Air Volume and Air Change Rate Testing房间送风量及换次数检测 (20)7.8. Terminal HEPA Filter Integrity Testing末端高效过滤器完整性检查 (25)7.9. Room Pressure Difference Testing 房间静压差检测 (31)7.10. Room Temperature and Humidity Testing房间温湿度测试 (36)7.11. Cleanroom Airborne Particle Count Test (at rest) 洁净室微粒计数浓度的检测(静态) (39)7.12. Illumination Level Testing照度测量 (48)7.13. Noise test噪音测量 (52)7.14. Recovery Time Testing自净时间测试 (55)8. Deviations 偏差 (60)8.1. List of Deviations 偏差列表 (60)9. Site Acceptance Testing Summary 现场验收测试总结 (61)10. List of Attachment 附件列表 (62)11. Change Log 变更记录 (63)12. Appendix附录 (64)1.Purpose 目的Site Acceptance Testing (SAT), to verify that the proposed testing of specific items of major equipment and system at site meets the requirement of URS. To ensure the HVAC system assembling and commissioningcompare with the requirement.在项目现场,测试关键系统和设备的被要求的项目符合URS的要求,保证空调系统已经按要求完成了组装和调试。
1.三维软件的格式问题:通常,三维软件的输出格式分为三类。
第一类是商业内核级别的数据格式,如ACIS商业内核的sat数据格式(*.sat 扩展名为SAT 的文件);ParaSolid内核的X_T数据格式(*.X_T)。
第二类是公共级别的数据格式,如Step的*.stp;IGES的*.igs(爱鸡屎,强烈建议不要使用!)第三类就是专用级的数据格式,就是每个软件自己特有的数据文件格式,如SW的SLDPRT,PROE的PRT等。
软件间文件的传输最让人头痛了,常出现破面甚至模型全乱的情况。
而针对不同内核软件使用相应商业内核的三维软件开启能将数据转换的错误减少到最低。
CAXA 实体设计是个拥有ACIS、Parasolid两种商业内核的三维软件,因此,可以借CAXA 来做为中间桥梁,保证数据的完整性。
CAXA实体设计选择不同商业内核的方法是:工具-->选项-->零件里,在“新零件所用的缺省核心”处选择。
这样,可以将不同商业内核的文件由CAXA输入,转换商业内核(方法:拾取零件-->右键-->零件属性-->常规-->内核选择),后再保存。
方便不同商业内核间软件文件的转换。
几种常用软件的商业内核介绍:Parsolid 有:UG、SolidWorks等;ASIC 有:CATIA、PRO/E 2001、AutoDESK等。
常见的格式转换软件2.常见的格式转换软件有3DTransVidia、TransMagic、CADfix等。
3DTransVidia是一款功能强大的三维CAD模型数据格式转换与模型错误修复软件,可以针对几乎所有格式的三维模型进行数据格式间的转换,以及模型错误的修复操作。
3DTransVidia可以实现Pro/E、UG、CATIA V4、CA TIA V5、SolidWorks、STL、STEP、IGES、Inventor、ACIS、VRML、AutoForm、Parasolid等三维CAD模型数据格式间的相互转换,如:把STEP格式的模型转换成CATIA V5可以直接读取的.CATPart或.CA TProduct格式、把IGES格式的模型转换成UG可以直接读取的.prt格式等。
proe中各种文件格式的含义.txt心是自己的,干嘛总被别人伤......没有伞的孩子必须努力奔跑▓敷衍旳青春总昰想太多怨,只怨现实太现实╰⌒﹏为什么在一起要两个人的同意丶而分手只需要一个人关于接口功能“Pro/ENGINEER 接口”是“Pro/ENGINEER 基础”的一部分。
“Pro/ENGINEER 接口”功能包括以下数据交换格式功能。
ACIS用户可以:将扩展名为 .sat 的 ACIS 零件和组件输入到 Pro/ENGINEER 中将具有用户定义的参数及其单位、基准特征、横截面和草绘的 Pro/ENGINEER 零件和组件输出为 ACIS (.sat) 文件格式。
作为平面曲线输出横截面和草绘。
在 MECHANICA 中打开输出的零件和组件。
Adobe Illustrator 曲线用户可以:将 Adobe Illustrator 曲线直接输入到 Pro/ENGINEER 中,将其作为零件、组件或草绘。
修改作为特征输入的曲线以创建其它几何。
批处理可进入“批处理”模式以创建多个出图、IGES、DXF、VDA、SET、STEP、STL 或 VRML 文件。
CADAM/CDT/CPTR用户可以:使用 Pro/CDT 实用工具 (CADAM 数据转换),可直接由 Professional CADAM 数据库输入和修改绘图。
由 CPTR (CADAM - Pro/ENGINEER 转换) 中性文件 (.bin) 格式输入 CADAM 主体文件。
CADDS 5用户可以:将 CADDS 零件和组件输入到 Pro/ENGINEER。
将 Pro/ENGINEER 零件和组件输出到原始 CADDS 格式。
有关启用“关联拓扑母线”(ATB) 的 CADDS 5 的信息,请参阅“关联拓扑母线”的“帮助”。
CATIAPro/ENGINEER 支持 CATIA 版本 4 和版本 5。
对于 Pro/ENGINEER 和这些版本的 CATIA 中每一版本之间的数据交换,需要单独的许可证。
大话CAD图纸文件格式搞要: 经常会有CAD软件初学者,或者是相关人员提出,DWG是什么格式,STEP 是什么格式等类似问题,刚好最近时间比较充裕,我就整理一些资料,大话CAD图纸文件格式。
文件格式,指的是电子设备为存储文件信息而使用的特殊编码方式。
我们都知道,无论是二维CAD、三维CAD,都包含着众多特殊的图形,如三维实体、曲面、路径、块、文字等,这些图形都需要转换为二进制编码后,电子设备才可以识别。
每一种文件格式通常会有一种或多种扩展名可以用来识别,但也可能没有扩展名。
扩展名可以帮助应用程序识别的文件格式。
绝大多数的CAD软件都使用了自己开发的图纸格式来进行图纸存储,例如Autocad使用的DWG/DXF/DWF文件格式等、Solidworks使用的Sldprt文件格式、UG NX使用的prt文件格式、中望3D软件使用的Z3文件格式等。
为了更好的解决软件间图纸文件的交互,国际标准化组织ISO联合各国标准化组织制定了包括IGES、STEP等图纸交换规范,也包括由一些企业制定但广为使用的Stl(由3D Systems公司于1988年发布并不断改进)、X_T(UG公司开发的Parasolid软件所使用的格式)、SAT(Spatial公司的ACIS软件所使用的格式)等图纸交换规范。
同时,Transmagic、Capvidia、Core Technologie等公司开发了专业的CAD图纸格式转换软件,使得CAD软件间图纸的存储和编辑变得更加轻松和自如。
当然,任何CAD图纸文件格式之间的转换都不可能是无损的,均有不同程度的图形和数据缺失,在实际的设计工程中,经常会涉及到图形修补等工作。
但随着CAD软件功能的日渐完善,这些工作变得越来越简单。
下面我们逐一介绍下常用的CAD图纸文件格式。
一、DWG/DXF必须要明确的是,DWG是AutoCAD以及基于AutoCAD 的软件保存设计数据所用的一种专有文件格式。
三维建模相对于二维建模而言,三维建模与二维建模的思路有着较大的区别。
二维建模主要遵循点、线、面的原则,而三维建模则更象搭积木一样,由不同的三维基本造型拼凑而成,因此在建模的过程中更多的用到了布尔运算及Autocad等其他的建模辅助工具。
三视图的使用在建立三维图形的时候,使用三视图有利于我们更好的理解图形。
图30显示的是Gambit的视图控制面板。
图30在当前状况下,四个视图都是激活的(在Active栏中,显示红色),这时视图控制面板中的十个命令将同时作用于四个视图。
在创建三维图形之前,我们要做的第一项工作就是要将Gambit的四个视图设置为顶视图、前视图、左视图和透视图。
1.用鼠标单击Active右边的后三个视图,取消对它们的激活,激活取消后呈灰色(见图31)。
图312.用鼠标右键单击视图控制面板中的坐标按钮,弹出一组坐标系(见图32)。
3.选择,则左上视图变成顶视图。
如法炮制,设置其他视图(见图33)。
4.单击控制面板中的,也可将视图设成三视图。
图32图33基本三维模型的建立在Gambit控制面板中单击按钮,在Volume中用鼠标右键单击,弹出一组按钮(见图34),表示Gambit所能创建的基本三维几何体,主要有长方体、圆柱体等。
图34布尔运算的基本概念典型的布尔运算包括并、交、减。
并:将两个物体并成一个物体(两个物体的并集)交:两个物体的交集减:A物体减去B物体下面用一个简单的例子来说明基本三维几何体的创建和布尔运算的运用1.单击按钮,输入参数创建一个高60,半径6的圆柱体(见图35)。
在Axial Loaction栏中选取Positive X,使得圆柱体的法线指向x方向。
在Gambit中创建的几何体,其基点都在坐标系的原点(见图36)。
如果创建的几何体过大,在视图中无法显示全图,或者太小,无法分辨,单击按钮即可。
图35图362.为了能够更好的观察三维几何体,可以用鼠标拖动四个视图中央的小方块,改变四个视图的大小(见图37)。
Chapter 2.SAT Save File FormatTopic: SAT Save and RestoreACIS can store modeling information in external files, called save files. These files have an open format so that external applications, even those not based on ACIS, can have access to the ACIS geometric model.The basic information needed to understand the ACIS file format (focusing on the reading, or restore, operation), includes the structure of the save file format, how data is encapsulated, the types of data written, and subtypes and references.Save File TypesTopic: *SAT Save and RestoreACIS supports two kinds of save files, SAT and SAB, which stand for “Standard ACIS Text”and “Standard ACIS Binary”, respectively. Although one is ASCII text and the other is binary data, the model data information stored in the two formats is identical, so the term SAT file is generally used to refer to either (when no distinction is needed).SAT files are ASCII text files that may be viewed with a simple text editor. A SAT file contains carriage returns, white space and other formatting that makes it readable to the human eye. A SAT file has a .sat file extension.SAB files cannot be viewed with a simple text editor and are meant for compactness and not for human readability. A SAB file has a .sab file extension. A SAB file uses delimiters between elements and binary tags, without additional formatting.The binary formats supported are:int . . . . . . . . . . 4--byte 2s complement (as long)long . . . . . . . . . 4--byte 2s complementdouble . . . . . . . 8--byte IEEEchar . . . . . . . . . 1--byte ASCIISAT Format D 7.0where “byte” is eight bits, and files are considered to be byte strings. For multi--byte data items, byte order normally just matches that of the processor being used, but a specific order may be imposed by compiling with the preprocessor macro BIG_ENDIAN orLITTLE_ENDIAN defined.Structure of the Save FileTopic: SAT Save and RestoreA save file contains:D Three-line headerD Entity records, representing the bulk of the dataD [optional] Marker for begin history dataD [optional] Old entity records needed for history and rollbackD [optional] Marker for end history dataBeginning with ACIS Release 6.3, it is required that the product ID and units be populated for the file header (using class FileInfo) before you can save a SAT file. Refer to the reference templates for class FileInfo and function api_set_file_info for more information. Reserved Characters in SAT FilesTopic: *SAT Save and RestoreSeveral character s have special meaning when found in “unknown entity” string data in ACIS SAT (.sat) files. Therefore, these characters should not be contained in any user string data written to SAT files. This includes string data in attributes, but applies to string data in any unknown entities.Note This only applies to unknown entity string data written to text save files (.sat); binary files (.sab) are not affected.The portion of the ACIS save (.sat) file restore code that processes unknown entities reserves the following special characters (these are discussed elsewhere in this chapter):{ An opening (left) curly brace begins a subtype definition.} A closing (right) curly brace terminates a subtype definition.$ A dollar sign indicates a pointer definition.# A pound sign terminates an entity record.SAT Format D 7.0@ An at sign starts a string record.If these reserved characters are encountered in unknown entity string data when a .sat file is restored (read in), the unknown entity reader will not process the data correctly because these characters are interpreted as special tokens. Because this processing only applies to unknown entities, applications that “know about” entities containing these characters should be able to process the files. However, if the files are shared with other applications, problems may arise. Save File HeaderTopic: *SAT Save and RestoreThe first record of the ACIS save file is a header, such as:712 0 4 011 Scheme AIDE 11 ACIS 7.0 NT 24 Mon Apr 09 16:44:18 2001-1 9.9999999999999995e-007 1e-010Integer An encoded version number. In . . . . . . . the example, this is “712”, which means the release is major release 7, minor release 1, and point release 2.Integer . . . . . . . The total number of saved data records, or zero. If zero, then an end mark is required.Integer . . . . . . . A count of the number of entities in the original entity list that were saved to the part file.Integer . . . . . . . The least significant bit of this number is used to indicate whether or not history has been saved in this save file.Integer . . . . . . . String length for the product string: “11”.String . . . . . . . . ID for the product which produced the file: “Scheme AIDE”.Integer . . . . . . . String length for the ACIS version string: “11”.String . . . . . . . . ACIS version which produced the file: “ACIS 7.0 NT”. This may be different from the file version and can include the major release number, theminor release number, and the point release number. It also includes theplatform on which it was produced.Integer . . . . . . . String length for the date string: “24”.String . . . . . . . . Date file produced (in C ctime format): “Mon Apr 09 16:44:18 2001”. Double . . . . . . Number of millimeters represented by each unit in the model: “--1”.SAT Format D 7.0Real Value . . . . . . . . . of resabs when the file was produced: “9.9999999999999995e--007”. Real . . . . . . . . . Value of resnor when the file was produced: “1e--10”.Version NumbersTopic: *SAT Save and RestoreSpatial has always maintained the concept of a current version (release) number in ACIS, as well as a save version number. The save version allows one to create a SAT save file that can be read by a previous version of ACIS.Beginning with ACIS Release 4.0, the SAT save file format does not change with minor releases, only with major releases. This allows applications that are based upon the same major version of ACIS to exchange data without being concerned about the save version. To provide this interoperability in a simple implementation, ACIS save files have contained a symbol that accurately identified the major version number, but not the minor version. This meant that applications created using the same major version of ACIS would produce compatible save files, regardless of their minor versions. This was accomplished by simply not incrementing the “internal” minor version number between major versions.Beginning with Release 7.0, ACIS will again provide accurate major, minor, and point version numbers, which can be queried using the functions get_major_version, get_minor_version, and get_point_version. To summarize how release numbers and SAT changes are related:D Major release: SAT file changes may be made; significant functionality changes likely; may require significant changes to existing applicationsD Minor release: No SAT file changes are made; may provide new functionality; may require some minimal changes to existing applicationsD Point release: Minor changes only (bug fixes)Entity RecordsTopic: *SAT Save and RestoreThe header is followed by a sequence of entity records. Each entity record consists of a sequence number (optional), an entity type identifier, the entity data, and a terminator. Pointers between entities are saved as integer index values, with NULL pointers represented by the value --1. ACIS pointer indices are preceded by $ in the SAT file, or by a binary Tag 12 in the SAB file.Top level entities (e.g., body entities) are always the first records in the save file. The rest of the data records are in no particular order.SAT Format D 7.0Beginning with ACIS Release 7.0, the format of ENTITY and HISTORY_STREAM recordshas been changed to accommodate the addition of entity IDs. A new integer field has been added to the entity record to hold the entity’s ID. A value of --1 indicates that an ID has not yet been requested for the ENTITY. This is field #2 in any entity record, where the entity type is field #0. A new integer field has been added to history stream records (part of the history data section) to hold the next available entity ID in that stream. This is field #3 in the history stream record, where “history_stream” is the first field.Optional Sequence NumbersTopic: *SAT Save and RestoreThe indexing of the entity records depends on the active ACIS options when the model was saved. If they are indexed, the indexing is sequential starting at 0.-0 body $1 $2 $-1 $-1 #...-25 point $-1 10 0 25 #In this example from a SAT file, “--0” and “--25” are sequence numbers. In the first line, “$1 $2” happen to be pointers to records (not shown) with sequence numbers “--1” and “--2”, respectively.Even when the sequence numbers are not written to the file, they are implied by the order of the records in the file. Pointers to other records correspond to these implied sequence numbers. If sequence numbers are turned off, a record cannot be simply moved or removed from the save file, because this will create invalid index referencing when the file is restored. If sequence numbers are turned on, an entity may be deleted by simply removing its record from the save file. Any references to the removed record’s index become NULL pointers when the file is restored by ACIS. With sequence numbers on, records may also be rearranged within the file.Save IdentifierTopic: *SAT Save and RestoreA save identifier is unique, reader-friendly string which has a one-to-one correspondence with an ACIS class. For example, “body” is a save identifier for the BODY class, which is derived from ENTITY.ACIS classes perform most of the work associated with reading and writing save files. The restore methods of a given class can make references to the restore methods of other classes. Class names do not appear in the save file, but the save identifiers do. Both class names and save identifiers are contained within the index.SAT Format D 7.0The save file sometimes strings save identifiers together using a dash (“--”). This often reflects the ACIS class derivation. For example, the save identifiers “plane--surface” have a class derivation consisting of ENTITY, SURFACE, and PLANE. The save identifiers“colour--tsl--attrib” have the class derivation ENTITY, ATTRIB, ATTRIB_TSL, andATTRIB_COL.Unique save identifier strings are required for private attributes that a developer may create.This is achieved by deriving a private base class from ATTRIB and giving it a unique name. Developers may use any class name for their private attributes, yet the full identifiers are unique in the save file.If the save identifiers are not completely recognized by ACIS, a data structure from just the recognized classes is constructed and restored. The remaining data at the end of the record is remembered so that it is not lost by a later save. For unrecognized classes whose derivation is two or more levels removed from ENTITY, such as classes derived from CURVE, SURFACE, or ATTRIB, the minimum is to create a recognizable data structure so that references to the data structure are correct. For example, if a record from a derived class of ATTRIB is not recognized, an ATTRIB record is created in such a way that the chain of attributes remains connected for the entity owning the unrecognized attribute.Character Sets SupportedTopic: *SAT Save and RestoreBeginning with ACIS Release 7.0, the SAT file will delimit strings using an @ sign. This allows SAT files to contain and support any character set, including Japanese or graphics characters. For backward compatibility, SAT files with strings that contain SAT delimiters will be modified when being saved in an earlier version. The SAT delimiters in the string will be replaced with underscores. This will insure that the file can be read in earlier versions of ACIS.Entity Encapsulation in a RecordTopic: *SAT Save and RestoreThe data for an entity is encapsulated in the order of its derivation from the basic ENTITY, from left to right. This is in the opposite order of the derivation of the identifier. The data for ENTITY is written first, followed by the data for the class directly derived from ENTITY, continuing down to the leaf class. For readability in the SAT file, each data field is separated by white space: a space, carriage return, or new line.Because it is known that the encapsulation (and derivation) starts from ENTITY, the ENTITY save identifier is not written. In figure 2-1, this is shown in the middle by the empty double quotation marks, (“”).SAT Format D 7.0identifier datatype n-- . . . type2-- type1 “” data type1 type2 . . . type n #ENTITYFigure 2-1. Format Entity RecordStarting from inside and going out, the ENTITY data is preceded by identifiers and is followed by the data for the identifiers. The identifiers correspond to classes derived directly from ENTITY. This type of encapsulation continues for all class derivations until the leaf class is reached.In figure 2-1 for a SAT file, the class identifiers are separated from one another with dashes, while their data fields are separated with white space. The white space is typically a space, but may also be a new line. The last element of the record is the terminator character (#). TerminatorTopic: *SAT Save and RestoreThe pound sign (#) terminates the entity data in the SAT file. Tag 17 is the terminator in the SAB file. This allows unknown entities and attributes to be read and the start of the next entity to be located.Subtypes and ReferencesTopic: *SAT Save and RestoreSubtypes are frequently used in a save file in many of the entity records. Subtypes specify in more detail the characteristics of a geometry type. Interpolated curves (intcurve) and spline surfaces (spl_sur) are two of the major geometry types that make extensive use of subtypes. Subtype definitions contain the bulk of the geometry information of a model and generally span numerous lines within a record of a SAT file. The subtype definition can be preceded and followed by other data pertinent to that record, and subtypes can be nested.When a subtype definition is created as part of a record in the save file, it is numbered in an index table starting with 0. Because entity elements within a model often share geometry, the subtype index numbers can be referenced by other entity element records. When a particular record uses a subtype object which has been defined by another record, the latter record simply references the index number of the subtype rather than writing the entire set of data out again. These references are written out as “ref n”. The ref indicates that this particular item has already been written out to the save file. The n stands for the subtype reference number, counting from the beginning of the file.SAT Format D 7.0All subtype and reference designations are enclosed between subtype_start and subtype_end designators, which are curly braces “{ }” in a SAT file and Tag 15 and Tag 16 in a SAB file.Geometry with LawsTopic: *SAT Save and RestoreWhen a law is used to create geometry, as for curves, surfaces, a wire offsetting, and sweeping, the string denoting the law and any supporting data is saved to the save file.A law is composed of one or more law symbol character strings. The law symbols are very similar to the adaptation of mathematical notation for use in computers. The valid syntax for the character strings is given in the law symbol templates. Laws support nesting of law symbols.Laws are most likely to appear in the save file as part of a curve or surface subtype definition in the form of a lawintcur or a lawsplsur. Typically, the subtype definition starts with generic geometry information. Then the law specific information is presented. The law itself can reference and/or define any number of other model geometric elements and subtypes using law data definitions. Following the law definition and all associated law data in the save file, other common subtype information can appear.End MarkerTopic: *SAT Save and RestoreThe last entity record is followed by End-of-ACIS-data to mark the end of the ACIS save data.End-of-ACIS-dataIf the history save/restore option is turned on, the Begin--of--ACIS--History--Data andEnd--of--ACIS--History--Section markers together with old entities are listed before theEnd-of-ACIS-data marker.History MarkersTopic: *SAT Save and RestoreWhen the history save/restore option is turned on, a new section is added to the save file before the End--of--ACIS--data marker. This new section comes immediately after the information pertaining to the entities of the active model.Begin-of-ACIS-History-DataSAT Format D 7.0The new history section starts with a marker Begin--of--ACIS--History--Data. Everything between this section marker and the End--of--ACIS--History--Section marker obeys the rules of history save.This section of the save file lists entities which may no longer exist at the active state. However, these entities did exist at some point during the creation of the current model and are necessary for roll back and roll forward operations. Entities that were part of pruned branches are not saved.When the history save/restore option is turned on, the End--of--ACIS--History--Section marker immediately follows the history data. Between this marker and the Begin--of--ACIS--data marker are more entity records. These adhere to the entity record structure.End-of-ACIS-History-SectionThe End--of--ACIS--History--Section marker is followed by the End--of--ACIS--data marker. Class Restore MethodsTopic: SAT Save and RestoreEvery ACIS class that can have information retrieved from a save file typically has a restore method. In most cases, this is either restore_common or restore_data.When the restore methods are documented for a given class, they contain a function prototype, a description, and some pseudo-code to describe the actual data that is retrieved from the SAT file. The pseudo-code can include references to other class restore functions or to other generic functions to handle known data types in the save file.For example, when restoring a cone entity from a save file, the cone::restore_data method references the ellipse::restore_data method as well as the surface::restore_data method. It also references common input functions like read_real and read_logical. Likewise, the ellipse::restore_data method references the common input functions read_position,read_unit_vector, and read_vector.Hence, finding out exactly all of the data associated with a given save identifier may involve tracing through several classes and common input functions.Tracing SAT DataTopic: SAT Save and RestoreUsing the ACIS online help “index search can speed the interpretation of the information in aSAT file. The index search lists both class names and save identifiers.SAT Format D 7.01. Locate the index entry for the save identifier of interest, for example, the class BODY. Follow the index entry to the class information, of which the save identifier is a part.2. The first three lines of the SAT file contain header information. Parse these lines for information of value, such as the modeling units. For more details about the header,refer to the section Save File Header.3. For an entity record within the SAT file, read the inner-most save identifier.a. For more details about entity records, refer to the section Entity Records.b. For more details about the save identifiers, refer to the section Save Identifiers.c. For more details about finding the inner--most save identifiers, refer to the sectionEntity Encapsulation in a Record.4. Locate the index entry for the save identifier.5. Follow the index entry for the save identifier to its owning class description in the documentation.6. The restore methods of the class specify the data associated with that save identifier.This data begins just to the right of the inner-most save identifier of the SAT record. For more details about restore methods, refer to the section Class Restore Methods.7. The data associated with the save identifier is represented by the pseudo code of the restore methods.8. The restore methods may reference restore methods for other classes. If required, go to those classes and follow their restore methods. Be sure to keep track of the class restore stack so that tracing can pop back to the correct class restore method.9. When finished with the data for the given save identifier, go to step 4. for the nextinner-most save identifier, if applicable.10. If there are no more save identifiers and the data portion has encountered the entityre cord terminator (“#”), go to step 3. for the next entity record.For example, assume the following line was found in a SAT file.cone-surface $-1 0 0 0 0 0 1 10 0 0 1 I I 0 1 forward I I I I #The “surface” keyword is the inner-most save identifier which is next to the NULL ENTITY. pointer ($--1). The documentation index for the word “surface” leads to the SURFACE class. So, this is the place to start tracing.SURFACE Classpublic: void SURFACE::restore_common ();SAT Format D 7.0No data This class does not save any dataIn this case, the restore method of the SURFACE class does not read any data.CONE ClassThe “cone” keyword is the next inner-most save identifier. The documentation index for the word “cone” goes to the CONE class.public: void CONE::restore_common ();cone::restore_data Cone data definition.The restore method of the CONE class references the restore_data method of the cone class. cone Classpublic: void cone::restore_data ();ellipse::restore_data Restore the information for the base ellipseread_real Sine of cone angleread_real Cosine of cone angleif (restore_version_number < CONE_SCALING_VERSION)// the u parameter scale is obtained from the ellipse major axiselseread_real u parameter scaleif (restore_version_number < SURFACE_VERSION)// the reverse u flag is set to FALSEelseread_logical u parameter reversed, either “forward” or reversed”surface::restore_data Generic surface dataThe restore method of the cone class references the restore_data method of the ellipse class. ellipse Classpublic: void ellipse::restore_data ();read_position Position of the center of the ellipse.read_unit_vector Unit vector that is normal to plane of the ellipse.SAT Format D 7.0read_vector Major axis of the ellipse.read_real Ratio of the radii.curve::restore_data Restore the underlying curve of the ellipse.The restore method of the ellipse class finally calls some input functions to retrieve information from the SAT file. Specifically, it reads the position of the base ellipse, which is the first “0 0 0” after the “$--1”. It reads a unit vector for the base normal, which is the next “0 0 1”. It reads a vector for the major axis of the ellipse, which is “10 0 0”. It reads a real, “1”, for the ratio of the ellipse major to minor axis. Then it accesses the restore method of the curve class.curve Classpublic: void curve::restore_data ();if (restore_version_number >= BNDCUR_VERSION)read_interval Interval for the subset range.The restore method of the curve class reads in an interval. The interval itself is made up of two logicals, which happen to be the next “I I”, for two infinite values.The curve::restore_data method returns to ellipse::restore_data, which then returns to cone::restore_data so that processing can resume. The next two values, “0 1”, represent the sine and cosine of the cone angle, respectively. The u parameter scale is obtained from the ellipse’s major axis. It reads the logical “forward” before accessing the restore method of the surface class.surface Classpublic: void surface::restore_data ();if (restore_version_number >= BNDSUR_VERSION)read_interval subset u intervalread_interval subset v intervalThe surface::restore_data method reads in two intervals which in this case are infinite, “I I I I”.There are no other save identi fiers to parse and the “#” indicates that there is no more data associated with that record.Save File ExampleTopic: *SAT Save and RestoreThe following simple example shows a SAT file with topology and geometry. The first three lines are the header, followed by the entity records, and finally the end marker. Optional sequence numbers were included.SAT Format D 7.0Record lines “--0” and “--1” are explained in more detail following the full example to show exactly what each item is and where to locate that information in this manual.# ACIS Scheme Commands(option:set”sequence_save_files” #t)(solid:cylinder(position 0 0 0)(position 0 20 0)10)(part:save ”exp_cyl”)Figure 2-2. Save File ExampleSAT Format D 7.0400 0 1 011 Scheme AIDE 11 ACIS 4.0 NT 24 Mon Apr 12 13:59:03 199825.4 1e-06 1e-10-0 body $1 $2 $-1 $3 #-1 display_attribute-st-attrib $-1 $4 $-1 $0 1 #-2 lump $-1 $-1 $5 $0 #-3 transform $-1 1 0 0 0 0 -1 0 1 0 0 10 0 1 rotate no_reflectno_shear #-4 rgb_color-st-attrib $-1 $6 $1 $0 0 1 0 #-5 shell $-1 $-1 $-1 $7 $-1 $2 #-6 id_attribute-st-attrib $-1 $-1 $4 $0 1 #-7 face $-1 $8 $9 $5 $-1 $10 forward single #-8 face $-1 $11 $12 $5 $-1 $13 forward single #-9 loop $-1 $14 $15 $7 #-10 cone-surface $-1 0 0 0 0 0 1 10 0 0 1 I I 0 1 forward I I I I #-11 face $-1 $-1 $16 $5 $-1 $17 forward single #-12 loop $-1 $-1 $18 $8 #-13 plane-surface $-1 0 0 -10 0 0 -1 -1 0 0 forward_v I I I I #-14 loop $-1 $-1 $19 $7 #-15 coedge $-1 $15 $15 $18 $20 1 $9 $-1 #-16 loop $-1 $-1 $21 $11 #-17 plane-surface $-1 0 0 10 0 0 1 1 0 0 forward_v I I I I #-18 coedge $-1 $18 $18 $15 $20 0 $12 $-1 #-19 coedge $-1 $19 $19 $21 $22 1 $14 $-1 #-20 edge $-1 $23 $23 $18 $24 forward #-21 coedge $-1 $21 $21 $19 $22 0 $16 $-1 #-22 edge $-1 $25 $25 $21 $26 forward #-23 vertex $-1 $20 $27 #-24 ellipse-curve $-1 0 0 -10 0 0 -1 10 0 0 1 I I #-25 vertex $-1 $22 $28 #-26 ellipse-curve $-1 0 0 10 0 0 1 10 0 0 1 I I #-27 point $-1 10 0 -10 #-28 point $-1 10 0 10 #End-of-ACIS-dataThe first three lines of the file are the header. The fourth line, shown below, describes a body entity.-0 body $1 $2 $-1 $3 #SAT Format D 7.0identifier databody $2 $--1 $3 #ENTITY--0 “” $1Figure 2-3. Body EntityCode Output Class Description--0 Sequence number 0; firstdata record of file.body BODY ident -- (BODY derived fromENTITY)$1 ENTITY ENTITY data -- Pointer toits attribute$2 BODY BODY data -- Pointer tobody’s lump$--1 BODY BODY data -- Pointer tobody’s wire$3 BODY BODY data -- Pointer tobody’s transform# TerminatorThe fifth line of the file, shown below, describes a display attribute entity.-1 display_attribute-st-attrib $-1 $4 $-1 $0 1 #SAT Format D 7.0“” $-1identifier datast-- attrib 1 #ENTITY-1 display_attribute-- $4 $--1 $0Figure 2-4. Display Attribute EntityCode Output Class Description--1 ENTITY (implied) Sequence number 1;address for attributepointer called out insequence number 0. Thedouble quotation marks(“”) are meant to signifythat ENTITY is implied.display_attribute-- DISPLAY_ATTRIB save identifier for theDISPLAY_ATTRIBst-- ATTRIB_ST save identifier for theATTRIB_ST classattrib ATTRIBUTE save identifier for theATTRIBUTE class$--1 ENTITY ENTITY data -- Attribute$rec_num$4 ATTRIBUTE Pointer to the nextattribute$--1 ATTRIBUTE Pointer to the previousattribute$0 ATTRIBUTE Pointer to owner1 DISPLAY_ATTRIB Display revision# TerminatorSAT Format D 7.0Subtypes and References ExampleTopic: *SAT Save and RestoreAs a more graphical illustration of how subtyping and referencing work in a save file, several Scheme commands and a resulting SAT file are presented. The Scheme commands generate a cylinder which has one end bounded by a spline face. Another cylinder intersects the cylinder along the spline face, forming a cylindrical groove in the spline face. The spline surface is used in the definition of several spline curves in this example.# Scheme AIDE Commands(set:options”sequence_save_files” #t)(solid:cylinder(position 0 0 0)(position 0 0 20)10)(solid:wiggle 20 20 40 1 1 1 1)(solid:intersect(entity 1)(entity 2))(solid:cylinder。