// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // // Creation Date: April 3, 1997 // // Description: // The duplicateCurvePreset() procedure executes one or more duplicateCurve // operations based on the duplicate Curve option vars. In general if // you have n curve on surface shapes selected, n operations would be // carried out. // // Input Arguments: // None. // // Return Value: // None. // global proc duplicateCurvePresetArgList( string $version, string $args[] ) // // Description : // Proc to do one or more duplicateCurve ops depending on number // of valid selection items. // { int $doHistory, $curvePartial, $local, $whichIso; $doHistory = $args[0]; $curvePartial = $args[1]; $local = $args[2]; // Version 1 of this procedure had only three args. // Versions after 1 have four args. // if( $version == "1" ) { $whichIso = 0; } else { $whichIso = $args[3]; } //--------------------------------------- // put together a duplicateCurve cmd. //--------------------------------------- // string $cmd = "duplicateCurve" + " -ch " + $doHistory + " -rn " + $curvePartial + " -local " + $local + " "; //---------------------------------------- // place holders for 1 selection items. //---------------------------------------- // int $nitems = 1 ; $cmd = appendToCmdPlaceHoldersForSelectionItems($cmd,$nitems) ; //--------------------------------------------- // Get the list of nurbs curves in select list. //--------------------------------------------- // global int $gSelectCurvesOnSurfacesBit; global int $gSelectNurbsSurfacesBit;; global int $gSelectSurfaceEdgeBit; global int $gSelectIsoparmsBit; global int $gSelectMeshEdge; string $curveList[] = `filterExpand -ex true -sm $gSelectMeshEdge -sm $gSelectCurvesOnSurfacesBit -sm $gSelectSurfaceEdgeBit -sm $gSelectIsoparmsBit`; string $surfaceList[] = `filterExpand -ex true -sm $gSelectNurbsSurfacesBit`; int $curveCount = size($curveList) ; int $ignoredTrims = 0; if( size($surfaceList) > 0 ) { $ignoredTrims = selectVisibleSurfaceIsoparms( $surfaceList, $curveList, $curveCount, $whichIso ); $curveCount = size($curveList) ; } //-------------------------------------------- // Valid # of items. //-------------------------------------------- // if( $curveCount < 1 ) { string $Error = (uiRes("m_duplicateCurvePresetArgList.kValidObjectsError")); string $Help = (uiRes("m_duplicateCurvePresetArgList.kHelpString")); string $msg = ($Error + " " + $Help); error( $msg ); } else { // all n. string $duplicateResults[] ; int $nr = size($duplicateResults) ; int $i ; string $curvePair[1] ; for( $i = 0 ; $i < $curveCount ; $i++ ) { $curvePair[0] = $curveList[$i] ; string $results[] = executeCmdOnItems($cmd,$curvePair); $duplicateResults = stringArrayCatenate($duplicateResults, $results); } // for $i // select the results. // int $resultCount = size($duplicateResults) ; if( $resultCount > 0 ) { global int $gSelectNurbsCurvesBit; string $selectString; $selectString = "select -r "; // select all including DG nodes. // $resultCount = size($duplicateResults) ; for( $i = 0 ; $i < $resultCount ; $i++ ) { $selectString += $duplicateResults[$i] ; $selectString += " "; } $selectString += ";"; select -cl ; eval($selectString) ; } } if( $ignoredTrims > 0 ) { string $msg = (uiRes("m_duplicateCurvePresetArgList.kIgnoredTrims")); $msg = `format -stringArg $ignoredTrims $msg`; warning( $msg ); } }