Computer Aided Design Services Avatar
  1. OMG Specification

Computer Aided Design Services — All Issues

  • Acronym: CAD
  • Issues Count: 16
  • Description: All Issues
Open Closed All
All Issues

Issues Descriptions

CadConnection, CadSystem: Avaliable_models() enhancement

  • Key: CAD12-5
  • Legacy Issue Number: 7140
  • Status: closed  
  • Source: Anonymous
  • Summary:

    Disposition: ?
    OMG Issue No: ?
    Title: CadConnection, CadSystem: Avaliable_models() enhancement
    Source:
    Markus Helmke, Produktionstechnisches Zentrum (PTZ)
    Technische Universität Berlin
    Email: markus.helmke@ipk.fhg.de

    Summary:

    The method "available_models()" provides access to models available to the active CAD System and returns all available models in a list. Up to now the method does not take into account how the models are structured on the server side. When a user selects a model it would be helpful to navigate through the tree structure of the servers file system. A similar problem is the specification of a users file name in that moment when he wants to use "save_model_as()" or "create_model()".
    The proposed methods, data structures and definitions aim to improve navigation capabilities for both systems and users when accessing models. For various reasons a native CAD-system normally is able to access different directories which are presented also to the user. This is to let him structure his work but also in order to offer templates that ease the design process, because in most cases designer aren't starting from scratch, but they are provided with templates that cover predefined parameters or a special design philosophy.
    Assuming a user wants to store, create, or open a model on the (maybe remote) machine running the Cad-Services he expects something like a "FileChooser"-dialog. The method "available_models()" was not designed to support such functionality and therefore needs to be extended.
    The proposed methods allow for implementing the intended functionality because they represent an essential subset of methods needed to do the following:

    • Navigation (get_root_directories(), get_models_and_folders(), get_parent_directory())
    • Create new subfolder (create_new_folder())
    • Providing information to choose a file or folder on the client side (get_models_and_folders())
      The concept provides the possibility not to expose the whole file system to the user by using "root_directories". Every directory can serve as root directory and thus only its subdirectories are exposed to the user. The user starts navigation in the one of the roots.
      The methods were taken from JAVA's abstract class "javax.swing.filechooser.FileSystemView" which serves as "JFileChooser's gateway to the file system" and as such promise to be sufficient. Additionally IWF has implemented against the proposed CAD-Services enhancement with success.

    Resolution:
    ?

    Revised Text:
    The following typedefs, struct and operations are added to the CadConnection module respectively to the CadSystem interface:

    module CadConnection
    {

    struct Path

    { boolean is_dir; // Indicates whether Path represents a file or a directory string path; // Canonical, absolute, and unique path representing a file or // a directory }

    ;

    typedef sequence<string> RootsList;
    typedef sequence<Path> PathList;

    interface CadSystem

    { // Creates a new folder in a given directory. // param parent_dir: The (canonical, absolute, and unique) path of the // directory, in which the folder will be created. This must be either // one of the root directories (see get_root_directories()) or a // directory that exists in one of the root directory's subdirectories // param folder_name: The name of the folder to be created. It must be a // valid and a not already existing name. // raises CadUtility::CadError: If there was an error in creating the // folder. void create_new_folder(in string parent_dir, in string folder_name) raises (CadUtility::CadError); // Returns a list of (canonical, absolute, and unique) pathnames repre- // senting the root directories. In a root directory or in any other // subdirectory, model files can be found. // return: List of pathnames representing root directories. RootsList get_root_directories(); // Returns a list of subdirectories and model files of a given directory. // param directory: (canonical, absolute, and unique) path of the // directory from which to get the list of subdirectories and model // files. This must be either one of the root directories or a subdirectory. // return: A list representing subdirectories and/or model files // of the given directory. // raises CadUtility::CadError If there was an error retrieving the list. PathList get_models_and_folders(in string directory) raises (CadUtility::CadError); // Returns the parent directory of a given directory. // param directory: (canonical, absolute, and unique) path of the // directory from which to get its parent directory. The given directory // should be a subdirectory of one of the root directories. // return: The path of the parent directory. // raises CadUtility::CadError If there was an error retrieving the // parent directory. string get_parent_directory(in string directory) raises (CadUtility::CadError); }

    ;
    };

    Disposition: ?
    Disposition Parameter: ?

  • Reported: CAD 1.1 — Wed, 10 Mar 2004 05:00 GMT
  • Disposition: Resolved — CAD 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

Suggest altering the input parameter CadFeature::ParameterSeq model_params

  • Key: CAD12-2
  • Legacy Issue Number: 5845
  • Status: closed  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    Suggest altering the input parameter CadFeature::ParameterSeq model_params on CadConnection::CadSystem to a CosPropertyService::Properties

  • Reported: CAD 1.1 — Wed, 22 Jan 2003 05:00 GMT
  • Disposition: Resolved — CAD 1.2
  • Disposition Summary:

    This issue was previously (v 1.1) resolved

  • Updated: Fri, 6 Mar 2015 20:58 GMT

altering the use of EntitySeqs to LongSeqs

  • Key: CAD12-1
  • Legacy Issue Number: 5844
  • Status: closed  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    I suggest altering the use of EntitySeqs to LongSeqs - essentially to use Unique IDs as identifiers. [In places like: Model::delete_entity(), EntityGroup::add_entities(), EntityGroup::remove_entities()] I see there 2 main problems: 1. I don't see that it is really neccesssary to use the (in this case Entity objects) CORBA objects to identify an object. unique_id's could always be used. -> Less traffic and a lot easier to map. Besides: how much sense does the UidUnsupported exception make? unique ids can always be created. 2. The required mapping especially on the server side is somewhat tricky and not the fastest. You would have to map the CORBA objects to the implementation objects. Nasty thing to do.

  • Reported: CAD 1.1 — Wed, 22 Jan 2003 05:00 GMT
  • Disposition: Resolved — CAD 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

CadMain::ModelInstance::component()' collides

  • Key: CAD12-4
  • Legacy Issue Number: 6693
  • Status: closed  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    'CadMain::ModelInstance::component()' collides with the new 'component' keyword for IDL from CCM.

    I suggest ro rename it to 'CadMain::ModelInstance::component_model()'.

  • Reported: CAD 1.1 — Thu, 11 Dec 2003 05:00 GMT
  • Disposition: Resolved — CAD 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

CadGeometry::Curve::tessellate()

  • Key: CAD12-3
  • Legacy Issue Number: 5846
  • Status: closed  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    is there any reason, why the double parameter (tolerance) of CadGeometry::Curve::tessellate() is declared as an in parameter and not inout? In other places like CadGeometry::Surface::nurbs_representation() the tolerance parameter is declared inout.

  • Reported: CAD 1.1 — Wed, 22 Jan 2003 05:00 GMT
  • Disposition: Resolved — CAD 1.2
  • Disposition Summary:

    see below

  • Updated: Fri, 6 Mar 2015 20:58 GMT

different tessellation structures for different kind of entities

  • Key: CAD11-7
  • Legacy Issue Number: 5850
  • Status: open  
  • Source: Anonymous
  • Summary:

    There are some different tessellation structures for different kind of entities (geometric and topologic) and some are for both (e.g. EdgeTessellationStruct). Three of the four structs have a obj_ref member with type Object.

    Issues: 1. The type Object for obj_ref is too generic. 2. Some of the tessellation structs are for the use with one single interface (ConnectedFaceTessellationStruct -> Body) while some others are used in more than one interface (EdgeTessellationStruct -> Edge, Curve). 3. In some cases the obj_ref member of a single tessellation struct references a geometric entity (Curve, Surface), in others a topologic entity (Edge, Face, Body)

    Proposed Solution: For each interface which provides tessellation (has a tessellate() method) there should be one corresponding tessellation struct with a obj_ref member of the type of the interface which generated the struct.

    Edge -> EdgeTessellationStruct Face -> FaceTessellationStruct Curve -> CurveTessellationStruct Surface -> SurfaceTessellationStruct Body -> ConnectedFaceTessellationStruct

    It would be much clearer that way and the redundancies pretty few.

  • Reported: CAD 1.1 — Wed, 29 Jan 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

CadBrep::OrientedEdge interface issue

  • Key: CAD11-13
  • Legacy Issue Number: 5878
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    The CadBrep::OrientedEdge interface has two very similar methods to get the Face/OrientedFace which uses the OrientedEdge. That's pretty redundant. Besides: Both methods deliver useful information only when the OrientedEdge belongs to one and only one Face. Otherwise an exception is generated. I don't really see the usefulness of those two method, especially since for many cases there are two Faces for the Edge and one can always traverse there via the EdgeLoop.

  • Reported: CAD 1.1 — Mon, 3 Mar 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

CadBrep module issue

  • Key: CAD11-12
  • Legacy Issue Number: 5877
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    In the CadBrep module there are almost always two ways to traverse the topology: from the top level entities like Body to the underlying entites like Shell, Face, Edge, ... and the other way. For example I can get from Face to the OrientedFace which aggregates the Face or I can ask the OrientedShell in which Body it is contained. This does not make much sense to me. I always thought the topology is more or less hierarchical with Body is composed of OrientedShells which has reference to Shell and so on.
    Unless I am missing something important, it is just some not so small overhead to have all those relations at hand and being uptodate with them. I would place such things in a client for I see it as application specific, if it is neccessary or not.

  • Reported: CAD 1.1 — Mon, 3 Mar 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

Documentation for CadMain::Model::unique_entities()

  • Key: CAD11-17
  • Legacy Issue Number: 5912
  • Status: open  
  • Source: CAxOPEN ( Andreas Korn)
  • Summary:

    2. The Documentation for CadMain::Model::unique_entities() and CadMain::Model::top_level_entities() says the only valid types asked for are geometric entity types but there is only mention and used CadFoundation::Entity (in the doc and in the return types). If this should really be only geometric entities, the return types could be CadBrep::BrepEntity and the documentation should be much clearer on what is allowd and what a invalid type.

  • Reported: CAD 1.1 — Wed, 23 Apr 2003 04:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

CadMain::Model interface issue

  • Key: CAD11-16
  • Legacy Issue Number: 5911
  • Status: open  
  • Source: CAxOPEN ( Andreas Korn)
  • Summary:

    CADServices 1.1
    1. In The CadMain::Model interface there is no clear way to get the DesignFeatures of a Model. The only possible way would be via top_level_entities() or unique_entities(), but these calls are for geometric entities (so it is written in the documentation).
    Proposed Solution: add a call "CadFeature::DesignFeatureSeq design_features()" to CadMain::Model. The DesignFeatures should be more clearly seperated from the BrepEntities as they are to different sights on the same data and should not be mixed per chance.

  • Reported: CAD 1.1 — Wed, 23 Apr 2003 04:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

Data in CadGeometry::EdgeTessellationStuct

  • Key: CAD11-15
  • Legacy Issue Number: 5882
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    I have a problem understanding how to interpret the
    > vertex_number's for
    > the points in CadGeometry::EdgeTessellationStuct. I don't see
    > the need
    > for a indexing here. It is just sequencial. Are there people,
    > who want
    > to do this another way?

  • Reported: CAD 1.1 — Fri, 14 Mar 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

CADServices 1.1 issue

  • Key: CAD11-14
  • Legacy Issue Number: 5881
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    In the PDF document (03-02-02) for the CadServices the return value for CadFoundation::Entity::reference_position is CadUtility::PointStruct, but in the idl files it is CadUtility::PointStructSeq.
    I couldn't verify it against the newest documents (maybe newer than mine), because they were unreachable.
    Besides, the description of this method is not very helpful (at least to me). I have no clue how to interpret it.

  • Reported: CAD 1.1 — Thu, 13 Mar 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

exception CadConnection::BadParameter does not match the method anymore

  • Key: CAD11-9
  • Legacy Issue Number: 5855
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    after changing the fourth parameter of CadConnection::CadSystem::create_model from CadFeature::ParameterSeq to CosPropertySevice::Properties recently, the exception CadConnection::BadParameter does not match the method anymore.
    It should either be changed in a similar manner or kicked out completely (it is only used by create_model).

  • Reported: CAD 1.1 — Tue, 11 Feb 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

method CadMain::Model::unique_ids_to_entities()

  • Key: CAD11-11
  • Legacy Issue Number: 5873
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    The method CadMain::Model::unique_ids_to_entities() can throw the CadMain::NotValidCadType exception but unlike the other methods able to throw this does not get TypeCodes as input. If the exception is there by accident I suggest it be removed.

  • Reported: CAD 1.1 — Thu, 27 Feb 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

description for CadMain::Model::unique_ids_to_entities() is missing

  • Key: CAD11-10
  • Legacy Issue Number: 5872
  • Status: open  
  • Source: CAxOPEN GmbH ( Andreas Korn)
  • Summary:

    In the PDF document for CADServices 1.1 (03-02-02) the description for CadMain::Model::unique_ids_to_entities() is missing

  • Reported: CAD 1.1 — Thu, 27 Feb 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT

Model creation parameters

  • Key: CAD11-5
  • Legacy Issue Number: 5843
  • Status: open  
  • Source: NASA ( Russ Claus)
  • Summary:

    Where can one get the CadFeature::Parameter instances from to use in CadSystem::create_model() ?
    As far as I know, the instance of a idl interface can only be created on the server (in a get method or in a factory) and I can see no way of creating empty CadFeature::Parameter instances.
    Besides, why was CadFeature::ParameterSeq used on Model level (CadMain::Model::create_model(), CadMain::Model::get_parameter_set()) and not as in other places CosProperyService::Properties? It is not clear to me, what information is supposed to be behind these parameters.

    This looks like a valid concern. We can fix this by using either CosProperyService::Properties in place of the CadFeature::ParameterSeq or we can created a CadFeature::ParameterFactory.

    I suggest the use of Properties.

  • Reported: CAD 1.1 — Tue, 21 Jan 2003 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:58 GMT