CA2240714A1 - Graphical browser - Google Patents
Graphical browser Download PDFInfo
- Publication number
- CA2240714A1 CA2240714A1 CA002240714A CA2240714A CA2240714A1 CA 2240714 A1 CA2240714 A1 CA 2240714A1 CA 002240714 A CA002240714 A CA 002240714A CA 2240714 A CA2240714 A CA 2240714A CA 2240714 A1 CA2240714 A1 CA 2240714A1
- Authority
- CA
- Canada
- Prior art keywords
- model
- features
- feature
- graphical
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/902—Application using ai with detail of the ai system
- Y10S706/919—Designing, planning, programming, CAD, CASE
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/964—CAD or CAM, e.g. interactive design tools
Abstract
A graphical browser displays and manipulates a computer model by accessing data indicative of features and geometric characteristics of the model, presents graphical data indicative of features of the model, and allows a user to graphically manipulate features to provide corresponding changes to the model. The data may be accessed by interfacing to feature data and geometric data of the model. Different icons, indicative of different types of features of the model, may be displayed. The icons may be ordered and connected to indicate an order of creation of features of the model and/or presented in a way to indicate interdependency of features.
Description
GRAPHICAL BROWSER
Techni~l Field This application relates to the field of computer-aided design and more particularly to t_e field of accessing and manipulating data describing a model constructed using co~ uLel--aided design.
Back~round of The Invention Col~ uleL-aided design software can be used to construct and manipulate computer drawings of objects referred to as "models". The user is presented with a display of the model on the computer screen and manipulates the model using keyboard comm~n~ls, a mouse/cursor combination, and ot_er various input means.
Changes to the model are reflected in the screen display of the model as the user - makes the changes or, alternatively, in response to the user issuing a specific command to update the screen display of the model. In either case, the screen display of the model serves as the main source of model information to.the user and as the user's reference for inputting and ch~nging features of the model.
A system for graphic image generation is described in European Patent Application No. 92307377.9, filed 8 December 1992 by Applicant Xerox Corporation (hereinafter "EP 0 528 631 A2"). Application EP 0 528 631 A2 is directed to a graphics editor that generates an appearance construction graph, including nodes representing image fragments, image transformation operations, and outputs that can be displayed and manipulated to constrlct and edit complex images.
Application EP 0 528 631 A2 does not disclose a highlighting feature allowing the user to correlate faces or portions of a model with specific features or to cause both a se~ècted feature and associated edges in a model to be highlight~-l - - As-modeling software becomes more powerful, it also becomes more complex. This increase in complexity increases the difficulty of use of the modeling software. If the software becomes too complex, then the user will have a difficult time making modifications and/or determining critical information about the model, especially since the screen display of the model is the user's main source of information and point of reference for facilit~ting input. This problem becomes more acute when the model is a three-dimensional model since, depending on the 1~
AME~IDED SHEET
t CA 02240714 1998-06-16 modeling software and the nature of the model, it is som~tim~s difficult, if notimpossible, to see the entirety of the model at any one time.
One way to address the increasing complexity of modeling software is to provide alternatives to the traditional techniques for presenting the model information to the user that allow the user to manipulate the model information.U.S. Patent No. 5,006,991 to Ohcosh'i et al. discloses a system for graphically chef kjng interference between stationary and moving objects. A desig~ layout isgraphically displayed and an object or a person is moved through the design layout by the graphical display device. Column 9, lines 64-66 indicate that along with displaying the design layout, the system can display a chart showing connectionsand positions of objects in the design layout.
~ .
. .
ENDED S,!tE~
-Although the Ohcoshl et al. patent addresses a specific problem associated with modeling in the specific situation discussed in the patent, it does not address the general problem of modeling software complexity and unwieldiness and it doesnot provide a general alternative technique for accessing and manipulating models.
5 Accordingly, it is desirable to provide an alternative and effective technique for presenting and manipulating model data that allows the user to easily make changes to a model and that presents model information to the user that is useful although not apparent from simply viewing the model on the screen display.
Snmm~ry Of The Invention 10The present invention includes a graphical browser that displays and manipulates a computer model by accessing data indicative of features and ~ geometric characteristics of the model, presents graphical data indicative of features of the model, and allows a user to graphically manipulate features to provide corresponding changes to the model. In the present invention, a computer-aided 15 design system for displaying and manipulating a computer model presents the colllpuler model in a modeling portion of a computer screen, presents graphical data indicative of features of the model in a graphical browser portior~ of the computer screen, hig,hliohts a subset of the modeling portion in response to a user selecting a corresponding subset of the graphical browser portion, and highli,ohts a subset of the 20 graphical browser portion in response to the user selecting a corresponding subset of the modeling portion. The data may be accessed by interfacing to feature data and ~geometric data of the model. Different icons, indicative of different types of features of the model, may be displayed. The icons may be ordered and cormected to in-lic~ an order of creation of features of the model. The icons may be 25 presented in a way to indicate interdependency of features.
Graphically manipulating the features may include altering the ordering of the features of the model, selectively suppressing certain ones of the features, or rolling back the model to a particular feature, so that that particular feature and subsequent features are suppressed. Graphically manipulating the features may also 30 include stepping through each feature of the model, one at a time, to unsuppress each feature on the model, one at a time. Presenting graphical data may also include presenting various alignment features of the model.
j4~EN~ , S~
The graphical browser provides the user with a powerful technique for creating and editing models. In the case of three dimensional models, the graphical browser provides the user with simlllt~n~ous access to all of the features of the model even if all of the model features cannot be seen all at the same time in aS screen display of the model. The data manipulation features of the graphical browser allow the user to easily enter and edit model data in ways that would be~liffiClllt or cumbersome if the user were forced to use only the screen display of the model as an input reference. ~ighlighting allows the user to correlate faces or portions of the model with specific features, and to cause both a selected feature and 10 the associated edges in the model to be highlighted. In this way, the user can correlate particular features with specific portions of the model.
;
Brief Description Of Drawings FIG. lis a schematic diagrarn of a computerized modeling system used to provide co"lL,uLer-aided design and to provide the graphical browser according to 15 the present invention.
FIG.2 illustrates a CRT display of the system of FIG. 1 showing a modeling portion and a browser portion of a CRT display window.
FIG.3 illustrates the window of FIG.2 with hidden subfeatures of the features screen in the browser portion.
FIG.4A is a window showing a first model portion and a first browser portion.
- FIG.4B is a window showing a second model portion and a second browser portion.
~G. S is a window showing a model portion and a model portion with a 25 model having dimensions thereon.
FIG.6is a window showing a model portion and a browser portion with a first pop-up menu superimposed thereon.
FIG.7is a window showing a model portion and a browser portion and illustrating a first option of the first pop-up menu.
FIG.8is a window showing a model portion and a browser portion and illustrating a second option of the first pop-up menu.
FIG.9is a window showing a model portion and a browser portion and illustrating a third option of the first pop-up menu.
h~c FIG. 10 is a window showing a model portion and a browi,Gr portion and illustrating a fourth option of the first pop-up menu.
FIG. 11 is a window showing a model portion and a browser portion having a second pop-up menu superimposed thereon.
FIG. 12 is a window ilh~ g an option of the second pop-up menu.
FIG. 13 is a window showing a model and illustrating a highlip~ht option of the graphical browser.
FIG. 14 is a window showing a model and illustrating a rollback option of the graphical browsel.
FIG. 15 is a window showing a model and illustrating an insert option of the graphical browser.
FIG. 16 is a window ill~lqt~ting an option for stepping fo-w~.l through features of the graphical blow~el.
FIG. 17 is a window Cl)nli1it-il-g a model portion and a br~ portion and illllstr~ting an option for showing feature properties.
FIG. 18 is a window col.~ -il-g a model portion and a browser portion and illustrating an option for showing m~f~.ling errors.
FIG. 19 is a window c~.~.t;1i..il-g a model portion and a browser portion and illll~trating an option for showing ~lignmf~nt features of the model.
FIG.'s 20A and 20B are windows illllst~ting a sorting option of the graphical bl~wsel using various criteria for sorting.
FIG. 21 is a data flow diagram ilhl~ g inttorf~t~.ing and data eYch~nge between a conventional modeling program and the graphical br~
FIG. 22 is a flow chart showing overall operation of the gr~phi~l bl~w~el.
FIG. 23 is a flow chart showing event handling for the graphical bn~wst;l.
FIG. 24 is a flow chart showing the drag and drop operation of the graphical browser.
FIG. 25 is a flow chart showing processing when a user clicks the right mouse button while the mouse cursor is in the graphical browser portion of the window.
FIG. 26 is a flow chart showing processing when a user single clicks the left mouse button while the mouse cursor is in the graphical browsel portion of the window.
. . ~.
.. . ~ t ~ _~ j . 4-FIG. 27 is a flow chart showing pr~cec~ing when a user double clicks the left mouse button.
FIG. 28 is a fiow chart showing processing when a user clicks the right mouse button while the cursor is in the modeling portion of the window.
r)P~il~l Descli~?lion of the Pler~lled Embodiments ~ Referring to FIG. 1, a collly~ ;7~1 modeling system 30 inr1~ldes a CPU
31, a CRT 32, a keyboard input device 33, a mouse input device 34, and a storagedevice 35. The CPU 31, CRT 32, keyboard 33, mouse 34, and storage device 35 are conventional, commonly available, Co~l~puler hal.lw~e devices such as those provided with the Alpha XP150 coll-~ulel system m~nllf~rhlred by Digital Equipment Col~ol~lion of Maynard, Mass. The mouse 34 has conventional, user-~ct--~t~hle, left and right buttons. Other a~ iate colllpuLel h~h-lw~e platformsare suitable as will become a~alc -t from the fli~c~ n which follows.
Cc,~ uLel-aided design software is stored on the storage device 35 and is loaded into and eYecuteA by the CPU 31. The software allows the user to create and modify a three-~im~ncional model. The CPU 31 uses the CRT 32 to display a three--limPn~ional model and other aspects thereof as described in more detail below. A user actuates the keyboard 33 and the mouse 34 to enter and modify data for the three--lim~n~ional model. The CPU 31 accepts and processes input from the keyboard 33 and the mouse 34. Using the three-~1im~n~ional modeling software, the CPU 31 ~-~,cesses the input along with the data associated with the three-~1imPn~it)n~l model and makes colles~onding and appr~pliate changes to thedisplay on the CRT 32. In addition, data corresponding to the three-llimPn~ionalmodel created by the user can be written from the CPU 31 to the storage device 35. Although the rem~in-~P~ of the ~ c~ ion relates to use of the invention withcol..~u~er-aided design software for providing three-tiim~-n~ional models, it will be appreciated by those of ~illillaly skill in the art that the invention could also be used in conjunction with any co~ uLer-aided design software, including software used to generate two-~im~n~icnal models.
Referring to FIG. 2, a display on the CRT 32 is shown in detail and incl~lcles a window 40. The window 40 is a conve-ntion~l screen display window which can be plogldl.llned by one of ~.rlinaly skill in the art using conventional, commerc;ally available, soflw~e progr~mming tools, such as those available from Microsoft Cul~oiaL;on of Redmond, Washington.
The window 40 in~h1des two portions, a mocl~.ling portion 42 and a graphical browser portion 44. The modeling portion 42 contains a three-~1imPn~ional model 46 that can be constructed and morlifiP~I by the user in a conventional manner. The three--limPn~ional model 46 can be displayed in a conventional manner using solid lines and dashed lines to show visible edges andhidden edges, respectively, of the three--limPn~ional model. The graphical browser portion 44 aids vi~ 1i7~tit-n and manipulation of the model portion 42.
As described in more detail below, the graphical bl~w~el portion 44 can be used to vi~ 1i7P and/or edit feature types, names, model structure, relationships between r~Lulc;s, order, dates of creation and mo-lifi~tinn of features, feature~u~lession, feature visibility and other similar attributes of the model 46.
The graphical browser portion 44 shows a list of re~lulc;s 48 cont~ining aspects or components of the three--lim~-n~innal model 46. The r~aLules 48 are represented in a way that i1111~tr~t~s that certain ones of the r~ulc~s 48 are in fact comprised of lower-level r~aLul~s. For PY~mr~le, the feature labeled "Part3" on FIG. 2 is comprised of the r~aLu~es labeled "Planel", "Plane2", "Plane3", "Extrusionl", "Filletl", "Cutl", and "Cut2". Inaddition, thefeaturelabeled "Extrusionl" is further comprised of a ~ul~r~lure labeled "Sketchl" and the subfeatures labeled "Cutl" and "Cut2" are further comprised of ~ubfeatules labeled "Sketchl" and "Sketch2", respectively. The features of the feature list 48 are ordered from top to bottom to show the order of entry by the user.
l?Pfçrring to FIG. 3, the window 40 shows the r~Lul~ list 48 with the subfeaLul~ thereof hidden. In that case, note that the feature labeled "Part2" is connected with a hnri7ont~1 line to a box 52 having a plus sign therein and the feature labeled "Part3" is connected with a horizontal line to a box 53 having aplus sign therein. The plus signs in the boxes 52,53 in~ tP that particular features ~tt~ hyl thereto via a horizontal line are actually comprised of one ormore subfeatures that are not shown in the feature list 48. The user can modify the feature list 48 of FIG. 3 to provide the ~et~i1~1 feature list 48 as shown in FIG. 2 by using the mouse 34 to click on the boxes 52, 53. Once the reiLLul~s have been eYp~nf~ed to the subfeatures thereof, the boxes 52,53 contain a minus sign in-1i(~ting that the features have been eYr~n~, as shown in FIG. 2.
FIG. 4A and FIG. 4B illu.str~t.o the effects of c1~ g;~ the order of features in a feature list. FIG. 4A shows a window 60 having two portions, a modeling portion 62 and a graphical l~ wsel portion 64. The modeling portion 62 cont~ine ~ a three-rlimpneional model 66 that is constructed and modified by the user. The graphical blvwsel portion 64 inc~ {1es a feature list 68 showing aspects and components of the model 66. Similarly, FIG.4B shows a window 60' having a modeling portion 62' and a graphical blow~cl portion 64' wherein the model portion 62' includes a three--lim.oneional model 66' and the graphical brow~el portion 64' inc1~1des a feature list 68' showing aspects and co~ ents of the model 66'.
A portion 69 of the feature list 68 shows two feaLulcs labeled "Rear Boss"
and "Rear Cut". In the feature list 68 of FIG. 4A, the Rear Boss feature precedes lS (i.e., is higher than) the Rear Cut feature. Accordingly, a rear portion 72 of the model 66 shows a rear boss 74 that has been cut in the middle thereof by the Rear Cut feature. Therefore, the rear boss 74 of the model 66 is in two sep~ parts, one on each lateral side of the model 66.
The feature list 68' also has a section 69' c~ ini,~g Ç~lul~s labeled "Rear Cut" and "Rear Boss". However, in the case of the feature list 68' of FIG. 4B, the section 69' shows that the Rear Cut feature precedes (i.e., is higher than) the Rear Boss feature. Accordingly, a rear portion 72' of the model 66' shows a rearboss 74' that has not been cut, but in.ett~<l, extends continuously from one lateral side of the model 66' to the other lateral side of the model 66'. This occurs because the order of rea~ulcs shown in the section 69' intii~tto.e that the rear cut is L~curu~ ed prior to adding the boss 74' to the model 66'. Therefore, the rear cut, which comes before the addition of the rear boss 74', has no effect on the rear boss 74' in the model 66'.
The section 69 of the feature list 68 in FIG. 4A is modified to provide the section 69' of the feature list 68' of FIG. 4B using a technique called "drag and drop". Drag and drop is a conventional technique that involves using the mouse 34 to move an icon associated with a feature to a dirrel~cnt location in the feature list. The user places the mouse cursor over the icon of the feature to be moved, clicks and holds down the left button of the mouse 34 while moving the mouse cursor and the feature icon to the desired location, and then releases the but~on of the mouse 34. Alternatively, the user can achieve the same results by employing a similar conventional technique, called "cut and paste", to highlight one or moreS icons, execute a "cut" or "copy" op~r~tion, select an insertion location, and execute a "paste" op~tion. ~m~1~m~nt~tion of the drag and drop option and the cut and paste option is described in more detail hereinafter.
Note that the section 69 of the feature list 68 in FIG. 4A can be morlifieA
in one of two ways to provide the section 69' of the feature list 68' in FIG. 4B.
The user can use the mouse 34 to drag and drop (or cut and paste) the Rear Cut ~eature so that it precedes the Rear Boss feature as shown in the section 69'.
~lt~rn~tively, the user can use the mouse 34 to drag and drop (or cut and paste)the Rear Boss feature so that it comes after the Rear Cut feature as shown in the section '69' .
Referring to FIG. 5, the rear cut feature discussed above in connection with FIGS. 4A and 4B is shown in an ~ n~1~d form as being comrnC~ of a subfeature labeled "Sketch9". Note that the feature list 68 of FIG. 5 shows a box conn~ct~l to the left of the Rear Cut feature co~ g a minus sign rather than a plus sign, as shown in FIG.'s 4A and 4B. As ~licc11c~1 above in conn~ctic)n withFIG.'s 2 and 3, the minus sign in the box inf~ t~.s that the feature conn~t~A
thereto has been eY~n-lsd to show ~.ubreal~l~s thereof.
A cursor arrow 76 is moved by using the mouse 34 in a conventional manner so that the end of the cursor arrow is coinçi~lent with an icon portion of the Rear Cut feature in the feature list 68. Once the cursor arrow 76 is placed on the icon for the Rear Cut feature, the user can double click the left button of the mouse 34 to modify the mo~l~ling portion 62 so that tlim~ncions of the Rear Cut feature are s-1p~rimI)osed onto the three--lim~ncional model 66. Once the ~lim(~ncions are visible, the user can double click the left button of the mouse 34 to modify the ~lim~ncil~ns In a similar .I~uuler, moving the cursor arrow 76 onto the icon of other ones of the features from the feature list 68 and double ç1ickin~ the left button of the mouse 34 will modify the drawing portion 62 to superimpose ~imencions of the a;!i~oci~ed feature onto the model 66 or to l?elrol--- some other .opliate action, as described in more detail h~ arL~l. A single click of the left button of the mouse 34 will high1ipht the feature from the feature list 68 and hi~hlight the corresponding portion of the drawing 66.
l2ef~Prrin~ to FIG. 6, a conventional pop-up menu 80 is provided by clicking the right button of the mouse 34 when the cursor 76 is placed on a particular one of the f~;alu-~s from the feature list 68. The pop-up menu 80 of FIG. 6 results when the right button of the mouse 34 is clicked while the cursor76 is placed on the Rear Cut feature. The pop-up menu 80 shows various options inclllrling an Edit Sketch option, an Edit Definition option, a Parent/Child option, and a Properties option. The user can select one of the options of the pop-up menu 80 in a conventional manner using the mouse cursor 76 and the right button of the mouse 34.
l~Pferring to FIG. 7, the effect of selecting the Edit Sketch option of the pop-up menu 80 of FIG. 6 is illu~tr~tP,cl. Note that the rear cut 72 in the model 66 is made by first providing a sketch 82 and removing m~tPri~l in the model 66 c~,llc;~onding to the sketch 82 projected a finite ~ nce along a perpendicular axis thereof. Accordingly, sP.lPcting the edit sketch option shows the sketch 82used to make the rear cut in the model 66. Once this option is sP1~cte~i, the user can modify the (1im~n~ions of the sketch 82 by moving the cursor 76 to seJert~l points of the sketch 82 and ~hrinking or enlarging one or more rlim~n~ ns of thesketch 82 in a conventional manner. Note that modifying the sketch 82 could change the location and amount of m~teri~l removed from the model 66 by the Rear Cut feature.
Referring to FIG. 8, a window 84 is presented when the user selects the edit ~efinition option from the pop-up menu 80 shown in FIG. 6. The window 84 shows various p~r~mçtprs that are part of the definition of the Rear Cut feature.
Different types of features will show dir~elelll types of windows when the edit definition feature is splpctp~1. The specific parameters that are provided for each type of feature is a design choice based on a variety of functional factors f~mili~r to one of o-dillaly skill in the art.
The user can inter~f t with the window 84 to modify elem~nt~ therein in a conventional manner using the mouse 34 and/or the keyboard 33. For example, the user can modify the Depth element of the window 84 by pressing the right _g_ button of the mouse 34 and dragging the cursor 76 over the text associated with the Depth elemPnt to highli,~ht the text as shown in FIG. 8. Af~ w;~d, the user can use the keyboard 33 to type in a new value for the Depth ~lem.ont Referring to FIG. 9, a window 86 is plt;se,ll~d when the user selects the Parent/Child option from the pop-up menu 80 of FIG. 6. The Parent/Child option provides information about the parent and children rel~tion~hips of the feature associated with the pop up window 80, in this case the Rear Cut feature. A
parent-child relationship between ~eaLul~s ~lc~ses dep~n-l~n~y. Feature B is a child of feature A if B cannot eYist without A. For eY~m~le, consider a block feature A and a hole feature B drilled into the side of the block A. Hole B is achild of block A and block A is a parent of hole B. If block A is elimin~t~, hole B must also be ç~imin~t~
The window 86 has a parent section 88 and a children section 90. The parent section 88 lists all of the features that are parent r~alulc;s of the Rear Cut 1~ feature. In the example shown in the window 86, the parent of the Rear Cutfeature is the Sketch9 feature. Note that if the Sketch9 feature is eli~in~A, then the Rear Cut feature would also be eli~ ~ since the rear cut is made by removing m5Jtl-.ri~l from the model 66 ~.c~onding to the Sketch9 feature projected a finite rli~t~nce along a perpen~ ,ul~r axis thereof. The children portion 90 shows all of the children of the Rear Cut feature. In this particular in~t~n~e, the Rear Cut feature has no children. The,c~le, P,limin~ting the Rear Cut feature will not n~..e~it~t~. elimin~tl'cn any other features of the drawing 66.
The ability to view the parent and child r~l~*nn~hips of each of the features is very useful in that it allows the user to determine the effect of modifying or ~,liminzl*ng a particular feature. In the .oY~mpl~ of FIG. 9, the information in the parent/child window 86 in~ t~,s that the user can t~ in~l~ the Rear Cut feature without eli -~ l;ng any other ~eaLur~s of the drawing. The window 86 also in~ tF~s tha~ elimin~ting the ~ketch9 feature will ne~ee~ çlimin~*~n of the Rear Cut feature.
' Referring to FIG. 10, a window 96 is provided in response to the user selecting the Properties option of the pop-up menu 80 shown in FIG. 6. The plopellies shown in the window 96 are p,~;llies of the Rear Cut feature. Just aswith the window 84 of FIG. 8, the user can modify items in the window 96 using the mouse 34 and/or the keyboard 33. Note that ~lirrcle-~ t,vpes of features have different types of pl~ellies and so would probably provide a window dirr~;lcnt than the window 96 shown in FIG. 10. The specific ~ ~lLies that are shown for each type of feature are a design choice based on a variet,v of functional factors f~mili~r to one of o~dill~uy skill in the art.
~ Referring to FIG. 11, a pop-up menu 100 is gem,l~Led when the user places the cursor 76 over the Fillet feature and presses the right button of the mouse 34.
A comr~ri~on of the pop-up menu 100 and the pop-up menu 80 of FIG. 6 illustrates that dirrel~nt pop-up menus can be used for different feaLures. The pop-up menu 100 for the Fillet feature is different than the pop-up menu 80 for the Rear Cut feature. Each dirrcl~ t type of feature can have a different pop-up menu associated th~ vilh. The type, number of entries, and nature of entries of a pop-up menu is a design choice that ~lepPn~l~ on a variety of functional factors f~mili~r to one of or~inal~y skill in the art.
Referring to FIG. 12, a window 106 is provided in response to the user selecting the Properties entry in the pop-up menu 100 of FIG. 11. Note that the window 106 is dirfer~nl than the window 96 of FIG. 10 which is provided when the user selects the Properties option from the pop-up menu 80 of FIG. 6 for theRear Cut feature. This il1-lstr~tPs that even pop-up menu entries having the same name can differ for each feature in the feature list 68. The selection of which elements to provide in the feature list window 106 is a design choice that depPn~ls on a variety of functional factors f~mili~r to one of ordinar,v skill in the art.
Referring to FIG. 13, the drawing portion 62 is shown with the end of the cursor 76 coincident with the rear boss 74 portion of the model 66. Edges of therear boss 74 are shown hi~hlighted in~ ting that the user has single clicked theleft button of the mouse 34 while the cursor 76 was in the position shown in FIG.
13. When this occurs, the Rear Boss feature from the feature list 68 is also highlightPcl by highli~hting the associated text of the feature and çh~n~ing the~ color of the icon. The icon color change is illustrated in FIG. 13 as a general 3Q darkening of the icon while text hi~h1ighting is shown by drawing the outline around the text of the feature. Text hiFhlighting can also be provided by inverting the text in a conventional manner.
~igh1ighting allows the user to correlate faces or portions of the model 66 with specific features in the feature list 68. In addition, the user can move the cursor 76 over a particular feature in the feature list 68, click the left button of the mouse 34 one time, and cause both the SPlP~t~l feature in the feature list 68 and the associaled PAges in the model 66 to be highlipht~yi. In this way, the user can correlate particular rcaLul~_s from the feature list 68 with specific portions of the model 66.
Referring to FIG. 14, a rollback option is illustrated wherein Çealures of ~he model 66 that follow a particular feature are not shown in the drawing portion 62.
FIG. 14 shows the cursor 76 being placed on the Rear Cut feature of the feature list 68. The model 66 is shown with every feature from the Rear Cut downward (i.e, after the Rear Cut feature) ç1imin~t~1 That is, the model 66 is shown without the Rear Cut, Front Cut, Front Drill, Rear Drill, and Fillets reaLul~ s from the feature list 68. A model can be rolled back to any feature shown in the feature lS list 68. Rolling back is useful for simplifying and debugging the model 66.Referring to FIG. lS, an insertion option is ill~ P<l wherein a new feature can be inserted at the rollback point shown in FIG. 14. In this case, the cursor 76 is pointing to a new feature labeled "Holel". A hole 110 on the model 66 illll~t~tPs the Holel feature of the feature list 68. Note that the rçm~in~ier of the feaLulcs from the feature list 68 remain ~u~ ssed in FIG. lS in the same wayas the features are ~u~rcssed in FIG. 14.
Referring to FIG. 16, a stepping option is illustrated wherein the user can step one feature at a time through the rollback state in order to cause reatures to reappear, one at a time, in the model 66. As shown in FIG. 16, the cursor 76 hassP]ectç(l the Front Cut feature from the feature list 68. Accordingly, the model 66 is in a state that is rolled back to prior to insertion of the Front Cut so that the Front Cut, Front Drill, Rear Drill, and Fillets r~Lu.~s are not shown on the model 66. Note that in this state, the rear cut 72 is shown in the model 66. Note alsothat the hole 110 is only partially shown since a portion of the hole 110 and a portion of the rear cut 72 overlap. In addition, unlike FIG. lS, the hole 110 is not shown in wire frame since the Holel feature is not selected from the feature list 68, as was the case in FIG. lS. Note that rolling back and stepping through the feature list 68 one feature at a time can be an efficient way to simplify and debug the model 66.
l~P.fçrring to FIG. 17, an option for ~u~ esiaion of a single feature is etr~tPd A dialog box 112 shows the cursor 76 being used to select su~prGssion of the Rear Cut feature. The model 66 shows all of the realurcs in the feature list 68 except the ~u~yrcssed feature, the Rear Cut feature. Note that ~ plc~sion of a single feature, as illlletr~tP~ in FIG. 17 is different than rolling back the model 66 as shown in FIG. 14 because the model 66 shown in FIG. 17 contains all of the features in the feature list 68 except the ~u~cssed feature (Rear Cut) while themodel 66 shown in FIG. 14 contains only those features of the feature list 68 which precede the Rear Cut feature. That is, the model 66 of FIG. 14 does not show the Front Cut, Front Drill, Rear Drill, and Fillets features while the model 66 of FIG. 17 does show those features. The ability to ~U~ 5S a single feature can be useful in simplifying and debugging a model.
1~ Note that ÇeaLulGs similar to the roll back, su~lc~ion, insertion, andstepping option illustrated in FIG.'s 14-17 are known in the art. However, implçmPnting these options using the feature list 68 f~ tes ease of use and vi~ li7~tion by the user who, with only the modPling portion 62 visible, would likely be reduced to guessing as to the ordering of r~lulGs and the effect of, say, rolling back to a particular one of the features.
l?~ferring to FIG. 18, a dialog box 114 reports an error in ~e Rear Drill feature of the feature list 68. The error was artificially created by e~cp~nrlin~ the ~limen~ ns of the Rear Drill feature to beyond the size of the entire model 66.
Note that in addition to reporting the error in the dialog box 114, the icon associated with the Rear Drill feature in the feature list 68 is highlighted, thus providing the user with a visual l~ sent~tion in the feature list 68 showing thesource of the error in the model 66 that caused the dialog box 114 to be generated.
Referring to FIG. 19, the model 66 is illustrated with a shaft 116 inserted in a front hole of the model 66. In order for the shaft 116 to remain L,lo~elly inserted into the front hole, it is ç~Pnti~l that the relative ~lipnment of the shaft 116 and the rem~in~lPr of the model 66 remain constant irrespective of any changes in c-rient~tion of the model 66. That is, moving the shaft 116 should also cause the rem~in-1Pr of the model 66 to move the same amount. Otherwise, the shaft 116 will not m~intzin Alignm~.nt in the front hole of the model 66 as shown in FIG. 19. Accordingly, when the shaft 116 is created, the user can specify specific ~lignmPnt between the shaft 116 and the model 66. In FIG. 19, the ~lignmPnt of the shaft 116 is constrained two se~>al~Lle ways: the bottom face of the shaft 116 is aligned with the bottom face of the boss located in the front of the model 66 and the outside face of the shaft 116 is aligned with the inside face of the hole through which the shaft 116 is placed. These two sep~r~tP. ~lignmPnt.~ are shown in the feature list 68 as "Align1" and "Align2" reaLules. Note that the general technique of z~ligning models are known to one of ordi~ y skill in the art.
The user may be inlele~led in seeing which faces of the shaft 116 and the model 66 are ~ ned The user can do this by placing the cursor 76 over one of the aligned features in the feature list 68 and clicking on the left button of the mouse 34. ~.lil~king on the left button causes the feature in the feature list 68 to be highlight.oA and causes the faces which are aligned to also be highlight~l in the model portion 62. For example, as shown in FIG. 19, the user has clicked the left button of the mouse 34 on the Alignl feature in the feature list 68 and caused the outside circumrel~el.Lial face of the shaft 116 to be hi~hlipht~ and has caused the inside face of the hole through which the shaft 116 passes to also be highliphtçci The ability to high1ight faces that are aligned is useful in keeping track of various ~lignmf~nt. constraints of a model being constructed by the user.
R~ferring to FIG. 20A, a window 130 shows the list of r~alu~s from the feature list 68 along with three columns 132-134 which show an amount of memory required to store each of the features, date of last mo lifi~tion of each of the features and a time of mo~ tiQn of each of the realult;s, le,~Li~ely. The window 130 r~lcsenl~ a different way to present information about r~lul~ s in the feature list 68.
Referring to FIG. 20B, a window 140 also shows r~Lult;s from the feature list 68. In addition, the window 140 has three columns 142-144 similar to the columns 132-134 of FIG. 20A. Note that the ordering of the featlll~s in the window 140 is by the amount of memory used to store each feature shown in the column 142. The feature which requires the least amount of memory storage is shown at the top of the list followed by the feature requiring the next most amount of memory storage and so forth until the feature at the bottom of the list requires the ~edle~l amount of memory storage. FIGS. 20A and 20B illustrate that the features of the feature list 68 can be sorted and presented in any convenient manner that f~ tPs use and access by the user. It would have also been possible to show the realules of the feature list 68 being sorted by any other criteria inclu-1ing, for example, being sorted in alphabetical order by feature name.
Referring to FIG. 21, a data flow d;agram 200 i~ s intPrf~ing between graphical browser software 204 and a mo~Pling program 206. The graphical browser 204 can be implemPnteA in conjunction with almost any co.n~uLer modeling program in a manner described in detail below. The graphical blvw~el 204 conducts ope~ti-)n~ on the data of a modeling L~rvgldln to provide the functionality illustrated above. Accordingly, the graphical bl'VW~. 204 U~ldtCs ess~nti~lly independently of the executable code of the mod~ling program.
Interfacing a conventional, generic, cv.l-pul~i modeling program with the graphical browser consists e~nti~lly of interfacing the modeling ~)lV~,ldlll with the graphical brvwsel to provide the graphical browser 204 with access to the modeling data ofthe modeling plU13,1'all~. Details of this intPrf~c~, inclnrling plc~r~ d data fcllllals, are described in detail below.
The modeling plV~ lll interface 206 incl-ldes data used by the graphical bl~w~el 204 to pelrc,llll the operations illustrated in FIG.'s 1-20 and discussed above. The interface data incl~ldes feature data 208 and geometric data 210. Thefeature data 208 contains a list of the features (e.g., planes, extrusions, lines, et cetera) of the model. The feature data 208 is implem~ntecl using conventional cv".~ule~ data storage means and is constructed/modified as the user creates andmodifies the object being drawn.
The geometric data 210 l~r~senls colll~uk;, data (stored by conventi~ n~l means) indicative of the faces, edges, vertices, surfaces, curves, points, and other low level geometric char~c tPri.~tics of the model. The modeling program can usethe geometric data 210 to display the model on the screen.
- A rebuild engine 212 converts the feature data 208 to the geometric data 210. The rebuild engine 212 is executable code that converts each elem~nt of thefeature data 208 into cvllc~onding edges, faces, vertices, et cetera of the geometric data 210. The rebuild engine 212 also provides connections data 214 in~ ting forward and backward connections between features and geometry.
That is, the connPction~ data 214 contains entries for each feature in the feature data 208 in~ ting the particular faces, edges, vertices, et cetera that C~ spolld to each of the low level features of the geolll~L-y data 210. In addition, the connPction~ data 214 also contains inrollllatioll that relates each entry in thegeometric data 210 with one or more r~atur~s in the feature data 208. Using the connections data 214, it is possible to correlate each feature in the feature data 208 with the resllltin~ geometric data 210 and it is possible to correlate each entry of the geometric data 210 with features in the feature data 208.
The feature data 208, geometric data 210, rebuild engine 212, and conn~o~tion~ data 214 can be imrlemPntPcl in conjunction with the modeling program in a variety of conventional manners in order to provide the modeling program interface 206. One example of this type of modeling data storage/pr~sentAti~-n/~;ollv~l~ion is found in a publication titled "GP~mP~tric Modeling" by Michael E. Mortenson, copyright 1985 and published by John Wiley & Sons, Inc. of New York, New York, ISBN 0-471-88279-8. It is also possible to implement the modeling program interfA~ e 206 in a variety of other conventional m~nnPr.~, provided that the feature data 208, geometric data 210, and connections data 214 are available for use by the graphical browser 204 to provide the functionality described below in connection with the detAil-P~ cu~ n of the graphical browser 204.
Note that various ones of the options, such as feature :~u~?plession, rolling back, and feature insertion, can be implemPntP~l in conjunction with a modeling in a variety of conventional manners. For example, feature ~u~ession and rolling back can be implemented by having a data field for each feature in~ ting whether the feature is ~u~ressed. If the graphical browser 204 writes to the field to in~lir~tP that a particular feature is suppressed, then the rebuild engine 212 treats that feature as if the feature does not exist, thus ~u~ ing generation ofcorresponding geometry data 210 and modifying the display of the model accordingly.
The graphical browser 204 includes a selector/highli~ht.or code module 220, a drag/drop manager code module 221, a right button pop-up handler code module 222, and an activation handler code module 223. The code modules 220-223 interact with the modeling program interfA- e 206 by receiving and .sP-n-1ing data thereto. Operation of the code modules 220-223 is described in more detail below.
The code modules 220-223 interact with a visual tree control code module 228. The visual tree control module 228 is a commercially available sor~wal~
package, is provided by Microsoft Corporation of l~e~lmnn-~, Washington, that ~ h~ncl1es the graphical browser user intPrf~- e in a manner described in more detail below. ~pecific aspects of the user interf~e illustrated in FIG.'s 1-20 and not discussed below are provided by the visual tree control module 228.
The graphical bl~lw~ 204 also includes mapping data 230 that coll~lak;s various feature types and ch~cterictics thereof. The mapping data 230 inclu-lPs an icon type to feature type map which correlates specific types of features (e.g., planes, fillets, et cetera) with ~ific. icons therefore that are shown on the graphical browsei screen. ~ mI~lPs of different types of icons for dirrelellt features are shown throughout the examples given in FIG.'s 1-20. The mapping data 230 also includes a feature type to graphical blow~eL pop-up menu map. Thismap correlates the sre~ if ic pop-up menus that are provided in co~necLion with dirr~ l types of realul s. As di~cuss~l above in connection with FIG.'s 1-20, each feature can have a different pop-up menu ~cori~tP~ therewith.
The mapping data 230 also contains a feature type to morlP1inp~ portion pop-up menu map. This map is similar to the feature type to graphical br~w;~ pop-up map except that it correlates feature types with pop-up menus that appear in themodeling portion rather than feature types with the pop-up menus that appear in the feature window. For each type of feature, it is possible to have a dirrt;lenl pop-up menu appear in the graphical browser portion versus the modeling portion.The mapping data 230 also contains two additional maps: feature type to graphical browser action map and a feature type to modeling portion action map.
These maps contain pointers to executable code that is run in connection with double clicking the left button of the mouse when the mouse cursor is on either a - portion of the model in the modPling window or on an icon in the graphical brow~el. Note that just as it is possible for a particular feature to have different pop-up menus that appear in either the graphical bl~wsel portion or the modelingportion, tnen too it is possible for a feature to have dirrerellt actions associated therewith citepen~ling upon whether the feature is sPlpct~l in the graphical br~wser portion or the modeling portion.
Some of the entries in the mapping data 230 are provided by graphical l~luw~er data 232 which cont~in.~ arrays of pop-up menus, function ~oink;ls, andgraphical icons. Other entries in the mapping data 230 are p~ovided by the feature data 208 through the modeling pr~g~ 1 interface 206. Accordingly, each entry in each map of the mapping data 230 contains one element from the feature data 208 and one element from the graphical browser data 232. Note that the arrays of pop-up menus, the arrays of function pointers, and the arrays of graphical iconsfound in the graphical browser data 232 can be stored and ~ecP~~11 in a conventil n~1 manner to the graphical l~luw~el 204.
Referring to FIG. 22, a flow chart 240 i111-st~t~ overall operation of the graphical browser 204. At a first step 242, a loop variable is initi~1i7PA to loop on each of the dirrel~nL types of features used by the graphica} browser 204.
lS Following the step 242 is a step 244 where the maps of the mapping data 230 are initi~li7Pd for each of the reaLul~ s r~?resenled by the loop variable repreSPnting each of the feaLures. For example, for the fillets feature, the initi~1i7P maps step 244 would initi~1i7e the mapping data 230 to provide the icon used for the fillets feature in the icon to feature map, would provide the pop-up menu used for the fillets feature in the feature type to graphic~1 browser pop-up map, et cetera.
Following the step 244 is a test step 246 which deL~ ines if the last feature has been ~cc&s~Pri to initi~li7P the mapping data 230. If not, then control transfers from the step 246 back to the step 242 to access another feature to initi~li7P the mapping data 230. If, on the other hand, it is determined at the step 246 that the looping variable is equal to the last and f~al feature from the feature data 208, then the entirety of the mapping data 23û has been initi~1i7Pcl and control transfers from the step 246 to a step 248 where the visual tree control module 228 and tree data is initi~li7~ The specific method of initi~1i7ing the visual tree control module 228 is PYp1~ineri in instruction m~n~ which are pr~vided by Microsoft Col~ol~Lion with the visual tree control module software. ~niti~1i7.in~
the actual tree shown on the screen involves ~cces~in~ the feature data 208 to determine order of creation, dep~ndPnci~, etc. for e~ch of the r~a~ures, and then m~king a~ro~liate calls to the visual tree control module 228, passing on feature names, icons (from the mapping data 230), connecti~ n~, etc.
Following the step 248 is a step 250 where a window event in~ tp~d by the user is processed. F~Pnt;~11Y, the remainder of operation of the graphical l~r~W~
204 consists of proces~in~ user events at the step 250. A ~lPt~ P~ discussion ofthe step 250 is provided below. Following the step 250 is a test step 252 which deL~ ~s if the event provided by the user is an exit event, i.e., if the user has inclic~t~ a desire to exit the graphical blow~ l plu~,ldlll 204 (and, by inference, exit the modeling program). If not, then control transfers from the test step 252 back to the step 250 to process the next event entered by the user. Otherwise, if it is determined at the test step 252 that the user has exited the plOgldlll, then procçs~ing for the graphical browser 204 is complete.
Referring to FIG. 23, a flow chart 260 illu~LIdtes the ~l~XSS events step 250 shown in the flow chart 240 of FIG. 22. An event is user initi~t~l and occurs when the user takes an action to intPr~Ct with the modeling l?r~ldl.. Events are initially h~n-lled by the Op~ldtillg system (Microsoft Windows) which passes on the events to the modeling ~logldln. A~pl~p~iat~ events that are passed on to the graphical browser 204 include mouse clicking events that cause the graphical blowsel- to take specific action.
For the fiow chart 260, proce~ing begins at the test step 262 to detPrrnine if the mouse clicking event occurred while the mouse cursor was in the graphicalbrowser portion of the window or the modeling portion of the window. If the mouse was clicked while the cursor was in the gr~phic~l browser portion, then control transfers from the test step 262 to a test step 264 to de~ e if the mouse cl;cking event is in conjunction with a drag and drop (D/D) operation. Note thatthe determination if the mouse click is in the graphical b~w~er window or the modeling portion of the window, and the detel.ninalion if the mouse click is performed in conjunction with a drag and drop operation are both pelro,---ed by the ~Jpeldtillg system and/or the tree control module 228. The graphical b,~owsel-204 simply receives data indicative of this information. Note also that, as - discussed above, the cut and paste operation is similar to the drag and drop operation. Accordingly, the discussion of dragging and dlo~ lg which follows can also apply to cutting and pasting.
W O 97/22952 PCT~US96/20634 If it is ~1etPrmin.oll at the test step 264 that the data being provided is a mouse click performed in con~unction with a drag and drop operation, then control transfers from the test step 264 to a step 266 where the drag and drop operation is procçss~l Processing the drag and drop operation at the step 266 is described inS more detail hereinafter.
If it is deL~ ed at the step 264 that the mouse click is not being provided in connection with a drag and drop operation, then control transfers from the test step 264 to a test step 268 to del~l,l,ine if the right button of the mouse is being clicked. If so, then control transfers from the test step 268 to a step 270 which processes the right button click of the mouse while the cursor of the mouse is in the graphical browser portion of the window. The processing step 270 is described in more detail her~ arL~i.
If it is determined at the test step 268 that the right button of the mouse has not been clicked, then control transfers from the test step 268 to a test step 272 to determine if the left button of the mouse has been single c,lielrP~i. Note that, as discussed above in connecti-~n with FIG.'s 1-20, single clicLing the left button of the mouse ~rOl~lls a .liîr~lellt operation than double clickinp the left button of the mouse. If ;t is determined at the test step 272 that the left button of the mouse has been single clicked, then control transfers from the test step 272 to the step 274 to process the left button single click of the mouse. The proces~in~ at the step 274 is described in more detail hel~ina~
If it is detennined at the test step 272 that the left button of the mouse has not been single ~lick~l, then control tr~n~f~ri from the test step 272 to a step 276 which processes the double click of the left button of the mouse in the graphical browser. Accordingly, the step 276 is reached when the user double clicks the left button of the mouse while the cursor of the mouse is in the graphical l,lvwseL.
Note that the flow chart 260 does not take into account events which occur that are not processed by the graphical browser 204. However, one of ordill~y skill in the art can appreciate that irrelevant events are simply not processed by the graphical browser 204. Processing the double click of the left button of the mouse while the cursor of the mouse is in the graphical browser is p~;lr ~ ed at the step 276, which is described in more detail he~ ar~
If it is ~ d at the step 262 that the mouse button has not been clicked while the cursor of the mouse is in the ~r~phi~l bl~wser portion of the window, then presumably the mouse has been clicked while the cursor was in the modeling portion of the window control transfers from the step 262 to a test step 280 to determine if the right button of the mouse has been c,lic~l If so, then ~ control transfers from the test step 280 to a step 282 to process the clicking of the right button of the mouse while the cursor of the mouse is in the modeling portion of the window. The step 282 is described in more detail hereinafter.
If it is determined at the step 280 that the user has not pressed the right button of the mouse, then control transfers from the step 280 to a test step 284 to determine if the user has single clicked the left button of the mouse. If so, then control transfers from the step 284 to a step 286 to process the left button single click of the mouse. Procçssing the left button single click of the mouse at the step 286 is described in more detail hereinafter.
If it is determined at the step 284 that the user has not single clicked the left button of the mouse, then control transfers from the step 284 to a step 288 to process the double click of the left button of the mouse while the cursor of themouse is in the modeling portion of the window. Ploces~ at the step 288 is nti~l to procP~ing at the step 276 and is described in more detail h~ ar~l.
RefP-rring to FIG. 24, a flow chart 300 illustrates in detail operation of the drag and drop step 266 of FIG. 23. At a first test step 302, it is determined if the user is copying the feature being dragged and dropped or if the user is moving the feature. When a feature is copied in the drag and drop procedure, the feature remains in its original location in the feature list while a copy of the feature is moved to a new location inf1ic~tP~l by the user. If a feature is not copied during the drag and drop operation, then the selected feature is rlet~hpll from the original location in the feature list and placed in a new location intlic~ted by the user.
Note also that the tree control module 228 shown in FIG. 21 h~n(llPs most of the- operations for the drag and drop incl~l(iing moving the icons, copying the icons, providing data in~ tive of the icons being dragged and dropped to the graphical browser 204, and handling most of the details of dialog boxes, et cetera.
F.csPnti~lly, most of the drag and drop operation is p~lr.,lllled by the virtual tree control module 228.
If it is del~ hled at the test step 302 that the user is copying the feature that is being dragged and dropped, then control Lr~ el~ from the step 302 to a step 304 where the feature is copied. The user interface portion of copying the feature is pt;lÇul.l.ed by the virtual tree control module 228 code section thathandles the drag and drop. The graphical browser sor~w~uc; 204 simply receives an indir~tion from the virtual tree control module 228 that the feature seJect~1 by the user is in fact being copied rather than moved from its t)rigin~l location. The graphical bluw~er 204 copies the feature in the feature data 208.
A test step 306 follows either the step 304 or the step 302. At the test step 306, it is determined if the feature selected by the user is movable. Whether a feature is movable is a function of the modeling program used in conjunction with the graphical browser 204, but often entails a del~ln~ ation if a seleete~l feature is being moved ahead of features on which the selected feature depends. For ~y~mpl~, if an extrusion is constructed using a sketch, then the sketch cannot be moved ahead of the extrusion since then the extrusion would then become undefined. The extrusion feature depen-ls on the sketch feature and hence the sketch feature must come before the extrusion feature. Note that this is not thecase if the sketch feature is copied rather than simply moved.
The movability delel...i..~tion at the step 306 can be made in a variety of manners, int lllfiin~ making a call in to the modeling program which returns a Boolean variable in~ ting that a particular feature is movable to a particular location or not. It is also possible for the modeling program to ~ inl~it~
information in the feature data 208 in~ ting which ones of the features can be moved ahead of which other ones of the ~ealult;s. ~lt~rn~tively, for a relatively unsophistic~tt~l modeling program, it is possible to simply return "true" or "yes"
each time the test is made at the step 306, thus r~nfl~rin~ permissible all drag and drop operations ~L~el~olllled by the user. Of course, in this in.~t~nce, p~lÇol,l~ g a drag and drop that leaves features lln~l~fin~d could have llnri~ hle effects on the model. However, handling the test at the step 306 this way is one of many designchoices available.
If it is determined at the test step 306 that the feature being dragged and dropped is not movable, then control transfers from the step 306 to a step 308 where the user is issued a warning in the form of a dialog box inllic~tinp that the desired drag and drop operation is i,llpGr,llissible. Following the step 308, processing for the drag and drop operation is complete.
If it is determined at the step 306 that the feature is movable, control transfers from the step 306 to a step 310 where the feature is moved. Moving thefeature involves sçn-ling a signal to the virtual tree control module 228 inflir~ting that the operation provided by the user is acceptable and so the feature list on the graphical browser should be modified. In addition, the graphical browser 204 modifies information in the feature data 208 in order to in-lic~te the ch~ng~
ordering of the redLult;s. At this stage, it may be n~rAee~ry for the modeling program interface 206 to activate the rebuild engine 212 to regenerate the geometry data 210 in order to reflect the changes to the model. ~1t.orn~tively, it is possible to simply make the changes to the feature data 208 without activating the rebuild engine 212. Following the step 310, proc~eein~ is complete.
Rçferrin~ to FIG. 25, a flow chart 320 illustrates in detail operations performed at the step 270 of FIG. 23 where the user clicks the right button of the mouse while the cursor of the mouse is in the graphical browser portion of the window. At a first step 322, the icon that is coin~ ont with the cursor of the mouse is hi~hli~hted as is the portion of the model in the modeling portion of the window corresponding to the feature associated with the icon. ~i~h1i~hting the icon and the model portion at the step 322 is described in more detail helGinarlel.
Following step 322 is a step 324 which detGllllines which pop-up menu to present to the user. The determination is made at the step 324 by ~ g the feature type to graphical browser pop-up menu map contained in the mapping data 230 and ~ ecue~1 above. Following the step 324 is a step 326 where the a~pl~liatG pop-up menu is plesGnled to the user using library calls for that purpose provided with the Windows o~ldLing system and/or with the virtual tree control module 228. Following the step 326 is a step 328 where the menu comm~nrle are procçe~ed mplee of dirrG.GI~t menu options are given throughout the discussion of FIG.'s 1-20. The de~ieion to implement speci~lc menu options for specific features is a design choice based on a variety of functional factors f~mili~r to one of o~ aly slcill in the art. The menu options can pGlr~ lvelltional modeling program operations. Accordingly, use of the right mouse button within the graphical browser 204 is simply a mtol h~niem for providing context-sensitive options to the user in a convenient fashion wllc~ the options are also ~eseible by other conventional modeling means that may be less convenient.
Referring to FIG. 26, a flow chart 330 illu~ tes in more detail the processing associated with pr~cç~ g a single click of the left mouse button while the cursor of the mouse button is in the graphical b~luwser as shown in the step274 of FIG. 23. At a first step 332, a cle~e. ..,hl~l;on is made as to which feature from the feature data 208 colles~llds to the icon of the graphical br~,w~er list that was coinci~ nt with the cursor when the user pressed the left button of the mouse.
10 : This is done by ~t~c~-eeing the icon to feature map found in ~e mapping data 230.
Following deLelmina~ion of the specific feature at the step 332 is a step 334 where the geometric data items associated with the specific feature are also deterrnined.
Note that any feature of the feature data 208 could have any number (including zero) of geometric data items associated therewith. The correlation of the feature from the feature data 208 and the geometric data items from the geometric data 210 is provided by ~cç~ing the conn~ction~ data 214, ~liec~ p~l above, which correlates feature data 208 with geometric data 210.
Following the step 334 is a loop step 336 where a loop variable is set equal to each geometric item determined at the step 334. Following the step 336 is a step 337 where each geometric item is highlight~l. The geometric items can be highlipht~A using any one of a number of conventional mP~h~nicm~, inc~ ing displaying the highlight~1 geometric items in a dirreren~ color than non-hi~hli~htç~l geometric items. ~ighlighhng the geometric items changes the display of the modeling portion of the window. Following the step 337 is a step 338 which testsif all of the geometric items determined at the step 334 have been highli~hte(7 If not, control transfers back up to the looping step 336 in order to loop on the next geometric item. Otherwise, if it is determined at the step 338 that all the geometric items have been highli~ht~l, then processing is complete following thestep 338. Note that the steps of the flow chart 330 can be used for hi~hlighting at the step 322 of FIG. 25.
Referring to FIG. 27, a flow chart 340 illuct~tF!s in detail proce~in~ the double click of the left mouse button of the steps 276, 288 of FIG. 23. At a first step 342 the feature icon and associated geometry are hi~hlightetl in a manner ; -similar to that described for the steps of FIG. 26. Following the step 342 is a step 344 where the action ~ t~cl with double ~ icking the left button is deltllnined by ~ ces~ing the mapping data 230 of the gr~hic~l browser 204 to find the a~ te feature tvpe to action correlation in order to dcle~ e which action is a~lv~liat~. Following the step 344 is a step 346 where the action is ~clrorl"ed.
The action that is L~l~olllled at the step 346 depends on the type of feature and is a design choice based on a variety of functional factors f~mili~r to one of skill in the art. For example, it is possible for the left button double click to show climenqit)ns of the feature, as illllqtr~t~1 in connection with FIG. 5 and described above. It is also possible for the system to be ~ecipnPA such that double clicl~ing the left button puts the sPl~ct~l feature in a modifiable state.
l~ft-rring to FIG. 28, a flow chart 350 corresponds to the steps 282, 286 of FIG. 23 which occur, respectively, when the right button is pressed with the mouse in the modeling portion of the window and when the left button of the lS mouse is single clicked with the cursor of the mouse being in the modeling portion of the window. Prc!ceqqin~ begins at a first step 352 to d~ e the feature cul,espollding to the specific geometry select~ by clicking the mouse button with the cursor coinciclent with the modeling portion. The feature is dc~l~ ed by ~Ccçqqing the connections data 214 of the model pro~ interf~-e 206. Given a particular geometric feature found in the geometric data 210, the conn~ctionq data 214 can d~t~ e which feature or features cc,llt;~ond to the specific geometric data item sel~ct~A by the user.
Following the step 352 is a step 354 where the geometry data items st-lecte~ by ~ 1ickin~ the mouse button are hi~hli~ht~1 The details and options for hi~hli~hting geometry is discussed above in connection with FIG. 26.
Following the step 352 is a step 356 where the icon(s) associated with the feature or features that correspond to the s~ tlyl geometry are highli~ht~A That- is, when the user clicks a mouse button on a portion of the model, not only is that portion of the model hi~hli~ht~1 but so is the icon or icons cullesponding to the feature or features determined at the step 352. Following the step 356 is a teststep 358 which determines if the right button (as opposed to the left button) of the mouse has been click~cl If so, then control transfers from the step 358 to a step specific feature is found in the mapping data 230, as described above. If, on the other hand, it is ~1et~rmin~1 at the step 358 that the right button has not beenpressed (and hence by inference the left button of the mouse has been pressed), then no pop-up menu is displayed. FolIowing the step 360 or following the step 358 if the left button of the mouse is pressed, proc~-e~in~ is complete.
While the invention has been disclosed in conn~ction with the pl~ r~ ed embo~1imt~-nt~ shown and described in detail, various mc~ifi~tion~ and improvements thereon will become readily a~al~lL to those skilled in the art.
Accordingly, the spirit and scope of the present invention is to be limited only by the following claims.
Techni~l Field This application relates to the field of computer-aided design and more particularly to t_e field of accessing and manipulating data describing a model constructed using co~ uLel--aided design.
Back~round of The Invention Col~ uleL-aided design software can be used to construct and manipulate computer drawings of objects referred to as "models". The user is presented with a display of the model on the computer screen and manipulates the model using keyboard comm~n~ls, a mouse/cursor combination, and ot_er various input means.
Changes to the model are reflected in the screen display of the model as the user - makes the changes or, alternatively, in response to the user issuing a specific command to update the screen display of the model. In either case, the screen display of the model serves as the main source of model information to.the user and as the user's reference for inputting and ch~nging features of the model.
A system for graphic image generation is described in European Patent Application No. 92307377.9, filed 8 December 1992 by Applicant Xerox Corporation (hereinafter "EP 0 528 631 A2"). Application EP 0 528 631 A2 is directed to a graphics editor that generates an appearance construction graph, including nodes representing image fragments, image transformation operations, and outputs that can be displayed and manipulated to constrlct and edit complex images.
Application EP 0 528 631 A2 does not disclose a highlighting feature allowing the user to correlate faces or portions of a model with specific features or to cause both a se~ècted feature and associated edges in a model to be highlight~-l - - As-modeling software becomes more powerful, it also becomes more complex. This increase in complexity increases the difficulty of use of the modeling software. If the software becomes too complex, then the user will have a difficult time making modifications and/or determining critical information about the model, especially since the screen display of the model is the user's main source of information and point of reference for facilit~ting input. This problem becomes more acute when the model is a three-dimensional model since, depending on the 1~
AME~IDED SHEET
t CA 02240714 1998-06-16 modeling software and the nature of the model, it is som~tim~s difficult, if notimpossible, to see the entirety of the model at any one time.
One way to address the increasing complexity of modeling software is to provide alternatives to the traditional techniques for presenting the model information to the user that allow the user to manipulate the model information.U.S. Patent No. 5,006,991 to Ohcosh'i et al. discloses a system for graphically chef kjng interference between stationary and moving objects. A desig~ layout isgraphically displayed and an object or a person is moved through the design layout by the graphical display device. Column 9, lines 64-66 indicate that along with displaying the design layout, the system can display a chart showing connectionsand positions of objects in the design layout.
~ .
. .
ENDED S,!tE~
-Although the Ohcoshl et al. patent addresses a specific problem associated with modeling in the specific situation discussed in the patent, it does not address the general problem of modeling software complexity and unwieldiness and it doesnot provide a general alternative technique for accessing and manipulating models.
5 Accordingly, it is desirable to provide an alternative and effective technique for presenting and manipulating model data that allows the user to easily make changes to a model and that presents model information to the user that is useful although not apparent from simply viewing the model on the screen display.
Snmm~ry Of The Invention 10The present invention includes a graphical browser that displays and manipulates a computer model by accessing data indicative of features and ~ geometric characteristics of the model, presents graphical data indicative of features of the model, and allows a user to graphically manipulate features to provide corresponding changes to the model. In the present invention, a computer-aided 15 design system for displaying and manipulating a computer model presents the colllpuler model in a modeling portion of a computer screen, presents graphical data indicative of features of the model in a graphical browser portior~ of the computer screen, hig,hliohts a subset of the modeling portion in response to a user selecting a corresponding subset of the graphical browser portion, and highli,ohts a subset of the 20 graphical browser portion in response to the user selecting a corresponding subset of the modeling portion. The data may be accessed by interfacing to feature data and ~geometric data of the model. Different icons, indicative of different types of features of the model, may be displayed. The icons may be ordered and cormected to in-lic~ an order of creation of features of the model. The icons may be 25 presented in a way to indicate interdependency of features.
Graphically manipulating the features may include altering the ordering of the features of the model, selectively suppressing certain ones of the features, or rolling back the model to a particular feature, so that that particular feature and subsequent features are suppressed. Graphically manipulating the features may also 30 include stepping through each feature of the model, one at a time, to unsuppress each feature on the model, one at a time. Presenting graphical data may also include presenting various alignment features of the model.
j4~EN~ , S~
The graphical browser provides the user with a powerful technique for creating and editing models. In the case of three dimensional models, the graphical browser provides the user with simlllt~n~ous access to all of the features of the model even if all of the model features cannot be seen all at the same time in aS screen display of the model. The data manipulation features of the graphical browser allow the user to easily enter and edit model data in ways that would be~liffiClllt or cumbersome if the user were forced to use only the screen display of the model as an input reference. ~ighlighting allows the user to correlate faces or portions of the model with specific features, and to cause both a selected feature and 10 the associated edges in the model to be highlighted. In this way, the user can correlate particular features with specific portions of the model.
;
Brief Description Of Drawings FIG. lis a schematic diagrarn of a computerized modeling system used to provide co"lL,uLer-aided design and to provide the graphical browser according to 15 the present invention.
FIG.2 illustrates a CRT display of the system of FIG. 1 showing a modeling portion and a browser portion of a CRT display window.
FIG.3 illustrates the window of FIG.2 with hidden subfeatures of the features screen in the browser portion.
FIG.4A is a window showing a first model portion and a first browser portion.
- FIG.4B is a window showing a second model portion and a second browser portion.
~G. S is a window showing a model portion and a model portion with a 25 model having dimensions thereon.
FIG.6is a window showing a model portion and a browser portion with a first pop-up menu superimposed thereon.
FIG.7is a window showing a model portion and a browser portion and illustrating a first option of the first pop-up menu.
FIG.8is a window showing a model portion and a browser portion and illustrating a second option of the first pop-up menu.
FIG.9is a window showing a model portion and a browser portion and illustrating a third option of the first pop-up menu.
h~c FIG. 10 is a window showing a model portion and a browi,Gr portion and illustrating a fourth option of the first pop-up menu.
FIG. 11 is a window showing a model portion and a browser portion having a second pop-up menu superimposed thereon.
FIG. 12 is a window ilh~ g an option of the second pop-up menu.
FIG. 13 is a window showing a model and illustrating a highlip~ht option of the graphical browser.
FIG. 14 is a window showing a model and illustrating a rollback option of the graphical browsel.
FIG. 15 is a window showing a model and illustrating an insert option of the graphical browser.
FIG. 16 is a window ill~lqt~ting an option for stepping fo-w~.l through features of the graphical blow~el.
FIG. 17 is a window Cl)nli1it-il-g a model portion and a br~ portion and illllstr~ting an option for showing feature properties.
FIG. 18 is a window col.~ -il-g a model portion and a browser portion and illustrating an option for showing m~f~.ling errors.
FIG. 19 is a window c~.~.t;1i..il-g a model portion and a browser portion and illll~trating an option for showing ~lignmf~nt features of the model.
FIG.'s 20A and 20B are windows illllst~ting a sorting option of the graphical bl~wsel using various criteria for sorting.
FIG. 21 is a data flow diagram ilhl~ g inttorf~t~.ing and data eYch~nge between a conventional modeling program and the graphical br~
FIG. 22 is a flow chart showing overall operation of the gr~phi~l bl~w~el.
FIG. 23 is a flow chart showing event handling for the graphical bn~wst;l.
FIG. 24 is a flow chart showing the drag and drop operation of the graphical browser.
FIG. 25 is a flow chart showing processing when a user clicks the right mouse button while the mouse cursor is in the graphical browser portion of the window.
FIG. 26 is a flow chart showing processing when a user single clicks the left mouse button while the mouse cursor is in the graphical browsel portion of the window.
. . ~.
.. . ~ t ~ _~ j . 4-FIG. 27 is a flow chart showing pr~cec~ing when a user double clicks the left mouse button.
FIG. 28 is a fiow chart showing processing when a user clicks the right mouse button while the cursor is in the modeling portion of the window.
r)P~il~l Descli~?lion of the Pler~lled Embodiments ~ Referring to FIG. 1, a collly~ ;7~1 modeling system 30 inr1~ldes a CPU
31, a CRT 32, a keyboard input device 33, a mouse input device 34, and a storagedevice 35. The CPU 31, CRT 32, keyboard 33, mouse 34, and storage device 35 are conventional, commonly available, Co~l~puler hal.lw~e devices such as those provided with the Alpha XP150 coll-~ulel system m~nllf~rhlred by Digital Equipment Col~ol~lion of Maynard, Mass. The mouse 34 has conventional, user-~ct--~t~hle, left and right buttons. Other a~ iate colllpuLel h~h-lw~e platformsare suitable as will become a~alc -t from the fli~c~ n which follows.
Cc,~ uLel-aided design software is stored on the storage device 35 and is loaded into and eYecuteA by the CPU 31. The software allows the user to create and modify a three-~im~ncional model. The CPU 31 uses the CRT 32 to display a three--limPn~ional model and other aspects thereof as described in more detail below. A user actuates the keyboard 33 and the mouse 34 to enter and modify data for the three--lim~n~ional model. The CPU 31 accepts and processes input from the keyboard 33 and the mouse 34. Using the three-~1im~n~ional modeling software, the CPU 31 ~-~,cesses the input along with the data associated with the three-~1imPn~it)n~l model and makes colles~onding and appr~pliate changes to thedisplay on the CRT 32. In addition, data corresponding to the three-llimPn~ionalmodel created by the user can be written from the CPU 31 to the storage device 35. Although the rem~in-~P~ of the ~ c~ ion relates to use of the invention withcol..~u~er-aided design software for providing three-tiim~-n~ional models, it will be appreciated by those of ~illillaly skill in the art that the invention could also be used in conjunction with any co~ uLer-aided design software, including software used to generate two-~im~n~icnal models.
Referring to FIG. 2, a display on the CRT 32 is shown in detail and incl~lcles a window 40. The window 40 is a conve-ntion~l screen display window which can be plogldl.llned by one of ~.rlinaly skill in the art using conventional, commerc;ally available, soflw~e progr~mming tools, such as those available from Microsoft Cul~oiaL;on of Redmond, Washington.
The window 40 in~h1des two portions, a mocl~.ling portion 42 and a graphical browser portion 44. The modeling portion 42 contains a three-~1imPn~ional model 46 that can be constructed and morlifiP~I by the user in a conventional manner. The three--limPn~ional model 46 can be displayed in a conventional manner using solid lines and dashed lines to show visible edges andhidden edges, respectively, of the three--limPn~ional model. The graphical browser portion 44 aids vi~ 1i7~tit-n and manipulation of the model portion 42.
As described in more detail below, the graphical bl~w~el portion 44 can be used to vi~ 1i7P and/or edit feature types, names, model structure, relationships between r~Lulc;s, order, dates of creation and mo-lifi~tinn of features, feature~u~lession, feature visibility and other similar attributes of the model 46.
The graphical browser portion 44 shows a list of re~lulc;s 48 cont~ining aspects or components of the three--lim~-n~innal model 46. The r~aLules 48 are represented in a way that i1111~tr~t~s that certain ones of the r~ulc~s 48 are in fact comprised of lower-level r~aLul~s. For PY~mr~le, the feature labeled "Part3" on FIG. 2 is comprised of the r~aLu~es labeled "Planel", "Plane2", "Plane3", "Extrusionl", "Filletl", "Cutl", and "Cut2". Inaddition, thefeaturelabeled "Extrusionl" is further comprised of a ~ul~r~lure labeled "Sketchl" and the subfeatures labeled "Cutl" and "Cut2" are further comprised of ~ubfeatules labeled "Sketchl" and "Sketch2", respectively. The features of the feature list 48 are ordered from top to bottom to show the order of entry by the user.
l?Pfçrring to FIG. 3, the window 40 shows the r~Lul~ list 48 with the subfeaLul~ thereof hidden. In that case, note that the feature labeled "Part2" is connected with a hnri7ont~1 line to a box 52 having a plus sign therein and the feature labeled "Part3" is connected with a horizontal line to a box 53 having aplus sign therein. The plus signs in the boxes 52,53 in~ tP that particular features ~tt~ hyl thereto via a horizontal line are actually comprised of one ormore subfeatures that are not shown in the feature list 48. The user can modify the feature list 48 of FIG. 3 to provide the ~et~i1~1 feature list 48 as shown in FIG. 2 by using the mouse 34 to click on the boxes 52, 53. Once the reiLLul~s have been eYp~nf~ed to the subfeatures thereof, the boxes 52,53 contain a minus sign in-1i(~ting that the features have been eYr~n~, as shown in FIG. 2.
FIG. 4A and FIG. 4B illu.str~t.o the effects of c1~ g;~ the order of features in a feature list. FIG. 4A shows a window 60 having two portions, a modeling portion 62 and a graphical l~ wsel portion 64. The modeling portion 62 cont~ine ~ a three-rlimpneional model 66 that is constructed and modified by the user. The graphical blvwsel portion 64 inc~ {1es a feature list 68 showing aspects and components of the model 66. Similarly, FIG.4B shows a window 60' having a modeling portion 62' and a graphical blow~cl portion 64' wherein the model portion 62' includes a three--lim.oneional model 66' and the graphical brow~el portion 64' inc1~1des a feature list 68' showing aspects and co~ ents of the model 66'.
A portion 69 of the feature list 68 shows two feaLulcs labeled "Rear Boss"
and "Rear Cut". In the feature list 68 of FIG. 4A, the Rear Boss feature precedes lS (i.e., is higher than) the Rear Cut feature. Accordingly, a rear portion 72 of the model 66 shows a rear boss 74 that has been cut in the middle thereof by the Rear Cut feature. Therefore, the rear boss 74 of the model 66 is in two sep~ parts, one on each lateral side of the model 66.
The feature list 68' also has a section 69' c~ ini,~g Ç~lul~s labeled "Rear Cut" and "Rear Boss". However, in the case of the feature list 68' of FIG. 4B, the section 69' shows that the Rear Cut feature precedes (i.e., is higher than) the Rear Boss feature. Accordingly, a rear portion 72' of the model 66' shows a rearboss 74' that has not been cut, but in.ett~<l, extends continuously from one lateral side of the model 66' to the other lateral side of the model 66'. This occurs because the order of rea~ulcs shown in the section 69' intii~tto.e that the rear cut is L~curu~ ed prior to adding the boss 74' to the model 66'. Therefore, the rear cut, which comes before the addition of the rear boss 74', has no effect on the rear boss 74' in the model 66'.
The section 69 of the feature list 68 in FIG. 4A is modified to provide the section 69' of the feature list 68' of FIG. 4B using a technique called "drag and drop". Drag and drop is a conventional technique that involves using the mouse 34 to move an icon associated with a feature to a dirrel~cnt location in the feature list. The user places the mouse cursor over the icon of the feature to be moved, clicks and holds down the left button of the mouse 34 while moving the mouse cursor and the feature icon to the desired location, and then releases the but~on of the mouse 34. Alternatively, the user can achieve the same results by employing a similar conventional technique, called "cut and paste", to highlight one or moreS icons, execute a "cut" or "copy" op~r~tion, select an insertion location, and execute a "paste" op~tion. ~m~1~m~nt~tion of the drag and drop option and the cut and paste option is described in more detail hereinafter.
Note that the section 69 of the feature list 68 in FIG. 4A can be morlifieA
in one of two ways to provide the section 69' of the feature list 68' in FIG. 4B.
The user can use the mouse 34 to drag and drop (or cut and paste) the Rear Cut ~eature so that it precedes the Rear Boss feature as shown in the section 69'.
~lt~rn~tively, the user can use the mouse 34 to drag and drop (or cut and paste)the Rear Boss feature so that it comes after the Rear Cut feature as shown in the section '69' .
Referring to FIG. 5, the rear cut feature discussed above in connection with FIGS. 4A and 4B is shown in an ~ n~1~d form as being comrnC~ of a subfeature labeled "Sketch9". Note that the feature list 68 of FIG. 5 shows a box conn~ct~l to the left of the Rear Cut feature co~ g a minus sign rather than a plus sign, as shown in FIG.'s 4A and 4B. As ~licc11c~1 above in conn~ctic)n withFIG.'s 2 and 3, the minus sign in the box inf~ t~.s that the feature conn~t~A
thereto has been eY~n-lsd to show ~.ubreal~l~s thereof.
A cursor arrow 76 is moved by using the mouse 34 in a conventional manner so that the end of the cursor arrow is coinçi~lent with an icon portion of the Rear Cut feature in the feature list 68. Once the cursor arrow 76 is placed on the icon for the Rear Cut feature, the user can double click the left button of the mouse 34 to modify the mo~l~ling portion 62 so that tlim~ncions of the Rear Cut feature are s-1p~rimI)osed onto the three--lim~ncional model 66. Once the ~lim(~ncions are visible, the user can double click the left button of the mouse 34 to modify the ~lim~ncil~ns In a similar .I~uuler, moving the cursor arrow 76 onto the icon of other ones of the features from the feature list 68 and double ç1ickin~ the left button of the mouse 34 will modify the drawing portion 62 to superimpose ~imencions of the a;!i~oci~ed feature onto the model 66 or to l?elrol--- some other .opliate action, as described in more detail h~ arL~l. A single click of the left button of the mouse 34 will high1ipht the feature from the feature list 68 and hi~hlight the corresponding portion of the drawing 66.
l2ef~Prrin~ to FIG. 6, a conventional pop-up menu 80 is provided by clicking the right button of the mouse 34 when the cursor 76 is placed on a particular one of the f~;alu-~s from the feature list 68. The pop-up menu 80 of FIG. 6 results when the right button of the mouse 34 is clicked while the cursor76 is placed on the Rear Cut feature. The pop-up menu 80 shows various options inclllrling an Edit Sketch option, an Edit Definition option, a Parent/Child option, and a Properties option. The user can select one of the options of the pop-up menu 80 in a conventional manner using the mouse cursor 76 and the right button of the mouse 34.
l~Pferring to FIG. 7, the effect of selecting the Edit Sketch option of the pop-up menu 80 of FIG. 6 is illu~tr~tP,cl. Note that the rear cut 72 in the model 66 is made by first providing a sketch 82 and removing m~tPri~l in the model 66 c~,llc;~onding to the sketch 82 projected a finite ~ nce along a perpendicular axis thereof. Accordingly, sP.lPcting the edit sketch option shows the sketch 82used to make the rear cut in the model 66. Once this option is sP1~cte~i, the user can modify the (1im~n~ions of the sketch 82 by moving the cursor 76 to seJert~l points of the sketch 82 and ~hrinking or enlarging one or more rlim~n~ ns of thesketch 82 in a conventional manner. Note that modifying the sketch 82 could change the location and amount of m~teri~l removed from the model 66 by the Rear Cut feature.
Referring to FIG. 8, a window 84 is presented when the user selects the edit ~efinition option from the pop-up menu 80 shown in FIG. 6. The window 84 shows various p~r~mçtprs that are part of the definition of the Rear Cut feature.
Different types of features will show dir~elelll types of windows when the edit definition feature is splpctp~1. The specific parameters that are provided for each type of feature is a design choice based on a variety of functional factors f~mili~r to one of o-dillaly skill in the art.
The user can inter~f t with the window 84 to modify elem~nt~ therein in a conventional manner using the mouse 34 and/or the keyboard 33. For example, the user can modify the Depth element of the window 84 by pressing the right _g_ button of the mouse 34 and dragging the cursor 76 over the text associated with the Depth elemPnt to highli,~ht the text as shown in FIG. 8. Af~ w;~d, the user can use the keyboard 33 to type in a new value for the Depth ~lem.ont Referring to FIG. 9, a window 86 is plt;se,ll~d when the user selects the Parent/Child option from the pop-up menu 80 of FIG. 6. The Parent/Child option provides information about the parent and children rel~tion~hips of the feature associated with the pop up window 80, in this case the Rear Cut feature. A
parent-child relationship between ~eaLul~s ~lc~ses dep~n-l~n~y. Feature B is a child of feature A if B cannot eYist without A. For eY~m~le, consider a block feature A and a hole feature B drilled into the side of the block A. Hole B is achild of block A and block A is a parent of hole B. If block A is elimin~t~, hole B must also be ç~imin~t~
The window 86 has a parent section 88 and a children section 90. The parent section 88 lists all of the features that are parent r~alulc;s of the Rear Cut 1~ feature. In the example shown in the window 86, the parent of the Rear Cutfeature is the Sketch9 feature. Note that if the Sketch9 feature is eli~in~A, then the Rear Cut feature would also be eli~ ~ since the rear cut is made by removing m5Jtl-.ri~l from the model 66 ~.c~onding to the Sketch9 feature projected a finite rli~t~nce along a perpen~ ,ul~r axis thereof. The children portion 90 shows all of the children of the Rear Cut feature. In this particular in~t~n~e, the Rear Cut feature has no children. The,c~le, P,limin~ting the Rear Cut feature will not n~..e~it~t~. elimin~tl'cn any other features of the drawing 66.
The ability to view the parent and child r~l~*nn~hips of each of the features is very useful in that it allows the user to determine the effect of modifying or ~,liminzl*ng a particular feature. In the .oY~mpl~ of FIG. 9, the information in the parent/child window 86 in~ t~,s that the user can t~ in~l~ the Rear Cut feature without eli -~ l;ng any other ~eaLur~s of the drawing. The window 86 also in~ tF~s tha~ elimin~ting the ~ketch9 feature will ne~ee~ çlimin~*~n of the Rear Cut feature.
' Referring to FIG. 10, a window 96 is provided in response to the user selecting the Properties option of the pop-up menu 80 shown in FIG. 6. The plopellies shown in the window 96 are p,~;llies of the Rear Cut feature. Just aswith the window 84 of FIG. 8, the user can modify items in the window 96 using the mouse 34 and/or the keyboard 33. Note that ~lirrcle-~ t,vpes of features have different types of pl~ellies and so would probably provide a window dirr~;lcnt than the window 96 shown in FIG. 10. The specific ~ ~lLies that are shown for each type of feature are a design choice based on a variet,v of functional factors f~mili~r to one of o~dill~uy skill in the art.
~ Referring to FIG. 11, a pop-up menu 100 is gem,l~Led when the user places the cursor 76 over the Fillet feature and presses the right button of the mouse 34.
A comr~ri~on of the pop-up menu 100 and the pop-up menu 80 of FIG. 6 illustrates that dirrel~nt pop-up menus can be used for different feaLures. The pop-up menu 100 for the Fillet feature is different than the pop-up menu 80 for the Rear Cut feature. Each dirrcl~ t type of feature can have a different pop-up menu associated th~ vilh. The type, number of entries, and nature of entries of a pop-up menu is a design choice that ~lepPn~l~ on a variety of functional factors f~mili~r to one of or~inal~y skill in the art.
Referring to FIG. 12, a window 106 is provided in response to the user selecting the Properties entry in the pop-up menu 100 of FIG. 11. Note that the window 106 is dirfer~nl than the window 96 of FIG. 10 which is provided when the user selects the Properties option from the pop-up menu 80 of FIG. 6 for theRear Cut feature. This il1-lstr~tPs that even pop-up menu entries having the same name can differ for each feature in the feature list 68. The selection of which elements to provide in the feature list window 106 is a design choice that depPn~ls on a variety of functional factors f~mili~r to one of ordinar,v skill in the art.
Referring to FIG. 13, the drawing portion 62 is shown with the end of the cursor 76 coincident with the rear boss 74 portion of the model 66. Edges of therear boss 74 are shown hi~hlighted in~ ting that the user has single clicked theleft button of the mouse 34 while the cursor 76 was in the position shown in FIG.
13. When this occurs, the Rear Boss feature from the feature list 68 is also highlightPcl by highli~hting the associated text of the feature and çh~n~ing the~ color of the icon. The icon color change is illustrated in FIG. 13 as a general 3Q darkening of the icon while text hi~h1ighting is shown by drawing the outline around the text of the feature. Text hiFhlighting can also be provided by inverting the text in a conventional manner.
~igh1ighting allows the user to correlate faces or portions of the model 66 with specific features in the feature list 68. In addition, the user can move the cursor 76 over a particular feature in the feature list 68, click the left button of the mouse 34 one time, and cause both the SPlP~t~l feature in the feature list 68 and the associaled PAges in the model 66 to be highlipht~yi. In this way, the user can correlate particular rcaLul~_s from the feature list 68 with specific portions of the model 66.
Referring to FIG. 14, a rollback option is illustrated wherein Çealures of ~he model 66 that follow a particular feature are not shown in the drawing portion 62.
FIG. 14 shows the cursor 76 being placed on the Rear Cut feature of the feature list 68. The model 66 is shown with every feature from the Rear Cut downward (i.e, after the Rear Cut feature) ç1imin~t~1 That is, the model 66 is shown without the Rear Cut, Front Cut, Front Drill, Rear Drill, and Fillets reaLul~ s from the feature list 68. A model can be rolled back to any feature shown in the feature lS list 68. Rolling back is useful for simplifying and debugging the model 66.Referring to FIG. lS, an insertion option is ill~ P<l wherein a new feature can be inserted at the rollback point shown in FIG. 14. In this case, the cursor 76 is pointing to a new feature labeled "Holel". A hole 110 on the model 66 illll~t~tPs the Holel feature of the feature list 68. Note that the rçm~in~ier of the feaLulcs from the feature list 68 remain ~u~ ssed in FIG. lS in the same wayas the features are ~u~rcssed in FIG. 14.
Referring to FIG. 16, a stepping option is illustrated wherein the user can step one feature at a time through the rollback state in order to cause reatures to reappear, one at a time, in the model 66. As shown in FIG. 16, the cursor 76 hassP]ectç(l the Front Cut feature from the feature list 68. Accordingly, the model 66 is in a state that is rolled back to prior to insertion of the Front Cut so that the Front Cut, Front Drill, Rear Drill, and Fillets r~Lu.~s are not shown on the model 66. Note that in this state, the rear cut 72 is shown in the model 66. Note alsothat the hole 110 is only partially shown since a portion of the hole 110 and a portion of the rear cut 72 overlap. In addition, unlike FIG. lS, the hole 110 is not shown in wire frame since the Holel feature is not selected from the feature list 68, as was the case in FIG. lS. Note that rolling back and stepping through the feature list 68 one feature at a time can be an efficient way to simplify and debug the model 66.
l~P.fçrring to FIG. 17, an option for ~u~ esiaion of a single feature is etr~tPd A dialog box 112 shows the cursor 76 being used to select su~prGssion of the Rear Cut feature. The model 66 shows all of the realurcs in the feature list 68 except the ~u~yrcssed feature, the Rear Cut feature. Note that ~ plc~sion of a single feature, as illlletr~tP~ in FIG. 17 is different than rolling back the model 66 as shown in FIG. 14 because the model 66 shown in FIG. 17 contains all of the features in the feature list 68 except the ~u~cssed feature (Rear Cut) while themodel 66 shown in FIG. 14 contains only those features of the feature list 68 which precede the Rear Cut feature. That is, the model 66 of FIG. 14 does not show the Front Cut, Front Drill, Rear Drill, and Fillets features while the model 66 of FIG. 17 does show those features. The ability to ~U~ 5S a single feature can be useful in simplifying and debugging a model.
1~ Note that ÇeaLulGs similar to the roll back, su~lc~ion, insertion, andstepping option illustrated in FIG.'s 14-17 are known in the art. However, implçmPnting these options using the feature list 68 f~ tes ease of use and vi~ li7~tion by the user who, with only the modPling portion 62 visible, would likely be reduced to guessing as to the ordering of r~lulGs and the effect of, say, rolling back to a particular one of the features.
l?~ferring to FIG. 18, a dialog box 114 reports an error in ~e Rear Drill feature of the feature list 68. The error was artificially created by e~cp~nrlin~ the ~limen~ ns of the Rear Drill feature to beyond the size of the entire model 66.
Note that in addition to reporting the error in the dialog box 114, the icon associated with the Rear Drill feature in the feature list 68 is highlighted, thus providing the user with a visual l~ sent~tion in the feature list 68 showing thesource of the error in the model 66 that caused the dialog box 114 to be generated.
Referring to FIG. 19, the model 66 is illustrated with a shaft 116 inserted in a front hole of the model 66. In order for the shaft 116 to remain L,lo~elly inserted into the front hole, it is ç~Pnti~l that the relative ~lipnment of the shaft 116 and the rem~in~lPr of the model 66 remain constant irrespective of any changes in c-rient~tion of the model 66. That is, moving the shaft 116 should also cause the rem~in-1Pr of the model 66 to move the same amount. Otherwise, the shaft 116 will not m~intzin Alignm~.nt in the front hole of the model 66 as shown in FIG. 19. Accordingly, when the shaft 116 is created, the user can specify specific ~lignmPnt between the shaft 116 and the model 66. In FIG. 19, the ~lignmPnt of the shaft 116 is constrained two se~>al~Lle ways: the bottom face of the shaft 116 is aligned with the bottom face of the boss located in the front of the model 66 and the outside face of the shaft 116 is aligned with the inside face of the hole through which the shaft 116 is placed. These two sep~r~tP. ~lignmPnt.~ are shown in the feature list 68 as "Align1" and "Align2" reaLules. Note that the general technique of z~ligning models are known to one of ordi~ y skill in the art.
The user may be inlele~led in seeing which faces of the shaft 116 and the model 66 are ~ ned The user can do this by placing the cursor 76 over one of the aligned features in the feature list 68 and clicking on the left button of the mouse 34. ~.lil~king on the left button causes the feature in the feature list 68 to be highlight.oA and causes the faces which are aligned to also be highlight~l in the model portion 62. For example, as shown in FIG. 19, the user has clicked the left button of the mouse 34 on the Alignl feature in the feature list 68 and caused the outside circumrel~el.Lial face of the shaft 116 to be hi~hlipht~ and has caused the inside face of the hole through which the shaft 116 passes to also be highliphtçci The ability to high1ight faces that are aligned is useful in keeping track of various ~lignmf~nt. constraints of a model being constructed by the user.
R~ferring to FIG. 20A, a window 130 shows the list of r~alu~s from the feature list 68 along with three columns 132-134 which show an amount of memory required to store each of the features, date of last mo lifi~tion of each of the features and a time of mo~ tiQn of each of the realult;s, le,~Li~ely. The window 130 r~lcsenl~ a different way to present information about r~lul~ s in the feature list 68.
Referring to FIG. 20B, a window 140 also shows r~Lult;s from the feature list 68. In addition, the window 140 has three columns 142-144 similar to the columns 132-134 of FIG. 20A. Note that the ordering of the featlll~s in the window 140 is by the amount of memory used to store each feature shown in the column 142. The feature which requires the least amount of memory storage is shown at the top of the list followed by the feature requiring the next most amount of memory storage and so forth until the feature at the bottom of the list requires the ~edle~l amount of memory storage. FIGS. 20A and 20B illustrate that the features of the feature list 68 can be sorted and presented in any convenient manner that f~ tPs use and access by the user. It would have also been possible to show the realules of the feature list 68 being sorted by any other criteria inclu-1ing, for example, being sorted in alphabetical order by feature name.
Referring to FIG. 21, a data flow d;agram 200 i~ s intPrf~ing between graphical browser software 204 and a mo~Pling program 206. The graphical browser 204 can be implemPnteA in conjunction with almost any co.n~uLer modeling program in a manner described in detail below. The graphical blvw~el 204 conducts ope~ti-)n~ on the data of a modeling L~rvgldln to provide the functionality illustrated above. Accordingly, the graphical bl'VW~. 204 U~ldtCs ess~nti~lly independently of the executable code of the mod~ling program.
Interfacing a conventional, generic, cv.l-pul~i modeling program with the graphical browser consists e~nti~lly of interfacing the modeling ~)lV~,ldlll with the graphical brvwsel to provide the graphical browser 204 with access to the modeling data ofthe modeling plU13,1'all~. Details of this intPrf~c~, inclnrling plc~r~ d data fcllllals, are described in detail below.
The modeling plV~ lll interface 206 incl-ldes data used by the graphical bl~w~el 204 to pelrc,llll the operations illustrated in FIG.'s 1-20 and discussed above. The interface data incl~ldes feature data 208 and geometric data 210. Thefeature data 208 contains a list of the features (e.g., planes, extrusions, lines, et cetera) of the model. The feature data 208 is implem~ntecl using conventional cv".~ule~ data storage means and is constructed/modified as the user creates andmodifies the object being drawn.
The geometric data 210 l~r~senls colll~uk;, data (stored by conventi~ n~l means) indicative of the faces, edges, vertices, surfaces, curves, points, and other low level geometric char~c tPri.~tics of the model. The modeling program can usethe geometric data 210 to display the model on the screen.
- A rebuild engine 212 converts the feature data 208 to the geometric data 210. The rebuild engine 212 is executable code that converts each elem~nt of thefeature data 208 into cvllc~onding edges, faces, vertices, et cetera of the geometric data 210. The rebuild engine 212 also provides connections data 214 in~ ting forward and backward connections between features and geometry.
That is, the connPction~ data 214 contains entries for each feature in the feature data 208 in~ ting the particular faces, edges, vertices, et cetera that C~ spolld to each of the low level features of the geolll~L-y data 210. In addition, the connPction~ data 214 also contains inrollllatioll that relates each entry in thegeometric data 210 with one or more r~atur~s in the feature data 208. Using the connections data 214, it is possible to correlate each feature in the feature data 208 with the resllltin~ geometric data 210 and it is possible to correlate each entry of the geometric data 210 with features in the feature data 208.
The feature data 208, geometric data 210, rebuild engine 212, and conn~o~tion~ data 214 can be imrlemPntPcl in conjunction with the modeling program in a variety of conventional manners in order to provide the modeling program interface 206. One example of this type of modeling data storage/pr~sentAti~-n/~;ollv~l~ion is found in a publication titled "GP~mP~tric Modeling" by Michael E. Mortenson, copyright 1985 and published by John Wiley & Sons, Inc. of New York, New York, ISBN 0-471-88279-8. It is also possible to implement the modeling program interfA~ e 206 in a variety of other conventional m~nnPr.~, provided that the feature data 208, geometric data 210, and connections data 214 are available for use by the graphical browser 204 to provide the functionality described below in connection with the detAil-P~ cu~ n of the graphical browser 204.
Note that various ones of the options, such as feature :~u~?plession, rolling back, and feature insertion, can be implemPntP~l in conjunction with a modeling in a variety of conventional manners. For example, feature ~u~ession and rolling back can be implemented by having a data field for each feature in~ ting whether the feature is ~u~ressed. If the graphical browser 204 writes to the field to in~lir~tP that a particular feature is suppressed, then the rebuild engine 212 treats that feature as if the feature does not exist, thus ~u~ ing generation ofcorresponding geometry data 210 and modifying the display of the model accordingly.
The graphical browser 204 includes a selector/highli~ht.or code module 220, a drag/drop manager code module 221, a right button pop-up handler code module 222, and an activation handler code module 223. The code modules 220-223 interact with the modeling program interfA- e 206 by receiving and .sP-n-1ing data thereto. Operation of the code modules 220-223 is described in more detail below.
The code modules 220-223 interact with a visual tree control code module 228. The visual tree control module 228 is a commercially available sor~wal~
package, is provided by Microsoft Corporation of l~e~lmnn-~, Washington, that ~ h~ncl1es the graphical browser user intPrf~- e in a manner described in more detail below. ~pecific aspects of the user interf~e illustrated in FIG.'s 1-20 and not discussed below are provided by the visual tree control module 228.
The graphical bl~lw~ 204 also includes mapping data 230 that coll~lak;s various feature types and ch~cterictics thereof. The mapping data 230 inclu-lPs an icon type to feature type map which correlates specific types of features (e.g., planes, fillets, et cetera) with ~ific. icons therefore that are shown on the graphical browsei screen. ~ mI~lPs of different types of icons for dirrelellt features are shown throughout the examples given in FIG.'s 1-20. The mapping data 230 also includes a feature type to graphical blow~eL pop-up menu map. Thismap correlates the sre~ if ic pop-up menus that are provided in co~necLion with dirr~ l types of realul s. As di~cuss~l above in connection with FIG.'s 1-20, each feature can have a different pop-up menu ~cori~tP~ therewith.
The mapping data 230 also contains a feature type to morlP1inp~ portion pop-up menu map. This map is similar to the feature type to graphical br~w;~ pop-up map except that it correlates feature types with pop-up menus that appear in themodeling portion rather than feature types with the pop-up menus that appear in the feature window. For each type of feature, it is possible to have a dirrt;lenl pop-up menu appear in the graphical browser portion versus the modeling portion.The mapping data 230 also contains two additional maps: feature type to graphical browser action map and a feature type to modeling portion action map.
These maps contain pointers to executable code that is run in connection with double clicking the left button of the mouse when the mouse cursor is on either a - portion of the model in the modPling window or on an icon in the graphical brow~el. Note that just as it is possible for a particular feature to have different pop-up menus that appear in either the graphical bl~wsel portion or the modelingportion, tnen too it is possible for a feature to have dirrerellt actions associated therewith citepen~ling upon whether the feature is sPlpct~l in the graphical br~wser portion or the modeling portion.
Some of the entries in the mapping data 230 are provided by graphical l~luw~er data 232 which cont~in.~ arrays of pop-up menus, function ~oink;ls, andgraphical icons. Other entries in the mapping data 230 are p~ovided by the feature data 208 through the modeling pr~g~ 1 interface 206. Accordingly, each entry in each map of the mapping data 230 contains one element from the feature data 208 and one element from the graphical browser data 232. Note that the arrays of pop-up menus, the arrays of function pointers, and the arrays of graphical iconsfound in the graphical browser data 232 can be stored and ~ecP~~11 in a conventil n~1 manner to the graphical l~luw~el 204.
Referring to FIG. 22, a flow chart 240 i111-st~t~ overall operation of the graphical browser 204. At a first step 242, a loop variable is initi~1i7PA to loop on each of the dirrel~nL types of features used by the graphica} browser 204.
lS Following the step 242 is a step 244 where the maps of the mapping data 230 are initi~li7Pd for each of the reaLul~ s r~?resenled by the loop variable repreSPnting each of the feaLures. For example, for the fillets feature, the initi~1i7P maps step 244 would initi~1i7e the mapping data 230 to provide the icon used for the fillets feature in the icon to feature map, would provide the pop-up menu used for the fillets feature in the feature type to graphic~1 browser pop-up map, et cetera.
Following the step 244 is a test step 246 which deL~ ines if the last feature has been ~cc&s~Pri to initi~li7P the mapping data 230. If not, then control transfers from the step 246 back to the step 242 to access another feature to initi~li7P the mapping data 230. If, on the other hand, it is determined at the step 246 that the looping variable is equal to the last and f~al feature from the feature data 208, then the entirety of the mapping data 23û has been initi~1i7Pcl and control transfers from the step 246 to a step 248 where the visual tree control module 228 and tree data is initi~li7~ The specific method of initi~1i7ing the visual tree control module 228 is PYp1~ineri in instruction m~n~ which are pr~vided by Microsoft Col~ol~Lion with the visual tree control module software. ~niti~1i7.in~
the actual tree shown on the screen involves ~cces~in~ the feature data 208 to determine order of creation, dep~ndPnci~, etc. for e~ch of the r~a~ures, and then m~king a~ro~liate calls to the visual tree control module 228, passing on feature names, icons (from the mapping data 230), connecti~ n~, etc.
Following the step 248 is a step 250 where a window event in~ tp~d by the user is processed. F~Pnt;~11Y, the remainder of operation of the graphical l~r~W~
204 consists of proces~in~ user events at the step 250. A ~lPt~ P~ discussion ofthe step 250 is provided below. Following the step 250 is a test step 252 which deL~ ~s if the event provided by the user is an exit event, i.e., if the user has inclic~t~ a desire to exit the graphical blow~ l plu~,ldlll 204 (and, by inference, exit the modeling program). If not, then control transfers from the test step 252 back to the step 250 to process the next event entered by the user. Otherwise, if it is determined at the test step 252 that the user has exited the plOgldlll, then procçs~ing for the graphical browser 204 is complete.
Referring to FIG. 23, a flow chart 260 illu~LIdtes the ~l~XSS events step 250 shown in the flow chart 240 of FIG. 22. An event is user initi~t~l and occurs when the user takes an action to intPr~Ct with the modeling l?r~ldl.. Events are initially h~n-lled by the Op~ldtillg system (Microsoft Windows) which passes on the events to the modeling ~logldln. A~pl~p~iat~ events that are passed on to the graphical browser 204 include mouse clicking events that cause the graphical blowsel- to take specific action.
For the fiow chart 260, proce~ing begins at the test step 262 to detPrrnine if the mouse clicking event occurred while the mouse cursor was in the graphicalbrowser portion of the window or the modeling portion of the window. If the mouse was clicked while the cursor was in the gr~phic~l browser portion, then control transfers from the test step 262 to a test step 264 to de~ e if the mouse cl;cking event is in conjunction with a drag and drop (D/D) operation. Note thatthe determination if the mouse click is in the graphical b~w~er window or the modeling portion of the window, and the detel.ninalion if the mouse click is performed in conjunction with a drag and drop operation are both pelro,---ed by the ~Jpeldtillg system and/or the tree control module 228. The graphical b,~owsel-204 simply receives data indicative of this information. Note also that, as - discussed above, the cut and paste operation is similar to the drag and drop operation. Accordingly, the discussion of dragging and dlo~ lg which follows can also apply to cutting and pasting.
W O 97/22952 PCT~US96/20634 If it is ~1etPrmin.oll at the test step 264 that the data being provided is a mouse click performed in con~unction with a drag and drop operation, then control transfers from the test step 264 to a step 266 where the drag and drop operation is procçss~l Processing the drag and drop operation at the step 266 is described inS more detail hereinafter.
If it is deL~ ed at the step 264 that the mouse click is not being provided in connection with a drag and drop operation, then control transfers from the test step 264 to a test step 268 to del~l,l,ine if the right button of the mouse is being clicked. If so, then control transfers from the test step 268 to a step 270 which processes the right button click of the mouse while the cursor of the mouse is in the graphical browser portion of the window. The processing step 270 is described in more detail her~ arL~i.
If it is determined at the test step 268 that the right button of the mouse has not been clicked, then control transfers from the test step 268 to a test step 272 to determine if the left button of the mouse has been single c,lielrP~i. Note that, as discussed above in connecti-~n with FIG.'s 1-20, single clicLing the left button of the mouse ~rOl~lls a .liîr~lellt operation than double clickinp the left button of the mouse. If ;t is determined at the test step 272 that the left button of the mouse has been single clicked, then control transfers from the test step 272 to the step 274 to process the left button single click of the mouse. The proces~in~ at the step 274 is described in more detail hel~ina~
If it is detennined at the test step 272 that the left button of the mouse has not been single ~lick~l, then control tr~n~f~ri from the test step 272 to a step 276 which processes the double click of the left button of the mouse in the graphical browser. Accordingly, the step 276 is reached when the user double clicks the left button of the mouse while the cursor of the mouse is in the graphical l,lvwseL.
Note that the flow chart 260 does not take into account events which occur that are not processed by the graphical browser 204. However, one of ordill~y skill in the art can appreciate that irrelevant events are simply not processed by the graphical browser 204. Processing the double click of the left button of the mouse while the cursor of the mouse is in the graphical browser is p~;lr ~ ed at the step 276, which is described in more detail he~ ar~
If it is ~ d at the step 262 that the mouse button has not been clicked while the cursor of the mouse is in the ~r~phi~l bl~wser portion of the window, then presumably the mouse has been clicked while the cursor was in the modeling portion of the window control transfers from the step 262 to a test step 280 to determine if the right button of the mouse has been c,lic~l If so, then ~ control transfers from the test step 280 to a step 282 to process the clicking of the right button of the mouse while the cursor of the mouse is in the modeling portion of the window. The step 282 is described in more detail hereinafter.
If it is determined at the step 280 that the user has not pressed the right button of the mouse, then control transfers from the step 280 to a test step 284 to determine if the user has single clicked the left button of the mouse. If so, then control transfers from the step 284 to a step 286 to process the left button single click of the mouse. Procçssing the left button single click of the mouse at the step 286 is described in more detail hereinafter.
If it is determined at the step 284 that the user has not single clicked the left button of the mouse, then control transfers from the step 284 to a step 288 to process the double click of the left button of the mouse while the cursor of themouse is in the modeling portion of the window. Ploces~ at the step 288 is nti~l to procP~ing at the step 276 and is described in more detail h~ ar~l.
RefP-rring to FIG. 24, a flow chart 300 illustrates in detail operation of the drag and drop step 266 of FIG. 23. At a first test step 302, it is determined if the user is copying the feature being dragged and dropped or if the user is moving the feature. When a feature is copied in the drag and drop procedure, the feature remains in its original location in the feature list while a copy of the feature is moved to a new location inf1ic~tP~l by the user. If a feature is not copied during the drag and drop operation, then the selected feature is rlet~hpll from the original location in the feature list and placed in a new location intlic~ted by the user.
Note also that the tree control module 228 shown in FIG. 21 h~n(llPs most of the- operations for the drag and drop incl~l(iing moving the icons, copying the icons, providing data in~ tive of the icons being dragged and dropped to the graphical browser 204, and handling most of the details of dialog boxes, et cetera.
F.csPnti~lly, most of the drag and drop operation is p~lr.,lllled by the virtual tree control module 228.
If it is del~ hled at the test step 302 that the user is copying the feature that is being dragged and dropped, then control Lr~ el~ from the step 302 to a step 304 where the feature is copied. The user interface portion of copying the feature is pt;lÇul.l.ed by the virtual tree control module 228 code section thathandles the drag and drop. The graphical browser sor~w~uc; 204 simply receives an indir~tion from the virtual tree control module 228 that the feature seJect~1 by the user is in fact being copied rather than moved from its t)rigin~l location. The graphical bluw~er 204 copies the feature in the feature data 208.
A test step 306 follows either the step 304 or the step 302. At the test step 306, it is determined if the feature selected by the user is movable. Whether a feature is movable is a function of the modeling program used in conjunction with the graphical browser 204, but often entails a del~ln~ ation if a seleete~l feature is being moved ahead of features on which the selected feature depends. For ~y~mpl~, if an extrusion is constructed using a sketch, then the sketch cannot be moved ahead of the extrusion since then the extrusion would then become undefined. The extrusion feature depen-ls on the sketch feature and hence the sketch feature must come before the extrusion feature. Note that this is not thecase if the sketch feature is copied rather than simply moved.
The movability delel...i..~tion at the step 306 can be made in a variety of manners, int lllfiin~ making a call in to the modeling program which returns a Boolean variable in~ ting that a particular feature is movable to a particular location or not. It is also possible for the modeling program to ~ inl~it~
information in the feature data 208 in~ ting which ones of the features can be moved ahead of which other ones of the ~ealult;s. ~lt~rn~tively, for a relatively unsophistic~tt~l modeling program, it is possible to simply return "true" or "yes"
each time the test is made at the step 306, thus r~nfl~rin~ permissible all drag and drop operations ~L~el~olllled by the user. Of course, in this in.~t~nce, p~lÇol,l~ g a drag and drop that leaves features lln~l~fin~d could have llnri~ hle effects on the model. However, handling the test at the step 306 this way is one of many designchoices available.
If it is determined at the test step 306 that the feature being dragged and dropped is not movable, then control transfers from the step 306 to a step 308 where the user is issued a warning in the form of a dialog box inllic~tinp that the desired drag and drop operation is i,llpGr,llissible. Following the step 308, processing for the drag and drop operation is complete.
If it is determined at the step 306 that the feature is movable, control transfers from the step 306 to a step 310 where the feature is moved. Moving thefeature involves sçn-ling a signal to the virtual tree control module 228 inflir~ting that the operation provided by the user is acceptable and so the feature list on the graphical browser should be modified. In addition, the graphical browser 204 modifies information in the feature data 208 in order to in-lic~te the ch~ng~
ordering of the redLult;s. At this stage, it may be n~rAee~ry for the modeling program interface 206 to activate the rebuild engine 212 to regenerate the geometry data 210 in order to reflect the changes to the model. ~1t.orn~tively, it is possible to simply make the changes to the feature data 208 without activating the rebuild engine 212. Following the step 310, proc~eein~ is complete.
Rçferrin~ to FIG. 25, a flow chart 320 illustrates in detail operations performed at the step 270 of FIG. 23 where the user clicks the right button of the mouse while the cursor of the mouse is in the graphical browser portion of the window. At a first step 322, the icon that is coin~ ont with the cursor of the mouse is hi~hli~hted as is the portion of the model in the modeling portion of the window corresponding to the feature associated with the icon. ~i~h1i~hting the icon and the model portion at the step 322 is described in more detail helGinarlel.
Following step 322 is a step 324 which detGllllines which pop-up menu to present to the user. The determination is made at the step 324 by ~ g the feature type to graphical browser pop-up menu map contained in the mapping data 230 and ~ ecue~1 above. Following the step 324 is a step 326 where the a~pl~liatG pop-up menu is plesGnled to the user using library calls for that purpose provided with the Windows o~ldLing system and/or with the virtual tree control module 228. Following the step 326 is a step 328 where the menu comm~nrle are procçe~ed mplee of dirrG.GI~t menu options are given throughout the discussion of FIG.'s 1-20. The de~ieion to implement speci~lc menu options for specific features is a design choice based on a variety of functional factors f~mili~r to one of o~ aly slcill in the art. The menu options can pGlr~ lvelltional modeling program operations. Accordingly, use of the right mouse button within the graphical browser 204 is simply a mtol h~niem for providing context-sensitive options to the user in a convenient fashion wllc~ the options are also ~eseible by other conventional modeling means that may be less convenient.
Referring to FIG. 26, a flow chart 330 illu~ tes in more detail the processing associated with pr~cç~ g a single click of the left mouse button while the cursor of the mouse button is in the graphical b~luwser as shown in the step274 of FIG. 23. At a first step 332, a cle~e. ..,hl~l;on is made as to which feature from the feature data 208 colles~llds to the icon of the graphical br~,w~er list that was coinci~ nt with the cursor when the user pressed the left button of the mouse.
10 : This is done by ~t~c~-eeing the icon to feature map found in ~e mapping data 230.
Following deLelmina~ion of the specific feature at the step 332 is a step 334 where the geometric data items associated with the specific feature are also deterrnined.
Note that any feature of the feature data 208 could have any number (including zero) of geometric data items associated therewith. The correlation of the feature from the feature data 208 and the geometric data items from the geometric data 210 is provided by ~cç~ing the conn~ction~ data 214, ~liec~ p~l above, which correlates feature data 208 with geometric data 210.
Following the step 334 is a loop step 336 where a loop variable is set equal to each geometric item determined at the step 334. Following the step 336 is a step 337 where each geometric item is highlight~l. The geometric items can be highlipht~A using any one of a number of conventional mP~h~nicm~, inc~ ing displaying the highlight~1 geometric items in a dirreren~ color than non-hi~hli~htç~l geometric items. ~ighlighhng the geometric items changes the display of the modeling portion of the window. Following the step 337 is a step 338 which testsif all of the geometric items determined at the step 334 have been highli~hte(7 If not, control transfers back up to the looping step 336 in order to loop on the next geometric item. Otherwise, if it is determined at the step 338 that all the geometric items have been highli~ht~l, then processing is complete following thestep 338. Note that the steps of the flow chart 330 can be used for hi~hlighting at the step 322 of FIG. 25.
Referring to FIG. 27, a flow chart 340 illuct~tF!s in detail proce~in~ the double click of the left mouse button of the steps 276, 288 of FIG. 23. At a first step 342 the feature icon and associated geometry are hi~hlightetl in a manner ; -similar to that described for the steps of FIG. 26. Following the step 342 is a step 344 where the action ~ t~cl with double ~ icking the left button is deltllnined by ~ ces~ing the mapping data 230 of the gr~hic~l browser 204 to find the a~ te feature tvpe to action correlation in order to dcle~ e which action is a~lv~liat~. Following the step 344 is a step 346 where the action is ~clrorl"ed.
The action that is L~l~olllled at the step 346 depends on the type of feature and is a design choice based on a variety of functional factors f~mili~r to one of skill in the art. For example, it is possible for the left button double click to show climenqit)ns of the feature, as illllqtr~t~1 in connection with FIG. 5 and described above. It is also possible for the system to be ~ecipnPA such that double clicl~ing the left button puts the sPl~ct~l feature in a modifiable state.
l~ft-rring to FIG. 28, a flow chart 350 corresponds to the steps 282, 286 of FIG. 23 which occur, respectively, when the right button is pressed with the mouse in the modeling portion of the window and when the left button of the lS mouse is single clicked with the cursor of the mouse being in the modeling portion of the window. Prc!ceqqin~ begins at a first step 352 to d~ e the feature cul,espollding to the specific geometry select~ by clicking the mouse button with the cursor coinciclent with the modeling portion. The feature is dc~l~ ed by ~Ccçqqing the connections data 214 of the model pro~ interf~-e 206. Given a particular geometric feature found in the geometric data 210, the conn~ctionq data 214 can d~t~ e which feature or features cc,llt;~ond to the specific geometric data item sel~ct~A by the user.
Following the step 352 is a step 354 where the geometry data items st-lecte~ by ~ 1ickin~ the mouse button are hi~hli~ht~1 The details and options for hi~hli~hting geometry is discussed above in connection with FIG. 26.
Following the step 352 is a step 356 where the icon(s) associated with the feature or features that correspond to the s~ tlyl geometry are highli~ht~A That- is, when the user clicks a mouse button on a portion of the model, not only is that portion of the model hi~hli~ht~1 but so is the icon or icons cullesponding to the feature or features determined at the step 352. Following the step 356 is a teststep 358 which determines if the right button (as opposed to the left button) of the mouse has been click~cl If so, then control transfers from the step 358 to a step specific feature is found in the mapping data 230, as described above. If, on the other hand, it is ~1et~rmin~1 at the step 358 that the right button has not beenpressed (and hence by inference the left button of the mouse has been pressed), then no pop-up menu is displayed. FolIowing the step 360 or following the step 358 if the left button of the mouse is pressed, proc~-e~in~ is complete.
While the invention has been disclosed in conn~ction with the pl~ r~ ed embo~1imt~-nt~ shown and described in detail, various mc~ifi~tion~ and improvements thereon will become readily a~al~lL to those skilled in the art.
Accordingly, the spirit and scope of the present invention is to be limited only by the following claims.
Claims
What is claimed is:
1. A graphical browser according to claim 20, for displaying and manipulating a computer model, further comprising:
data accessing means (31), for accessing data (35) indicative of features and geometric characteristics of the model; and feature manipulation means (33, 34), coupled to said data accessing means and said feature presentation means, for allowing a user to graphically manipulate features of said feature presentation means that result in corresponding changes to the model.
2. A graphical browser, according to claim 1, wherein said data accessing means includes an interface (206) to feature data and geometric data of the model.
3. A graphical browser, according to claim 1, wherein said feature presentation means includes means (68) for presenting different icons indicative of different types of features of the model.
4. A graphical browser, according to claim 3, wherein said feature presentation means further includes ordering and connecting the icons to indicate an order ofcreation of features of the model (69).
5. A graphical browser, according to claim 4, wherein said feature presentation means further includes means for indicating interdependency of features.
6. A graphical browser, according to claim 5, wherein said data accessing means includes an interface (206) to feature data and geometric data of the model.
7. A graphical browser, according to claim 1, wherein said feature manipulation means includes means for altering the ordering of the features of the model.
8. A graphical browser, according to claim 7, wherein altering the ordering of the features of the model includes dragging and dropping graphical representations of features of the model (69').
9. A graphical browser, according to claim 7, wherein altering the ordering of the features of the model includes cutting and pasting graphical representations of features of the model.
10. A graphical browser, according to claim 4, wherein said feature manipulationmeans includes means for altering the ordering of the features of the model.
11. A graphical browser, according to claim 10, wherein altering the ordering ofthe features of the model includes dragging and dropping graphical representations of features of the model (69').
12. A graphical browser, according to claim 10, wherein altering the ordering ofthe features of the model includes cutting and pasting graphical representations of features of the model.
13. A graphical browser, according to claim 6, wherein said feature manipulationmeans includes means for altering the ordering of the features of the model.
14. A graphical browser, according to claim 13, wherein altering the ordering ofthe features of the model includes dragging and dropping graphical representations of features of the model (69').
15. A graphical browser, according to claim 13, wherein altering the ordering ofthe features of the model includes cutting and pasting graphical representations of features of the model.
16. A graphical browser, according to claim 1, wherein said feature manipulationmeans includes means for selectively suppressing certain ones of the features.
17. A graphical browser, according to claim 1, wherein said feature presentationmeans includes means for presenting various alignment features of the model.
18. A graphical browser, according to claim 1, wherein said feature manipulationmeans further includes means for rolling back the model to a particular feature, so that said particular feature, and subsequent features, are suppressed.
19. A graphical browser, according to claim 18, wherein said feature manipulation means further means for stepping through each feature of the model,one at a time, to unsuppress each feature on the model, one at a time.
20. A computer-aided design system, for displaying and manipulating a computer model, including model presentation means for presenting the computer model in amodeling portion of a computer screen, characterized by:
feature presentation means (40) for presenting graphical data indicative of features of the model in a graphical browser portion of the computer screen, said feature presentation means being supplemented by first highlighting means, for highlighting a subset of the modeling portion in response to a user selecting a corresponding subset of the, graphical browser portion, and by second highlighting means, for highlighting a subset of the graphical browser portion in response to the user selecting a corresponding subset of the modeling portion.
21. A graphical browser, according to claim 20, wherein said feature presentation means includes means (68) for presenting different icons indicative of different types of features of the model.
22. A graphical browser, according to claim 21, wherein said feature presentation means further includes ordering and connecting the icons to indicate an order ofcreation of features of the model (69).
23. A graphical browser, according to claim 22, wherein said feature presentation means further includes means for indicating interdependency of features.
24. A graphical browser, according to claim 20, wherein said feature presentation means includes means for presenting various alignment features of the model.
25. A graphical browser, according to claim 23, wherein said feature presentation means includes means for presenting various alignment features of the model.
26. A method of displaying and manipulating a computer model, according to claim 38, further comprising the steps of:
accessing data indicative of features and geometric characteristics of the model(31); and allowing a user to graphically manipulate (33, 34) the graphical data to cause corresponding changes to the model.
27. A method of displaying and manipulating a computer model, according to claim 26, further comprising the step of:
presenting different icons indicative of different types of features of the model (68).
28. A method of displaying and manipulating a computer model, according to claim 27, further comprising the step of:
ordering and connecting the icons to indicate an order of creation of features of the model (69).
29. A method of displaying and manipulating a computer model, according to claim 28, further comprising the step of:
indicating interdependency of features (86).
30. A method of displaying and manipulating a computer model, according to claim 29, further comprising the step of:
interfacing to feature data and geometric data of the model (206).
31. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes allowing the user to alter the ordering of the features of the model.
32. A method of displaying and manipulating a computer model, according to claim 31, wherein altering the ordering of the features of the model includes dragging and dropping graphical representations of features of the model (69').
33. A method of displaying and manipulating a computer model, according to claim 31, wherein altering the ordering of the features of the model includes cutting and pasting graphical representations of features of the model.
34. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes selectively suppressing certain ones of the features.
35. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes presenting various alignment features of the model.
36. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes rolling back the model to a particular feature, so that said particular feature, and subsequent features, are suppressed.
37. A method of displaying and manipulating a computer model, according to claim 36, wherein the step of allowing the user to graphically manipulate the graphical data includes stepping through each feature of the model, one at a time, to unsuppress each feature on the model, one at a time.
38. A method for displaying and manipulating a computer model, including presenting the computer model in a modeling portion of a computer screen, characterized by:
presenting graphical data indicative of features of the model in a graphical browser portion of the computer screen (40), wherein presenting is supplemented by highlighting a subset of the modeling portion in response to a user selecting a corresponding subset of the graphical browser portion and by highlighting a subset of the graphical browser portion in response to the user selecting a corresponding subset of the modeling portion.
39. A method for displaying and manipulating a computer model, according to claim 38, further comprising the step of:
presenting different icons indicative of different types of features of the model (68).
40. A method for displaying and manipulating a computer model, according to claim 39, further comprising the step of:
ordering and connecting the icons to indicate an order of creation of features of the model (69).
41. A method for displaying and manipulating a computer model, according to claim 40, further comprising the step of:
indicating interdependency of features (86).
42. A method for displaying and manipulating a computer model, according to claim 38, further comprising the step of:
preserving various alignment features of the model.
43. A method for displaying and manipulating a computer model, according to claim 41, further comprising the step of:
presenting various alignment features of the model.
1. A graphical browser according to claim 20, for displaying and manipulating a computer model, further comprising:
data accessing means (31), for accessing data (35) indicative of features and geometric characteristics of the model; and feature manipulation means (33, 34), coupled to said data accessing means and said feature presentation means, for allowing a user to graphically manipulate features of said feature presentation means that result in corresponding changes to the model.
2. A graphical browser, according to claim 1, wherein said data accessing means includes an interface (206) to feature data and geometric data of the model.
3. A graphical browser, according to claim 1, wherein said feature presentation means includes means (68) for presenting different icons indicative of different types of features of the model.
4. A graphical browser, according to claim 3, wherein said feature presentation means further includes ordering and connecting the icons to indicate an order ofcreation of features of the model (69).
5. A graphical browser, according to claim 4, wherein said feature presentation means further includes means for indicating interdependency of features.
6. A graphical browser, according to claim 5, wherein said data accessing means includes an interface (206) to feature data and geometric data of the model.
7. A graphical browser, according to claim 1, wherein said feature manipulation means includes means for altering the ordering of the features of the model.
8. A graphical browser, according to claim 7, wherein altering the ordering of the features of the model includes dragging and dropping graphical representations of features of the model (69').
9. A graphical browser, according to claim 7, wherein altering the ordering of the features of the model includes cutting and pasting graphical representations of features of the model.
10. A graphical browser, according to claim 4, wherein said feature manipulationmeans includes means for altering the ordering of the features of the model.
11. A graphical browser, according to claim 10, wherein altering the ordering ofthe features of the model includes dragging and dropping graphical representations of features of the model (69').
12. A graphical browser, according to claim 10, wherein altering the ordering ofthe features of the model includes cutting and pasting graphical representations of features of the model.
13. A graphical browser, according to claim 6, wherein said feature manipulationmeans includes means for altering the ordering of the features of the model.
14. A graphical browser, according to claim 13, wherein altering the ordering ofthe features of the model includes dragging and dropping graphical representations of features of the model (69').
15. A graphical browser, according to claim 13, wherein altering the ordering ofthe features of the model includes cutting and pasting graphical representations of features of the model.
16. A graphical browser, according to claim 1, wherein said feature manipulationmeans includes means for selectively suppressing certain ones of the features.
17. A graphical browser, according to claim 1, wherein said feature presentationmeans includes means for presenting various alignment features of the model.
18. A graphical browser, according to claim 1, wherein said feature manipulationmeans further includes means for rolling back the model to a particular feature, so that said particular feature, and subsequent features, are suppressed.
19. A graphical browser, according to claim 18, wherein said feature manipulation means further means for stepping through each feature of the model,one at a time, to unsuppress each feature on the model, one at a time.
20. A computer-aided design system, for displaying and manipulating a computer model, including model presentation means for presenting the computer model in amodeling portion of a computer screen, characterized by:
feature presentation means (40) for presenting graphical data indicative of features of the model in a graphical browser portion of the computer screen, said feature presentation means being supplemented by first highlighting means, for highlighting a subset of the modeling portion in response to a user selecting a corresponding subset of the, graphical browser portion, and by second highlighting means, for highlighting a subset of the graphical browser portion in response to the user selecting a corresponding subset of the modeling portion.
21. A graphical browser, according to claim 20, wherein said feature presentation means includes means (68) for presenting different icons indicative of different types of features of the model.
22. A graphical browser, according to claim 21, wherein said feature presentation means further includes ordering and connecting the icons to indicate an order ofcreation of features of the model (69).
23. A graphical browser, according to claim 22, wherein said feature presentation means further includes means for indicating interdependency of features.
24. A graphical browser, according to claim 20, wherein said feature presentation means includes means for presenting various alignment features of the model.
25. A graphical browser, according to claim 23, wherein said feature presentation means includes means for presenting various alignment features of the model.
26. A method of displaying and manipulating a computer model, according to claim 38, further comprising the steps of:
accessing data indicative of features and geometric characteristics of the model(31); and allowing a user to graphically manipulate (33, 34) the graphical data to cause corresponding changes to the model.
27. A method of displaying and manipulating a computer model, according to claim 26, further comprising the step of:
presenting different icons indicative of different types of features of the model (68).
28. A method of displaying and manipulating a computer model, according to claim 27, further comprising the step of:
ordering and connecting the icons to indicate an order of creation of features of the model (69).
29. A method of displaying and manipulating a computer model, according to claim 28, further comprising the step of:
indicating interdependency of features (86).
30. A method of displaying and manipulating a computer model, according to claim 29, further comprising the step of:
interfacing to feature data and geometric data of the model (206).
31. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes allowing the user to alter the ordering of the features of the model.
32. A method of displaying and manipulating a computer model, according to claim 31, wherein altering the ordering of the features of the model includes dragging and dropping graphical representations of features of the model (69').
33. A method of displaying and manipulating a computer model, according to claim 31, wherein altering the ordering of the features of the model includes cutting and pasting graphical representations of features of the model.
34. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes selectively suppressing certain ones of the features.
35. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes presenting various alignment features of the model.
36. A method of displaying and manipulating a computer model, according to claim 26, wherein the step of allowing the user to graphically manipulate the graphical data includes rolling back the model to a particular feature, so that said particular feature, and subsequent features, are suppressed.
37. A method of displaying and manipulating a computer model, according to claim 36, wherein the step of allowing the user to graphically manipulate the graphical data includes stepping through each feature of the model, one at a time, to unsuppress each feature on the model, one at a time.
38. A method for displaying and manipulating a computer model, including presenting the computer model in a modeling portion of a computer screen, characterized by:
presenting graphical data indicative of features of the model in a graphical browser portion of the computer screen (40), wherein presenting is supplemented by highlighting a subset of the modeling portion in response to a user selecting a corresponding subset of the graphical browser portion and by highlighting a subset of the graphical browser portion in response to the user selecting a corresponding subset of the modeling portion.
39. A method for displaying and manipulating a computer model, according to claim 38, further comprising the step of:
presenting different icons indicative of different types of features of the model (68).
40. A method for displaying and manipulating a computer model, according to claim 39, further comprising the step of:
ordering and connecting the icons to indicate an order of creation of features of the model (69).
41. A method for displaying and manipulating a computer model, according to claim 40, further comprising the step of:
indicating interdependency of features (86).
42. A method for displaying and manipulating a computer model, according to claim 38, further comprising the step of:
preserving various alignment features of the model.
43. A method for displaying and manipulating a computer model, according to claim 41, further comprising the step of:
presenting various alignment features of the model.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/574,629 US5815154A (en) | 1995-12-20 | 1995-12-20 | Graphical browser system for displaying and manipulating a computer model |
US08/574,629 | 1995-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2240714A1 true CA2240714A1 (en) | 1997-06-26 |
Family
ID=24296939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002240714A Abandoned CA2240714A1 (en) | 1995-12-20 | 1996-12-20 | Graphical browser |
Country Status (6)
Country | Link |
---|---|
US (2) | US5815154A (en) |
EP (1) | EP0868707B1 (en) |
AU (1) | AU1349497A (en) |
CA (1) | CA2240714A1 (en) |
DE (2) | DE69602622T2 (en) |
WO (1) | WO1997022952A1 (en) |
Families Citing this family (196)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401299B2 (en) | 2001-09-05 | 2008-07-15 | Autodesk, Inc. | Method and apparatus for providing a presumptive drafting solution |
US6219055B1 (en) | 1995-12-20 | 2001-04-17 | Solidworks Corporation | Computer based forming tool |
US5815154A (en) | 1995-12-20 | 1998-09-29 | Solidworks Corporation | Graphical browser system for displaying and manipulating a computer model |
JP3241266B2 (en) * | 1996-06-03 | 2001-12-25 | 本田技研工業株式会社 | 3D CAD system |
US6084587A (en) * | 1996-08-02 | 2000-07-04 | Sensable Technologies, Inc. | Method and apparatus for generating and interfacing with a haptic virtual reality environment |
US5995107A (en) * | 1996-08-02 | 1999-11-30 | Autodesk, Inc. | Caching in a three dimensional modeling and animation system |
EP0895195A1 (en) | 1997-01-24 | 1999-02-03 | Sony Corporation | Pattern data generator, pattern data generating method and its medium |
WO1998033146A1 (en) | 1997-01-24 | 1998-07-30 | Sony Corporation | Pattern data generator, pattern data generating method, and its medium |
US6262734B1 (en) | 1997-01-24 | 2001-07-17 | Sony Corporation | Graphic data generating apparatus, graphic data generation method, and medium of the same |
KR20000064776A (en) * | 1997-01-24 | 2000-11-06 | 이데이 노부유끼 | Apparatus for generating a shape data, a method for generating the shape data, and a medium thereof |
EP0895194A1 (en) | 1997-01-24 | 1999-02-03 | Sony Corporation | Pattern data generator, pattern data generating method and its medium |
US6078327A (en) * | 1997-09-11 | 2000-06-20 | International Business Machines Corporation | Navigating applications and objects in a graphical user interface |
US6774899B1 (en) * | 1997-09-18 | 2004-08-10 | Mitsubishi Electric Research Laboratories, Inc. | Drawing graphs using user selectable visual oragnization features and/or other user controlled constraints |
US6247020B1 (en) | 1997-12-17 | 2001-06-12 | Borland Software Corporation | Development system with application browser user interface |
US6106299A (en) * | 1997-12-23 | 2000-08-22 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Systems and methods for constructive-dialogic learning |
US6542937B1 (en) * | 1998-02-27 | 2003-04-01 | Amada Company, Limited | Apparatus and method for transferring and editing sheet metal part data |
US6441837B1 (en) * | 1998-05-12 | 2002-08-27 | Autodesk, Inc. | Method and apparatus for manipulating geometric constraints of a mechanical design |
US6614458B1 (en) * | 1998-05-12 | 2003-09-02 | Autodesk, Inc. | Method and apparatus for displaying and manipulating multiple geometric constraints of a mechanical design |
US6552722B1 (en) * | 1998-07-17 | 2003-04-22 | Sensable Technologies, Inc. | Systems and methods for sculpting virtual objects in a haptic virtual reality environment |
US6421048B1 (en) | 1998-07-17 | 2002-07-16 | Sensable Technologies, Inc. | Systems and methods for interacting with virtual objects in a haptic virtual reality environment |
WO2000019381A1 (en) * | 1998-09-28 | 2000-04-06 | Solidworks Corporation | Mate inferencing system |
US6559860B1 (en) * | 1998-09-29 | 2003-05-06 | Rockwell Software Inc. | Method and apparatus for joining and manipulating graphical objects in a graphical user interface |
US6393331B1 (en) * | 1998-12-16 | 2002-05-21 | United Technologies Corporation | Method of designing a turbine blade outer air seal |
US6888542B1 (en) * | 1999-01-27 | 2005-05-03 | Autodesk, Inc. | Error recovery in a computer aided design environment |
US6859201B1 (en) * | 1999-01-28 | 2005-02-22 | Autodesk, Inc. | Method and apparatus for viewing a mechanical design |
US7281199B1 (en) | 1999-04-14 | 2007-10-09 | Verizon Corporate Services Group Inc. | Methods and systems for selection of multimedia presentations |
US6515656B1 (en) * | 1999-04-14 | 2003-02-04 | Verizon Laboratories Inc. | Synchronized spatial-temporal browsing of images for assessment of content |
US6931600B1 (en) * | 1999-05-07 | 2005-08-16 | Autodesk, Inc. | Integrating into an application objects that are provided over a network |
US6580428B1 (en) | 1999-05-24 | 2003-06-17 | Parametric Technology Corporation | Method and system for identifying peripheral elements of a complex model |
US6473673B1 (en) | 1999-05-24 | 2002-10-29 | Parametric Technology Corporation | Method and system for management of heterogeneous assemblies |
US6545676B1 (en) | 1999-05-24 | 2003-04-08 | Parametric Technology Corporation | Method and system for creating a tessellated approximation of an outer envelope of a complex model |
US6898560B1 (en) | 1999-06-02 | 2005-05-24 | Solidworks Corporation | Maintaining a computer-generated design model |
US6360357B1 (en) * | 1999-06-10 | 2002-03-19 | Dassault Systems | Adding code in an application during runtime to enrich object behavior |
US6525745B1 (en) * | 1999-10-25 | 2003-02-25 | Alventive, Inc. | Sheet metal geometric modeling system |
US6441835B1 (en) * | 1999-11-16 | 2002-08-27 | International Business Machines Corporation | Resolution policy for direct manipulation on hierarchically structured visuals |
US6771260B1 (en) | 1999-12-13 | 2004-08-03 | Amada Company, Limited | Sketcher |
US6735489B1 (en) * | 2000-01-14 | 2004-05-11 | Pravin Khurana | Horizontally structured manufacturing process modeling |
EP1256051A4 (en) * | 2000-01-25 | 2004-09-29 | Autodesk Inc | Method and apparatus for providing access to and working with architectural drawings on the internet |
US6611725B1 (en) | 2000-02-03 | 2003-08-26 | Solidworks Corporation | Computer drawing system |
US6366299B1 (en) * | 2000-02-21 | 2002-04-02 | Verizon Laboratories Inc. | Multidimensional information visualization using attribute rods |
US6625507B1 (en) * | 2000-02-23 | 2003-09-23 | United Technologies Corporation | Method and system for designing a low pressure turbine shaft |
JP3854033B2 (en) * | 2000-03-31 | 2006-12-06 | 株式会社東芝 | Mechanism simulation apparatus and mechanism simulation program |
US6370491B1 (en) * | 2000-04-04 | 2002-04-09 | Conoco, Inc. | Method of modeling of faulting and fracturing in the earth |
AU2001249935A1 (en) * | 2000-04-05 | 2001-10-23 | Therics, Inc. | System and method for rapidly customizing a design and remotely manufacturing biomedical devices using a computer system |
US6772026B2 (en) | 2000-04-05 | 2004-08-03 | Therics, Inc. | System and method for rapidly customizing design, manufacture and/or selection of biomedical devices |
US6654027B1 (en) * | 2000-06-09 | 2003-11-25 | Dassault Systemes | Tool for three-dimensional analysis of a drawing |
US6647305B1 (en) * | 2000-06-19 | 2003-11-11 | David H. Bigelow | Product design system and method |
AU7162801A (en) * | 2000-06-29 | 2002-01-14 | Object Reservoir, Inc. | Method and system for solving finite element models using multi-phase physics |
US20020052883A1 (en) * | 2000-09-05 | 2002-05-02 | Deborah Weissman-Berman | Online user interactive methods for designing sandwich composite and single skin composite components |
GB2383160A (en) * | 2000-09-14 | 2003-06-18 | Caterpillar Inc | Graphical user interface method and apparatus for interaction with finite element analysis applications |
US20020175948A1 (en) * | 2001-05-23 | 2002-11-28 | Nielsen Eric W. | Graphical user interface method and apparatus for interaction with finite element analysis applications |
CN1230660C (en) * | 2000-09-22 | 2005-12-07 | 沃思测量技术股份有限公司 | Method for measuring the geometry of an object by means of a co-ordination measuring device |
US7707507B1 (en) * | 2000-10-16 | 2010-04-27 | Igt | Method and system for configuring a graphical user interface based upon a user profile |
US6906712B2 (en) * | 2000-11-30 | 2005-06-14 | Solidworks Corporation | Automated three-dimensional alternative position viewer |
US20020133265A1 (en) * | 2001-03-14 | 2002-09-19 | Landers Diane M. | Horizontally structured manufacturing process modeling for concurrent product and process design |
US6775581B2 (en) * | 2001-03-14 | 2004-08-10 | Delphi Technologies, Inc. | Horizontally-structured CAD/CAM modeling for virtual concurrent product and process design |
US20020133267A1 (en) * | 2001-03-14 | 2002-09-19 | Landers Diane M. | Enhancement to horizontally structured manufacturing process modeling |
US6839606B2 (en) * | 2001-03-14 | 2005-01-04 | Delphi Technologies, Inc. | Horizontally structured manufacturing process modeling for fixtures and tooling |
US20020133266A1 (en) * | 2001-03-14 | 2002-09-19 | Landers Diane M. | Horizontally structured manufacturing process modeling for alternate operations, large parts and charted parts |
US7110849B2 (en) * | 2001-03-14 | 2006-09-19 | Delphi Technologies, Inc. | Horizontally-structured CAD/CAM modeling for virtual fixture and tooling processes |
US7099804B2 (en) * | 2001-03-14 | 2006-08-29 | Delphi Technologies, Inc. | Automated horizontally structured manufacturing process design modeling |
US7308386B2 (en) * | 2001-03-14 | 2007-12-11 | Delphi Technologies, Inc. | Enhancement to horizontally-structured CAD/CAM modeling |
EP1612728A3 (en) * | 2001-04-06 | 2008-06-11 | Océ Printing Systems GmbH | Method, system and computer program for producing electronic document from rasterized image data |
CA2443478A1 (en) * | 2001-05-08 | 2002-11-14 | Snap-On Technologies, Inc. | Integrated diagnostic system |
US6826500B2 (en) | 2001-06-29 | 2004-11-30 | General Electric Company | Method and system for automated maintenance and training instruction generation and validation |
JP2003044530A (en) * | 2001-07-30 | 2003-02-14 | Toshiba Corp | Apparatus, method and program for defining shape of structure, and creating apparatus for design drawing |
EP1425729B1 (en) * | 2001-08-23 | 2014-06-11 | Fei Company | Graphical automated machine control and metrology |
US20040128648A1 (en) * | 2001-08-30 | 2004-07-01 | Ari Rappoport | Face correlation between computer aided design models |
US7068271B2 (en) * | 2001-09-05 | 2006-06-27 | Autodesk, Inc. | Assembly patterns by feature association |
US6868297B1 (en) * | 2001-09-17 | 2005-03-15 | Impactxoft | Method and system for designing objects using functional modeling |
US7650260B1 (en) | 2001-09-17 | 2010-01-19 | Impact Xoft | Method and system for designing objects using functional object representation |
US7155375B1 (en) | 2001-09-17 | 2006-12-26 | Impactxoft | Method and system for designing objects using design intent merge |
US6907573B2 (en) | 2001-09-28 | 2005-06-14 | Autodesk, Inc. | Intelligent constraint definitions for assembly part mating |
JP3898485B2 (en) * | 2001-10-11 | 2007-03-28 | 株式会社トヨタケーラム | Drawing drawing display device, drawing drawing display method, and recording medium |
US7313504B2 (en) * | 2001-10-15 | 2007-12-25 | Solidworks Corporation | Model management technology using grouping of features |
US6928618B2 (en) * | 2001-10-23 | 2005-08-09 | Autodesk, Inc. | Intelligent drag of assembly components |
US7771195B2 (en) * | 2001-10-29 | 2010-08-10 | Align Technology, Inc. | Polar attachment devices and method for a dental appliance |
US7280948B2 (en) * | 2002-01-31 | 2007-10-09 | Delphi Technologies, Inc. | System and method for integrating geometric models |
US7092859B2 (en) | 2002-04-25 | 2006-08-15 | Autodesk, Inc. | Face modification tool |
US7421363B2 (en) * | 2002-04-26 | 2008-09-02 | Delphi Technologies, Inc. | Method for virtual inspection of virtually machined parts |
US7024272B2 (en) * | 2002-04-26 | 2006-04-04 | Delphi Technologies, Inc. | Virtual design, inspect and grind optimization process |
US20030204286A1 (en) * | 2002-04-26 | 2003-10-30 | Thomas Steven M. | Method for modeling complex, three dimensional tool paths through a workpiece |
US6867771B2 (en) | 2002-05-07 | 2005-03-15 | Autodesk, Inc. | Controlled face dragging in solid models |
US7543281B2 (en) * | 2002-07-22 | 2009-06-02 | National Instruments Corporation | Disabling and conditionally compiling graphical code in a graphical program |
US7461346B2 (en) * | 2002-07-30 | 2008-12-02 | Sap Ag | Editing browser documents |
US20040046760A1 (en) * | 2002-08-30 | 2004-03-11 | Roberts Brian Curtis | System and method for interacting with three-dimensional data |
US7068269B2 (en) * | 2002-08-30 | 2006-06-27 | Brian Curtis Roberts | System and method for presenting three-dimensional data |
US20040054509A1 (en) * | 2002-09-12 | 2004-03-18 | Breit Stephen R. | System and method for preparing a solid model for meshing |
US6871108B2 (en) * | 2002-11-19 | 2005-03-22 | Qssolutions, Inc. | System and method for creating a representation of an assembly |
JP4337090B2 (en) * | 2002-12-20 | 2009-09-30 | マツダ株式会社 | Piston design support program, design support method, and design support apparatus |
US6985793B2 (en) * | 2003-01-31 | 2006-01-10 | Delphi Technologies, Inc. | Horizontally structured CAD/CAM coordinate system for manufacturing design |
US20040153296A1 (en) * | 2003-01-31 | 2004-08-05 | Landers Diane M. | Horizontally structured CAD/CAM coordinate system |
US6754556B1 (en) | 2003-01-31 | 2004-06-22 | Diane M. Landers | Horizontally structured manufacturing process modeling: enhancement to multiple master process models and across file feature operability |
US6950719B2 (en) * | 2003-01-31 | 2005-09-27 | Delphi Technologies, Inc. | Horizontally structured manufacturing process modeling: across file feature operability |
US7245984B2 (en) * | 2003-01-31 | 2007-07-17 | Delphi Technologies, Inc. | Horizontally structured manufacturing process modeling: exterior linked representational embodiment |
US7079908B2 (en) * | 2003-01-31 | 2006-07-18 | Delphi Technologies,Inc. | Horizontally-structured modeling for analysis |
FI114831B (en) * | 2003-05-07 | 2004-12-31 | Tekla Corp | Computer-aided model design |
AU2003902954A0 (en) * | 2003-06-12 | 2003-06-26 | Canon Information Systems Research Australia Pty Ltd | Geometric space decoration in a graphical design system |
US7342589B2 (en) * | 2003-09-25 | 2008-03-11 | Rockwell Automation Technologies, Inc. | System and method for managing graphical data |
US7477251B2 (en) * | 2003-10-29 | 2009-01-13 | Lattice Technology, Inc. | System for acquiring profile information from three-dimensional profile data, its method and computer software program |
US7479959B2 (en) * | 2004-02-23 | 2009-01-20 | Ironclad Llc | Geometric modeling system with intelligent configuring of solid shapes |
US8060345B2 (en) * | 2004-03-18 | 2011-11-15 | The Boeing Company | Transforming airplane configuration requirements into intelligent spatial geometry |
US7472044B2 (en) * | 2004-03-22 | 2008-12-30 | Delphi Technologies, Inc. | Horizontally structured CAD/CAM modeling-vertical to horizontal conversion |
GB0409485D0 (en) * | 2004-04-28 | 2004-06-02 | Ucl Biomedica Plc | Fluid propelled endoscope |
US8041744B2 (en) * | 2004-06-24 | 2011-10-18 | Tekla Corporation | Computer-aided modeling |
WO2006004894A2 (en) | 2004-06-29 | 2006-01-12 | Sensable Technologies, Inc. | Apparatus and methods for haptic rendering using data in a graphics pipeline |
US7526359B2 (en) * | 2004-10-01 | 2009-04-28 | Delphi Technologies, Inc. | Enhanced digital process design methodology for process centric CAD systems |
US7813901B2 (en) * | 2004-10-25 | 2010-10-12 | Amada Company, Limited | Sketch generator for 3D sheet metal part models created by sheet metal part feature operations |
EP1686501A3 (en) * | 2005-01-26 | 2009-01-14 | Dassault Systemes SolidWorks Corporation | Aware and active features for computer-aided design system |
US20060200775A1 (en) * | 2005-03-01 | 2006-09-07 | Behr Jay A | Displaying a plurality of selection areas in a computer-implemented graphical user interface |
US20070038947A1 (en) * | 2005-05-19 | 2007-02-15 | Airbus | Method and device for generation of a parametric model associated with a 3D geometry |
US8812965B2 (en) * | 2005-06-01 | 2014-08-19 | Siemens Product Lifecycle Management Software Inc. | Creation and publishing of virtual components |
US7913190B2 (en) * | 2005-07-18 | 2011-03-22 | Dassault Systèmes | Method, system and software for visualizing 3D models |
US20070198588A1 (en) * | 2005-10-17 | 2007-08-23 | Siemens Corporate Research Inc | Automatic Qualification of Plant Equipment |
US8701091B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Method and system for providing a generic console interface for a graphics application |
EP1804183B1 (en) * | 2005-12-30 | 2017-06-21 | Dassault Systèmes | Process for selecting objects in a PLM database and apparatus implementing this process |
US7873237B2 (en) * | 2006-02-17 | 2011-01-18 | Dassault Systèmes | Degrading 3D information |
US7891012B1 (en) | 2006-03-01 | 2011-02-15 | Nvidia Corporation | Method and computer-usable medium for determining the authorization status of software |
US8452981B1 (en) * | 2006-03-01 | 2013-05-28 | Nvidia Corporation | Method for author verification and software authorization |
US20070216713A1 (en) * | 2006-03-15 | 2007-09-20 | Autodesk, Inc. | Controlled topology tweaking in solid models |
US20070288207A1 (en) * | 2006-06-12 | 2007-12-13 | Autodesk, Inc. | Displaying characteristics of a system of interconnected components at different system locations |
US8963932B1 (en) | 2006-08-01 | 2015-02-24 | Nvidia Corporation | Method and apparatus for visualizing component workloads in a unified shader GPU architecture |
US8607151B2 (en) * | 2006-08-01 | 2013-12-10 | Nvidia Corporation | Method and system for debugging a graphics pipeline subunit |
US8436870B1 (en) | 2006-08-01 | 2013-05-07 | Nvidia Corporation | User interface and method for graphical processing analysis |
US8436864B2 (en) * | 2006-08-01 | 2013-05-07 | Nvidia Corporation | Method and user interface for enhanced graphical operation organization |
US7778800B2 (en) * | 2006-08-01 | 2010-08-17 | Nvidia Corporation | Method and system for calculating performance parameters for a processor |
US20080126018A1 (en) * | 2006-08-22 | 2008-05-29 | Bor-Tsuen Lin | Method for constructing object by stacking up functional feature |
JP4838079B2 (en) * | 2006-09-07 | 2011-12-14 | 株式会社リコー | Part identification image creating apparatus, program, and computer-readable storage medium |
US20080088621A1 (en) * | 2006-10-11 | 2008-04-17 | Jean-Jacques Grimaud | Follower method for three dimensional images |
US8400446B2 (en) * | 2006-11-14 | 2013-03-19 | The Boeing Company | Method and apparatus for placing fasteners in a model-based definition |
JP2008165488A (en) * | 2006-12-28 | 2008-07-17 | Fujitsu Ltd | Unit, method and program for assembly operability evaluation |
US8504337B2 (en) * | 2007-01-17 | 2013-08-06 | Caterpillar Inc. | Method and system for analyzing three-dimensional linkages |
US7643027B2 (en) * | 2007-01-18 | 2010-01-05 | Dassault Systemes Solidworks Corporation | Implicit feature recognition for a solid modeling system |
EP2485170A3 (en) * | 2007-02-07 | 2012-12-19 | Sew-Eurodrive GmbH & Co. KG | Method and system for producing a construction drawing, method for producing a product and use of the method, and use of graphs |
US20080229200A1 (en) * | 2007-03-16 | 2008-09-18 | Fein Gene S | Graphical Digital Audio Data Processing System |
US7970587B2 (en) * | 2007-03-23 | 2011-06-28 | Siemens Industry, Inc. | System and method for defining part interfaces |
US8744829B1 (en) | 2007-07-19 | 2014-06-03 | The Mathworks, Inc. | Computer aided design environment with electrical and electronic features |
US8630829B1 (en) | 2007-07-19 | 2014-01-14 | The Mathworks, Inc. | Computer aided design environment with electrical and electronic features |
US8296738B1 (en) | 2007-08-13 | 2012-10-23 | Nvidia Corporation | Methods and systems for in-place shader debugging and performance tuning |
US9035957B1 (en) | 2007-08-15 | 2015-05-19 | Nvidia Corporation | Pipeline debug statistics system and method |
US7765500B2 (en) * | 2007-11-08 | 2010-07-27 | Nvidia Corporation | Automated generation of theoretical performance analysis based upon workload and design configuration |
JP5119877B2 (en) * | 2007-11-16 | 2013-01-16 | 富士通株式会社 | Analysis model creation apparatus and program |
US8044973B2 (en) * | 2008-01-18 | 2011-10-25 | Autodesk, Inc. | Auto sorting of geometry based on graphic styles |
US8525838B2 (en) * | 2008-02-08 | 2013-09-03 | Autodesk, Inc. | Associative fillet |
US8448002B2 (en) * | 2008-04-10 | 2013-05-21 | Nvidia Corporation | Clock-gated series-coupled data processing modules |
US9892028B1 (en) | 2008-05-16 | 2018-02-13 | On24, Inc. | System and method for debugging of webcasting applications during live events |
US10430491B1 (en) | 2008-05-30 | 2019-10-01 | On24, Inc. | System and method for communication between rich internet applications |
US20100049629A1 (en) * | 2008-08-22 | 2010-02-25 | Nainesh B Rathod | Method of enabling a user to draw a component part as input for searching component parts in a database |
US20100088429A1 (en) * | 2008-09-03 | 2010-04-08 | Chih-Hsing Chu | Method for constructing a decomposition data structure of multiple levels of detail design feature of 3d cad model and streaming thereof |
US8718982B2 (en) * | 2008-09-18 | 2014-05-06 | 3Shape A/S | Tools for customized design of dental restorations |
US20100180236A1 (en) * | 2009-01-09 | 2010-07-15 | Lin Alan C | Setting and previewing method of dynamically orienting 3D models and machines readable medium thereof |
US9046995B2 (en) * | 2009-04-09 | 2015-06-02 | On24, Inc. | Editing of two dimensional software consumables within a complex three dimensional spatial application and method |
CN101859330B (en) * | 2009-04-09 | 2012-11-21 | 辉达公司 | Method for verifying integrated circuit effectiveness models |
JP5607726B2 (en) * | 2009-08-21 | 2014-10-15 | トムソン ライセンシング | Method, apparatus, and program for adjusting parameters on user interface screen |
US8378261B2 (en) * | 2009-09-11 | 2013-02-19 | Honda Motor Co., Ltd. | Automated assembly method for a motor vehicle |
US8539005B2 (en) | 2009-09-18 | 2013-09-17 | Steer Information Technologies Pvt. Ltd. | Method and system for configuring and visualizing an extruder |
EP2325769B1 (en) * | 2009-10-30 | 2018-10-24 | Dassault Systèmes | Part design using a context-free grammar |
EP2333682B1 (en) * | 2009-11-06 | 2020-05-20 | Dassault Systèmes | Method and system for designing an assembly of objects in a system of computer-aided design |
US9384308B2 (en) | 2010-01-05 | 2016-07-05 | Bentley Systems, Inc. | Multi-dimensional artifact assemblage for infrastructure and other assets with interface node mediators |
US20110175905A1 (en) * | 2010-01-15 | 2011-07-21 | American Propertunity, LLC. | Infoshape: displaying multidimensional information |
US8706812B2 (en) | 2010-04-07 | 2014-04-22 | On24, Inc. | Communication console with component aggregation |
US11438410B2 (en) | 2010-04-07 | 2022-09-06 | On24, Inc. | Communication console with component aggregation |
US8694286B2 (en) * | 2010-10-01 | 2014-04-08 | Autodesk, Inc. | Modifying a parametrically defined model with an explicit modeler |
US9600090B2 (en) | 2011-01-05 | 2017-03-21 | Autodesk, Inc. | Multi-touch integrated desktop environment |
US9612743B2 (en) | 2011-01-05 | 2017-04-04 | Autodesk, Inc. | Multi-touch integrated desktop environment |
US8988366B2 (en) * | 2011-01-05 | 2015-03-24 | Autodesk, Inc | Multi-touch integrated desktop environment |
US8314790B1 (en) * | 2011-03-29 | 2012-11-20 | Google Inc. | Layer opacity adjustment for a three-dimensional object |
US8645107B2 (en) | 2011-09-23 | 2014-02-04 | Dassault Systemes Solidworks Corporation | Automatic component insertion and constraint based on previous-use data |
US10678961B1 (en) * | 2011-12-28 | 2020-06-09 | Msc.Software Corporation | Context sensitive simulation environment |
FI20125644L (en) * | 2012-06-12 | 2013-12-13 | Tekla Corp | Computer-aided modeling |
US9323315B2 (en) | 2012-08-15 | 2016-04-26 | Nvidia Corporation | Method and system for automatic clock-gating of a clock grid at a clock source |
US8850371B2 (en) | 2012-09-14 | 2014-09-30 | Nvidia Corporation | Enhanced clock gating in retimed modules |
US9519568B2 (en) | 2012-12-31 | 2016-12-13 | Nvidia Corporation | System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application |
US9761045B1 (en) | 2013-03-15 | 2017-09-12 | Bentley Systems, Incorporated | Dynamic and selective model clipping for enhanced augmented hypermodel visualization |
US9460561B1 (en) | 2013-03-15 | 2016-10-04 | Bentley Systems, Incorporated | Hypermodel-based panorama augmentation |
US9471456B2 (en) | 2013-05-15 | 2016-10-18 | Nvidia Corporation | Interleaved instruction debugger |
US9547303B2 (en) * | 2013-10-18 | 2017-01-17 | The Boeing Company | Managing the manufacturing lifecycle of fasteners of a product |
US11429781B1 (en) | 2013-10-22 | 2022-08-30 | On24, Inc. | System and method of annotating presentation timeline with questions, comments and notes using simple user inputs in mobile devices |
US10074218B1 (en) | 2013-12-23 | 2018-09-11 | Dassault Systemes Solidworks Corporation | 3D content creation tool with automatic mating |
RU2542160C1 (en) * | 2013-12-25 | 2015-02-20 | Общество с ограниченной ответственностью "Нефтекамский машиностроительный завод" (ООО "НКМЗ") | Centrifugal pump design method |
US10192022B2 (en) * | 2014-06-04 | 2019-01-29 | IronCAD, LLC | Geometric modeling system with intelligent behaviors of design components |
US11341288B2 (en) * | 2014-06-06 | 2022-05-24 | Ptc Inc. | Methods and system for incremental exploration of design changes in large computer-aided design models |
US10785325B1 (en) | 2014-09-03 | 2020-09-22 | On24, Inc. | Audience binning system and method for webcasting and on-line presentations |
US10037404B2 (en) * | 2014-09-17 | 2018-07-31 | Dassault Systemes Simulia Corp. | Feature cloning based on geometric search |
GB2536648A (en) * | 2015-03-24 | 2016-09-28 | Rolls Royce Plc | Methods of modelling at least a part of a gas turbine engine |
US10394967B2 (en) * | 2015-06-18 | 2019-08-27 | Siemens Product Lifecycle Management Software Inc. | Method and apparatus for automatically assembling components in a computer-aided design (CAD) environment |
CN108351909B (en) * | 2015-10-27 | 2022-08-23 | 西门子工业软件有限公司 | Data processing system and method for automatically assembling parts in a Computer Aided Design (CAD) environment |
WO2017098469A1 (en) * | 2015-12-11 | 2017-06-15 | Onshape Inc. | Replication of components through geometric element matching |
US10401804B1 (en) * | 2015-12-29 | 2019-09-03 | Dassault Systemes Solidworks Corporation | Mate controller |
US10990075B2 (en) * | 2016-09-27 | 2021-04-27 | Mitutoyo Corporation | Context sensitive relational feature/measurement command menu display in coordinate measurement machine (CMM) user interface |
US10534867B2 (en) * | 2016-12-16 | 2020-01-14 | Dassault Systemes Solidworks Corporation | Constructing multi-element features using a 3D CAD system |
US11281723B2 (en) | 2017-10-05 | 2022-03-22 | On24, Inc. | Widget recommendation for an online event using co-occurrence matrix |
US11188822B2 (en) | 2017-10-05 | 2021-11-30 | On24, Inc. | Attendee engagement determining system and method |
EP3614281A1 (en) * | 2018-08-20 | 2020-02-26 | Bricsys NV | Improved geometry-based detail propagation in cad models |
FI20205053A1 (en) * | 2020-01-17 | 2021-07-18 | Trimble Solutions Corp | Model and technical documents |
US20220253567A1 (en) * | 2021-02-05 | 2022-08-11 | Dassault Systemes Solidworks Corporation | Method for Suggesting Mates for a User Selected Modeled Component |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5845235A (en) * | 1981-09-11 | 1983-03-16 | Mitsui Petrochem Ind Ltd | Surface treatment |
JPH0738198B2 (en) * | 1985-11-14 | 1995-04-26 | 株式会社日立製作所 | Design support method and apparatus |
US5504917A (en) * | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
US5165015A (en) | 1989-09-25 | 1992-11-17 | Reliance Electric Industrial Company | Electronic template system and method |
US5293479A (en) * | 1991-07-08 | 1994-03-08 | Quintero Smith Incorporated | Design tool and method for preparing parametric assemblies |
DE69225544T2 (en) * | 1991-08-13 | 1998-12-03 | Xerox Corp | Electronic imaging |
US5437007A (en) * | 1992-11-10 | 1995-07-25 | Hewlett-Packard Company | Control sequencer in an iconic programming system |
US5586052A (en) * | 1993-04-27 | 1996-12-17 | Applied Computer Solutions, Inc. | Rule based apparatus and method for evaluating an engineering design for correctness and completeness |
US5590271A (en) * | 1993-05-21 | 1996-12-31 | Digital Equipment Corporation | Interactive visualization environment with improved visual programming interface |
JP3143278B2 (en) * | 1993-08-18 | 2001-03-07 | 富士通株式会社 | Assembly drawing creation method and device |
US5619630A (en) * | 1994-02-28 | 1997-04-08 | Hitachi, Ltd. | Apparatus for producing exploded view and animation of assembling and method thereof |
JPH0897215A (en) * | 1994-09-29 | 1996-04-12 | Sony Corp | Simulation method of electric characteristic of semiconductor device and input data forming equipment for the simulation method |
US5689711A (en) * | 1995-04-21 | 1997-11-18 | Bardasz; Theodore | Method and apparatus for representing data dependencies in software modeling systems |
US5815154A (en) | 1995-12-20 | 1998-09-29 | Solidworks Corporation | Graphical browser system for displaying and manipulating a computer model |
US5754738A (en) | 1996-06-07 | 1998-05-19 | Camc Corporation | Computerized prototyping system employing virtual system design enviroment |
-
1995
- 1995-12-20 US US08/574,629 patent/US5815154A/en not_active Expired - Lifetime
-
1996
- 1996-12-20 DE DE69602622T patent/DE69602622T2/en not_active Expired - Lifetime
- 1996-12-20 EP EP96945034A patent/EP0868707B1/en not_active Expired - Lifetime
- 1996-12-20 AU AU13494/97A patent/AU1349497A/en not_active Abandoned
- 1996-12-20 WO PCT/US1996/020634 patent/WO1997022952A1/en active IP Right Grant
- 1996-12-20 CA CA002240714A patent/CA2240714A1/en not_active Abandoned
- 1996-12-20 DE DE29623701U patent/DE29623701U1/en not_active Expired - Lifetime
-
1998
- 1998-09-29 US US09/162,592 patent/US6219049B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE29623701U1 (en) | 1999-04-22 |
EP0868707B1 (en) | 1999-05-26 |
EP0868707A1 (en) | 1998-10-07 |
WO1997022952A1 (en) | 1997-06-26 |
AU1349497A (en) | 1997-07-14 |
DE69602622D1 (en) | 1999-07-01 |
US5815154A (en) | 1998-09-29 |
US6219049B1 (en) | 2001-04-17 |
DE69602622T2 (en) | 2000-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2240714A1 (en) | Graphical browser | |
US6219055B1 (en) | Computer based forming tool | |
CA1248636A (en) | Computer-aided design of systems | |
DE69725346T2 (en) | DEVICE AND METHOD FOR PRODUCING A SHEET BENDING MODEL | |
DE69737913T2 (en) | DEVICE AND METHOD FOR ENTERING DATA FOR A BELOW GENERATION FOR LAYERING | |
US5886897A (en) | Apparatus and method for managing and distributing design and manufacturing information throughout a sheet metal production facility | |
WO1998010353A2 (en) | Computer-executed, three-dimensional graphical resource management process and system | |
WO1998044459A1 (en) | Interactive timeline visualization | |
TWI292551B (en) | Spotlight cursor | |
JP3009135B2 (en) | Apparatus and method for distributing design and manufacturing information across sheet metal manufacturing equipment | |
US7184044B2 (en) | Electronic drawing viewer | |
EP1116190B1 (en) | Mate inferencing system and method | |
US6927768B2 (en) | Three dimensional depth cue for selected data | |
JP6826297B1 (en) | Information processing equipment, information processing system, its control method and program | |
Helbing et al. | Dynamic visual emphasis in interactive technical documentation | |
Strothotte et al. | Enrichment and reuse of geometric models | |
McFarland | AutoCAD 2009 and AutoCAD LT 2009: No experience required | |
Glover et al. | A graphics environment for CIM applications | |
Developers | Highlight Color on 36-inch Ink-Jet Plotter Xerox announced the 2230ij Wide Printer-a 36-inch, two-head, monochrome ink-jet plotter. Companyspec-ifications for color palette and line widths indicate up | |
Hunter et al. | Using Maya: Basics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |