Seam modification for 3D CAD models

Various disclosed embodiments include a method to be performed by a data processing system and including identifying an original curve and an intended location of a new curve in a CAD model. The method also includes generating a transition curve from the original curve. The method further includes determining a displacement function of the new curve and applying the displacement function to the transition curve. The displacement function includes two or more control points. The method includes combining the two or more control points into one transition curve control point. The method also includes adjusting the transition curve control point based on a fullness value so that transition curve overlays the location of the new curve.

TECHNICAL FIELD

The present disclosure is directed, in general, to computer-aided design, visualization, and manufacturing systems (“CAD systems”), and systems, that manage data for products and other items (collectively, “Product Data Management” systems or PDM systems).

BACKGROUND OF THE DISCLOSURE

CAD systems are useful for designing and visualizing three-dimensional (3D) models and models. Improved systems are desirable.

SUMMARY OF THE DISCLOSURE

Various disclosed embodiments include a method to be performed by a data processing system and including identifying an original curve and an intended location of a new curve in a computer-aided design (CAD) model. The method also includes generating a transition curve from the original curve. The method further includes determining a displacement function of the new curve and applying the displacement function to the transition curve. The displacement function includes two or more control points. The method includes combining the two or more control points into one transition curve control point. The method also includes adjusting the transition curve control point based on a fullness value so that transition curve overlays the location of the new curve.

Various disclosed embodiments also include a data processing system including a processor. The data processing system also includes an accessible memory. The data processing system is particularly configured to identify an original curve and an intended location of a new curve in a computer-aided design (CAD) model. The data processing system is also configured to generate a transition curve from the original curve. The data processing system is further configured to determine a displacement function of the new curve and apply the displacement function to the transition curve. The displacement function includes two or more control points. The data processing system is configured to combine the two or more control points into one transition curve control point. The data processing system is also configured to adjust the transition curve control point based on a fullness value so that transition curve overlays the location of the new curve.

Various disclosed embodiments further include a non-transitory computer-readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to identify an original curve and an intended location of a new curve in a computer-aided design (CAD) model. The non-transitory computer-readable medium also causes one or more data processing systems to generate a transition curve from the original curve. The non-transitory computer-readable medium further causes one or more data processing systems to determine a displacement function of the new curve and apply the displacement function to the transition curve. The displacement function includes two or more control points. The non-transitory computer-readable medium further causes one or more data processing systems to combine the two or more control points into one transition curve control point. The non-transitory computer-readable medium further causes one or more data processing systems to adjust the transition curve control point based on a fullness value so that transition curve overlays the location of the new curve.

DETAILED DESCRIPTION

FIG. 1illustrates a block diagram of a data processing system100in which an embodiment can be implemented, for example in a CAD or PDM system particularly configured by software or otherwise to perform the processes as described herein, and in particular as each one of a plurality of interconnected and communicating systems as described herein. The data processing system100depicted can include a processor102connected to a level two cache/bridge104, which is connected in turn to a local system bus106. Local system bus106may be, for example, a peripheral component interconnect (PCI) architecture bus. Also connected to local system bus in the depicted example are a main memory108and a graphics adapter110. The graphics adapter110may be connected to display111. In an embodiment, the main memory108and the storage126can be configured to store one or more displacement functions which can be used to maintain or change the shape of a transition curve as will be discussed further herein.

Other peripherals, such as local area network (LAN)/Wide Area Network/Wireless (e.g. Wi-Fi) adapter112, can also be connected to local system bus106. Expansion bus interface114connects local system bus106to input/output (I/O) bus116. I/O bus116is connected to keyboard/mouse adapter118, disk controller120, and I/O adapter122. Disk controller120can be connected to a storage126, which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices.

Also connected to I/O bus116in the example shown is audio adapter124, to which speakers (not shown) can be connected for playing sounds. Keyboard/mouse adapter118can provide a connection for a pointing device (not shown), such as a mouse, trackball, track pointer, touchscreen, etc.

Those of ordinary skill in the art will appreciate that the hardware depicted inFIG. 1may vary for particular implementations. For example, other peripheral devices, such as an optical disk drive and the like, also can be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.

A data processing system100in accordance with an embodiment of the present disclosure can include an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface can be manipulated by a user through the pointing device. The position of the cursor can be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.

LAN/WAN/Wireless adapter112can be connected to a network130(not a part of data processing system100), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system100can communicate over network130with server system140, which is also not part of data processing system100, but can be implemented, for example, as a separate data processing system.

Computer-Aided Design (CAD) systems can be used to model a plurality of objects in a virtual 3D environment. Many of these objects can have seams, edges, or the like (such as curved seams) (collective hereinafter “seams” or “curves”) to provide shape and contour to the object. Seams of a 3D CAD model modelling an object can be modified geometrically in a 3D CAD system for aesthetic purposes, comfort purposes (such as in the case of seat covers), manufacturing purposes, and the like. For example, a seam can be modified by bending or offsetting, either the entire seam or only a portion of the seam. Seams can also be interconnected with other seams on the same object such that after a seam has been modified one or more other seams may require modification in order to maintain the interconnection between seams.

FIG. 2illustrates an example of a seam modification according to this disclosure. As illustrated inFIG. 2, a seat back trim cover200can include a plurality of seams202,204,206,208,210,212, and214. In an embodiment, seam202can be an original seam. In order to reduce wrinkle during sewing of the seat back trim cover200, for example, the seam202can be modified to produce new seam216. For example, seam202can be bent or extended at or between fixed points218and220to produce new seam216at the new seam location. In an embodiment, because seams206and210are connected to seam202, after seam202is converted to new seam216, seams206and210can be modified (such as trimmed) so that seams206and210connect with new seam216without extending through new seem216.

As illustrated inFIG. 2, modifying seams and subsequently modifying additional seams to maintain an interconnection between seams can be tedious and time consuming tasks. These tasks can also require the skill of a CAD operator with the experience to achieve the desired shape and quality of the final curve and to choose the right combination of CAD tools in order to do so. For example, due to the constraints from control point locations and spacing, it can be difficult to bend or extend seam202the distance required to convert seam202into new seam216while attaining the desired shape and location of new seam216. Additional time and effort may also be necessary to modify the affected seams (such as seams206and210) to maintain seam network connectivity. Furthermore, an assortment of CAD tools (such as join, split, trim, extend, spline, bridge, isoparametric, projection, offset, and the like) may be used to convert an original seam to a new seam. In one or more embodiments disclosed herein, a data processing system100or a 3D CAD (hereinafter “system100”) system100of a 3D CAD system can be used to (1) control or change a seam curve to attain the location and shape of a new seam curve through a single parameter; (2) automatically maintain seam network connectivity; and (3) consolidate a plurality of CAD tools in order to control or change a seam curve to attain the location and shape of a new seam curve and to maintain seam network connectivity. In an embodiment, other curves functions such as B-spline curves, nurbs curves, and analytical functions can be used. Even though a seam curve can be controlled or changed through a single parameter, curve can also be controlled or change by consolidating parameters into two or more parameters. In an embodiment, different curve shapes and correlating curve functions can be stored for example in a table and referenced to determine which parameters and how those parameters can be consolidated.

FIG. 3Aillustrates an example of a graphical transition300between an original curve302and a new curve304according to this disclosure. As illustrated inFIG. 3A, the system100can identify two limit points306and308and define the limits (such as ends) of original curve302where a modification can occur. The system100can also identify an offset point310along the original curve302and can determine the point from which the original curve302can be moved in order to transition from the location of the original curve302to the location of the new curve304. In an embodiment, the offset point310can be a maximum offset point such that transition curve312A has the greatest offset from the location of the original curve302at the offset point310. The system100can move a transition curve312A, which can be the portion of the original curve302between limit points (such as limit points306and308) as the offset point310moves the original curve302to the position of the new curve304(such as to at least a point intersecting along the location of the new curve304). In an embodiment, the system100can identify two or more offset points. In this case, the system100can move at least the portion of the transition curve312A between the offset points so that two or more points along the transition curve can intersect with two or more points along the new curve.

The system100can also divide the transition curve312A into at least two transition curve sections312B and312C. The transition curve sections312B and312C can have many different shapes. The system100can determine a displacement function (or delta curve) which can be applied to the transition curve section312B in order to change or maintain the shape of a transition curve section312B so that transition curve section312B overlays (such as lays in the same position as and with the same shape of) the new curve304.

The displacement function of a transition curve section312B, for example, can be modelled by the system100with a plurality of different displacement functions depending on the shape of the new curve304.FIG. 3Billustrates an example Cartesian coordinate graph of a displacement function350according to this disclosure. As illustrated inFIG. 3B, the displacement function350of a transition curve section312B can be a cubic Bezier curve function with two control points: control point354controlling the movement of point364and control point356controlling the movement of point366. It should be understood that these concepts are the same as if all four points362,364,366, and368are considered control points and that points362and368are fixed so that only points364and366can move. Points362and368can represent the limit point306and offset point310, respectively, of transition curve312A illustrated inFIG. 3A. Accordingly, points362and368may not have control points associated with them (or points362and368can be fixed control points) thereby fixing those points in a particular position (such as the relative positions of limit point306and offset point310). In an embodiment, all of the points (such as points362,364,366, and368) can be manipulated and one or more of those points can be fixed. The displacement function350illustrated inFIG. 3Bcan be used by the system100to shape the transition curve section312B into the shape of the new curve304between the limit point306and the offset point310illustrated inFIG. 3A. In an embodiment, the transition curve312A can have limit points (such as limit points306and308) and offset points (such as offset point310) with tangency constraints. Because of these tangency constraints, the system100can configure the control points364and366to limit movement to be horizontal only. The full control of such a displacement function350and the overlay of the transition curve section312B over the new curve304can require two separate controls (one for a horizontal displacement of point364along with or using control point354and the other for a horizontal displacement of point366along with or using control point356).

The system100can combine the two separate controls into a single control for example, based on additional assumptions one or more algorithms associated with particular curve shapes or one or more tables associated with particular curve shapes.FIG. 3Cillustrates an example Cartesian coordinate graph of a displacement function370according to this disclosure. Similar to displacement function350ofFIG. 3B, displacement function370can have two control points: control point374controlling the movement of point384and control point376controlling the movement of point386. Points382and388can represent the limit point306and offset point310ofFIG. 3A. Accordingly, the system100may not associate control points with points382and388thereby fixing those points in a particular position (such as the relative positions of limit point306and offset point310). Also similar to displacement function350ofFIG. 3B, the system100can limit control points374and376of the displacement function370to only horizontal movement due to tangency constraints. However, in order to have a single control, the system100can lock control points374and376in unison by a locking line so that not only do control points374and376move in a horizontal direction, but control points374and376also move together in a horizontal direction.FIG. 3Cillustrates an example of control points locked in unison such that control point374and376can be joined and locked in unison by locking line390which in this embodiment is perpendicular to horizontal lines392and394. As such, the only remaining control is the horizontal movement of locking line390. Accordingly, the system100can adjust the displacement function based on a relative horizontal position of (or a distance between) a locking line (or a point such as a midpoint along the locking line) and another horizontal position on the Cartesian coordinate graph.

As previously discussed, the system100can adjust a displacement function based on changing the relative horizontal position of a locking line (such as locking line390) with a horizontal position of a point (such as points382and388). For example, the system100can assign point382with Cartesian coordinate of (0,0) and the point388with Cartesian coordinate of (1,1). The horizontal distance of the locking line390from the point382or the horizontal distance of the locking line390from the point388(hereinafter “fullness” or “fullness value”) can determine the shape of the displacement function. The system100can adjust a shape of a displacement function based on the horizontal distance of the locking line390from the point382or the horizontal distance of the locking line390from the point388. As illustrated inFIG. 3C, a horizontal distance between the locking line390and the horizontal coordinate of the point388can be indicated by a distance of line396. The distance of line396can indicate a fullness value398. Accordingly, by providing or determining a fullness value, the system100can adjust a shape of a displacement function in order to align the transition curve section312B with the location of the new curve304. In an embodiment, the fullness value398can be a fraction of a horizontal distance of the transition curve sections312B.

In an embodiment, once the system100models the transition curve section312B based on the shape of the new curve304(such as between the limit point306and the offset point310) and adjusts the displacement function (such as by adjusting the fullness value398) so that transition curve section312B overlays the intended position of the new curve304, the system100can apply the same procedure to the transition curve section312C to overlay the transition curve section312C over the new curve304(such as between the offset point310and the limit point308). In an embodiment, if the new curve304from the offset point310to the limit point308is the mirror image of the new curve304from the limit point306to the offset point310, the system100can generate the transition curve section312C based on the mirror image of the transition curve section312B. The system100can then overlay the transition curve section312C over the intended position of the new curve304from the offset point310to the limit point308without modelling the transition curve section312C based on the shape of the new curve304and without adjusting the displacement function (via adjusting the fullness value) of the transition curve section312C.

FIGS. 4A, 4B, and 4Cillustrate examples of displacement functions with different fullness values according to this disclosure. The transition curves412A,412B, and412C illustrated inFIGS. 4A, 4B, and 4Ccan be indicative of displacement function370illustrated inFIG. 3Cwith different fullness values398. For example,FIG. 4Aillustrates a transition curve412A with displacement function370having a fullness value398of 0.30.FIG. 4Billustrates a transition curve412B with displacement function370having a fullness value398of 0.50.FIG. 4Cillustrates a transition curve412C with displacement function370having a fullness value398of 0.70.

In an embodiment, transition curves or transition curve sections with only one tangency constraint can have three controls over the shape of the transition curve.FIG. 5Aillustrates an example of a graphical transition500between an original curve502and a new curve504according to this disclosure. As illustrated inFIG. 5A, two limit points506and510, identified by the system100, can define the limits (such as ends) of original curve502where a modification can occur. In an embodiment, a limit point (such as limit point510) can also be an offset point. As such, the system100can identify that the limit point510is also the offset point and move the transition curve512from the original curve502to the location of new curve504by dragging the offset point510along line509until at least the offset point510intersects a point along the position of the new curve504. The transition curve512can have many different shapes. The system100can determine a displacement function which can be applied to the transition curve512in order to change or maintain the shape of a transition curve512so that transition curve512overlays (such as lays in the same position as and with the same shape of) the new curve504.

The displacement function of a transition curve512can be modelled by the system100with a plurality of different curve functions depending on the intended shape of the new curve504.FIG. 5Billustrates an example Cartesian coordinate graph of a displacement function520according to this disclosure. As illustrated inFIG. 5B, the displacement function520of a transition curve can be a curve function with three control points: control point524controlling the movement of point534, control point526controlling the movement of point536, and control point527controlling the angle of line537. Points532and538can represent the limit point506and offset point510of transition curve512illustrated inFIG. 5A. Accordingly, points532and538may not have control points associated with them thereby fixing those points in a particular position (such as the relative positions of limit point506and offset point510). It should be understood that these concepts can be the same as if points532,534,536,537, and538are all control points and control points532and538are fixed so that only the remaining control points move. The displacement function520illustrated inFIG. 5Bcan be used by the system100to shape the transition curve512into the intended shape of the new curve504between the limit point506and the offset point510illustrated inFIG. 5A. In an embodiment, the transition curve512can have limit points (such as limit point506) and offset point (such as offset point510) with tangency constraints. Because of these tangency constraints, the system100can configure the control points524to limit point534to horizontal movement. The full control of such a displacement function520and the overlay of the transition curve512over the intended location of the new curve504can require three separate controls (one for a horizontal displacement of point534using control point524, one for the displacement of point536using control point526, and one for changing the angle of line537using control point527).

The system100can combine the three separate controls (control points524,526, and527) into a single control based on additional assumptions.FIG. 5Cillustrates an example Cartesian coordinate graph of a displacement function550according to this disclosure. Similar to displacement function520ofFIG. 5B, displacement function550can have three control points: control point554controlling the movement of point564, control point556controlling the movement of point566, and control point557controlling the angle of line567. Points562and568can represent the limit point506and offset point510ofFIG. 5A. Accordingly, the system100may not associate control points with points562and568thereby fixing those points in a particular position (such as the relative positions of limit point506and offset point510). Also, as illustrated inFIG. 5B, the system100can limit control point564of the displacement function550to only horizontal movement due to tangency constraints. However, in order to have a single control, the system100can determine the midpoint (such as midpoints572,582, and592) of line565and the measure the horizontal distance between the midpoint of line565and a horizontal distance of one of the point562(which can represent the limit point506ofFIG. 5A) or the point568(which can represent the offset point510ofFIG. 5A) in order to determine a fullness value (such as fullness values574,584, and594). As such, the only remaining control is the horizontal movement of the midpoint of the line565. Accordingly, the system100can adjust the fullness value of a displacement function based on a relative horizontal position of (or a distance between) a midpoint of the line565and another horizontal position on the Cartesian coordinate graph.

As previously discussed, the system100can adjust a fullness value of a displacement function based on changing the relative horizontal position of a midpoint of line565with a horizontal position of a point (such as points562and568). For example, the system100can assign point562with Cartesian coordinate of (0,0) and the point568with Cartesian coordinate of (1,1). The horizontal distance of the midpoint (such as midpoints572,582, and592) of line565from the point562or the horizontal distance of the midpoint of line565from the point568can determine a fullness value and the shape of the displacement function. For example, when the fullness value is 0.0, points564and566can be at the starting point (such as position (1,0)). When the fullness value is 0.5, the two control points can move to position (0.2,0.0) and (0.8,0.6), respectively, forming the line565/580. When the fullness value is 1.0, point564can move to position562and point566can move to position (0.0, 1.0). The other positions can be interpolated from these three positions based on the fullness value. Displacement functions570,580and590as illustrated inFIG. 5Ccan each represent displacement function550but with different fullness values. The system100can adjust a shape of a displacement function (for example from displacement function570to displacement function580and to displacement function590) based on a fullness value (such as fullness values574,584, and594) and in this case the horizontal distance of the midpoint of line565from the point562or the horizontal distance of the midpoint of line565from the point568. Accordingly, by providing or determining a fullness value, the system100can adjust a shape of a displacement function in order to align the transition curve section512with the intended location of the new curve504. In an embodiment, the fullness value (such as fullness values574,584, and594) can be a fraction of a horizontal distance of the transition curve512.

FIGS. 6A, 6B, and 6Cillustrate examples of displacement functions with different fullness values according to this disclosure. The transition curves612A,612B, and612C illustrated inFIGS. 6A, 6B, and 6Ccan be indicative of displacement function570,580, and590illustrated inFIG. 5Cwith different fullness values574,584, and594. For example,FIG. 6Aillustrates a transition curve612A with displacement function570having a fullness value574of 0.70.FIG. 6Billustrates a transition curve612B with displacement function580having a fullness value584of 0.50.FIG. 6Cillustrates a transition curve612C with displacement function590having a fullness value594of 0.30.

In an embodiment, transition curves or transition curve sections with no tangency constraints can have four controls over the shape of the transition curve.FIG. 7Aillustrates an example of a graphical transition700between an original curve702and the intended location of the new curve704according to this disclosure. As illustrated inFIG. 7A, two limit points706and710, identified by the system100, can define the limits (such as ends) of original curve702where a modification can occur. In an embodiment, a limit point (such as limit point710) can also be an offset point. As such, the system100can identify that the limit point710is also the offset point and move the transition curve712from the original curve702to the location of the new curve704by dragging the offset point710along line709until at least the offset point710intersects a point along the intended location of the new curve704. The transition curve712can have many different shapes. The system100can determine a displacement function which can be applied to the transition curve712in order to change or maintain the shape of a transition curve712so that transition curve712overlays the new curve704.

The displacement function of a transition curve712can be modelled by the system100with a plurality of different displacement functions depending on the intended shape of the new curve704.FIG. 7Billustrates an example Cartesian coordinate graph of a displacement function720according to this disclosure. As illustrated inFIG. 7B, the displacement function720of a transition curve can be a cubic Bezier curve function with four control points: control point723controlling the angle of line733, control point724controlling the movement of point734, control point726controlling the movement of point736, and control point727controlling the angle of line727. Points732and738can represent the limit point706and offset point710of transition curve712illustrated inFIG. 7A. Accordingly, points732and738may not have control points associated with them thereby fixing those points in a particular position (such as the relative positions of limit point706and offset point710). It should be understood that these concepts can be the same as if points732,733,734,736,737, and738are all control points and control points732and738are fixed so that only the remaining control points move. The displacement function720illustrated inFIG. 5Bcan be used by the system100to shape the transition curve712into the intended shape of the new curve704between the limit point706and the offset point710illustrated inFIG. 7A. In an embodiment, the transition curve712can have points and lines (such as points734and736and lines733and737) with no tangency constraints. Without tangency constraints, the full control of such a displacement function720and the overlay of the transition curve712over the location of the new curve704can require four separate controls (one for changing the angle of line733using control point723, one for the displacement of point734using control point724, one for the displacement of point736using control point726, and one for changing the angle of line737using control point727).

The system100can combine the four separate controls (control points723,724,726, and727) into a single control based on additional assumptions.FIG. 7Cillustrates an example Cartesian coordinate graph of a displacement function750according to this disclosure. Similar to displacement function720ofFIG. 7B, displacement function750can have four control points: control point773controlling the angle of line763, control point774controlling the movement of point764, control point776controlling the movement of point766, and control point777controlling the angle of line767. Points762and768can represent the limit point706and offset point710ofFIG. 7A. Accordingly, the system100may not associate control points with points762and768thereby fixing those points in a particular position (such as the relative positions of limit point706and offset point710). In order to have a single control, the system100can assign point762with Cartesian coordinate of (0,0) and the point768with Cartesian coordinate of (1,1). The system100can then determine the midpoint775of a line765based on a line780from Cartesian coordinate (0,1) to Cartesian coordinate (1,0) and determine a fullness value784based on the distance along the line780of the midpoint775of line765between the Cartesian coordinate (0,1) or the Cartesian coordinate (1,0). As such, the only remaining control is the displacement of the midpoint775of the line765. Accordingly, the system100can adjust the fullness value of a displacement function based on a relative position of (or a distance between) a midpoint775of the line765and another position on the Cartesian coordinate graph.

As previously discussed, the system100can adjust a fullness value of a displacement function based on changing the relative position of a midpoint775of line765with a position of a point. It should be understood, the system100can choose line765based on the effect that adjusting the position of the midpoint775of line765has on the control points (such as control points723,724,726, and727). Displacement functions770and780as illustrated inFIG. 7Ccan each represent displacement function750but with different fullness values. The system100can adjust a shape of a displacement function (for example from displacement function770to displacement function780) based on a fullness value (such as fullness values784and794) and in this case the distance from the midpoint775of line765to the point795((1,0) on the Cartesian coordinate graph) or the distance from the midpoint775of line765to the point796((0,1) on the Cartesian coordinate graph). In an embodiment, the fullness value784associated with displacement function770can be 0.75 and the fullness value794associated with displacement function780can be 0.25. Accordingly, by providing or determining a fullness value, the system100can adjust a shape of a displacement function in order to align the transition curve section712with the intended location of the new curve704.

FIGS. 8A, 8B, and 8Cillustrate examples of displacement functions with different fullness values according to this disclosure. The transition curves812A,812B, and812C illustrated inFIGS. 8A, 8B, and 8Ccan be indicative of displacement function750illustrated inFIG. 7Cwith different fullness values784(or794). For example,FIG. 8Aillustrates a transition curve812A with displacement function750having a fullness value784of 0.30.FIG. 8Billustrates a transition curve812B with displacement function750having a fullness value784of 0.50.FIG. 8Cillustrates a transition curve812C with displacement function750having a fullness value784of 0.70.

FIGS. 9A and 9Billustrate examples of CAD models900A and900B with shape changes from original curves902A and902B to transition curves912A and912B overlaying the intended positions of new curves904A and904B between limit points906A and908A as well as906B and908B, respectively, according to this disclosure. In an embodiment, the curves can represent seams in a CAD model of a fabric. The system100may have previously pulled the offset points910A and910B to intersect with at least one point of the new curves904A and904B, respectively. New curves904A and904B can be represented by the same displacement function but can require different fullness values based on the variations in shape. Accordingly, as shown inFIG. 9A, the system100can modify the fullness value of the displacement function of the transition curve912A to 0.70 so that transition curve912A can overlay the intended position of new curve904A. Furthermore, as shown inFIG. 9B, the system100can modify the fullness value of the displacement function of the transition curve912B to 0.90 so that transition curve912B can overlay the intended position of new curve904B. In an embodiment, once the transition curves912A and912B are overlaid the intended positions new curves904A and904B, respectively, the system100can delete the original curves902A and902B.

FIGS. 10A, 10B, and 10Cillustrate examples of CAD models1000A,1000B, and1000C with shape changes from original curves1002A,1002B, and1002C to transition curves1012A,1012B, and1012C overlaying new curves1004A,1004B, and1004C between limit points1006A and1010A,1006B and1010B, as well as1006C and1010C, respectively, according to this disclosure. In an embodiment, the curves can represent seams in a CAD model of a fabric. Limit points1010A,1010B, and1010C can also be offset points. The system100may have previously pulled the offset points1010A,1010B, and1010C to intersect with at least one point of the new curves1004A,1004B, and1004C, respectively. New curves1004A,1004B, and1004C can be represented by the same displacement function but can require different fullness values based on the variations in shape. Accordingly, as shown inFIG. 10A, the system100can modify the fullness value of the displacement function of the transition curve1012A to 0.30 so that transition curve1012A can overlay the intended position of new curve1004A. Furthermore, as shown inFIG. 10B, the system100can modify the fullness value of the displacement function of the transition curve1012B to 0.50 so that transition curve1012B can overlay the intended position of new curve1004B. Additionally, as shown inFIG. 10C, the system100can modify the fullness value of the displacement function of the transition curve1012C to 0.80 so that transition curve1012C can overlay the intended position of new curve1004C. In an embodiment, once the transition curves1012A,1012B, and1012C are overlaid, they become the new curves1004A,1004B, and1004C, respectively. Subsequently, the system100can delete the original curves1002A,1002B, and1002C.

In an embodiment, after modifying a curve or seam of a fabric in a CAD model, the system100can modify one or more connecting curves or seams intersecting with the original curve or terminating at the original curve so that the one or more connecting curves or seams intersect with the new curve or terminate at the new curve.FIG. 11Aillustrates an example of a CAD model system1100A with an original curve1102A, a new curve1104A, and one or more connecting curves1114A and1116A according to this disclosure. As illustrated inFIG. 11A, the one or more connecting curves1114A and1116A can terminate at the original curve1102A. The system100can recognize the one or more connecting curves1114A and1116A and that the one or more connecting curves1114A and1116A terminate at the original curve1102A. The system100can also identify the new curve1104A and modify the one or more connecting curves1114A and1116A so that they terminate at new curve1104A instead of the original curve1102A or the location of the original curve1102A before the original curve1102A was deleted. The system100can trim, extend, bend, or straighten one or more connecting curves so that the connecting curve aligns with new curve as they previously aligned with the original curve.

FIG. 11Billustrates an example of a CAD model system1100B with an indication of the location of the original curve1102B, a new curve1104B, and one or more connecting curves1114B and1116B according to this disclosure. As illustrated inFIG. 11B, the system100has modified the one or more connecting curves1114B and1116B so that they terminate at the new curve1104B instead of the location of the original curve1102B. In an embodiment, the system100can also modify one or more nearby curves that may not intersect with an original curve when an original curve is replaced with a new curve so that the distances or relative distances of the one or more nearby curves and new curve is the same as the distances or relative distances of the one or more nearby curves and the location of the original curve.

FIGS. 12A-12Pillustrate example diagrams of curve or seam modification use cases according to this disclosure.FIGS. 12A-12Pillustrate different curve or seam modifications with different displacement functions. As discussed herein, the system100can modified a curve or seam in a CAD file from an original curve to a new curve using a transition curve. The system100can modify a curve or seam in a CAD file many different ways including by moving an offset point and changing a fullness value.FIGS. 12A-12Pillustrate sixteen use case examples of how curves can be modified by the system100.

FIG. 13illustrates an example diagram of a user interface associated with the system100according to this disclosure. The system100, via the user interface1318can be configured to receive inputs to modify a curve or seam. For example, through the user interface1318, the system100can receive one or more inputs in a curve type space1320indicating a type of curve to be implemented as the new curve. Through the user interface1318, the system100can receive one or more inputs in an offset point space1322indicating the location of one or more offset points of a transition curve to be implemented when form the new curve. Through the user interface1318, the system100can receive one or more inputs in a limit point space1324indicating the location of one or more limit points of a transition curve to be implemented when forming the new curve. Through the user interface1318, the system100can receive one or more inputs in a maximum offset space1326indicating the maximum perpendicular distance from a tangent line of one or more offset points that a transition curve can moved when forming the new curve. Through the user interface1318, the system100can receive one or more inputs in a fullness value space1328indicating the fullness value of a displacement function of a transition curve so that the transition curve can overlay the new curve. Through the user interface1318, the system100can receive an input from the modify box1330to implement any one or more of the above parameters. For example, after the system100has positioned the transition curve in the intended location of the new curve, the curve can be further modified based on any of the above parameters or inputs. Reverse direction box1332can be used to change the direction of the maximum offset1326. For example, if maximum offset is 20 mm and the reverse direction box1332is not selected, the maximum offset can be 20 mm in a first direction. Conversely, if the reverse direction box1332is selected, the maximum offset can be 20 mm in a second direction opposite the first direction.

FIG. 14illustrates an example method1400to be performed by a data processing system100in a CAD system on a CAD model with one or more curves according to this disclosure. At step1405, the data processing system100can identify an original curve and an intended location of a new curve in a CAD model. In an embodiment, the data processing system100can be configured to identify two or more limit points along the original curve when identifying the original curve.

At step1410, the data processing system100can generate a transition curve from the original curve. In an embodiment, the data processing system100can generate a transition curve from a portion of the original curve between two limit points.

At step1415, the data processing system100can determine a displacement function of the new curve and apply the displacement function to the transition curve. In an embodiment, the displacement function can include two or more control points.

At step1420, the data processing system100can combine two or more control points of the displacement function into one transition curve control point. In an embodiment, the transition curve control point can be controlled based on a fullness value.

At step1425, the data processing system100can adjust the transition curve control point based on the fullness value so that transition curve overlays the intended location of the new curve. In an embodiment, the fullness value can be a relative distance in a Cartesian coordinate graph between a point along the displacement function and another point in the Cartesian coordinate graph. In an embodiment, the data processing system100can identify a midpoint of a line of the displacement function in a Cartesian coordinate graph and can adjust a distance from the midpoint of the line of the displacement function to point in the Cartesian coordinate graph in order to adjust the transition curve control point based on the fullness value.

At step1430, after modifying a curve or seam of a fabric in a CAD model, the system100can modify one or more connecting curves or seams intersecting with the original curve or terminating at the original curve so that the one or more connecting curves or seams intersect with the new curve or terminate at the new curve.

Of course, those of skill in the art will recognize that, unless specifically indicated or required by the sequence of operations, certain steps in the processes described above may be omitted, performed concurrently or sequentially, or performed in a different order.