private static string constructExportToStlQueryString(OnshapeStlExportParameters parameters, string[] partIds = null)
        {
            StringBuilder queryString = new StringBuilder();

            if (parameters != null)
            {
                if (parameters.angleTolerance != null && parameters.angleTolerance.HasValue)
                {
                    queryString.AppendQueryParam("angleTolerance", parameters.angleTolerance.Value);
                }
                if (parameters.chordTolerance != null && parameters.chordTolerance.HasValue)
                {
                    queryString.AppendQueryParam("chordTolerance", parameters.chordTolerance.Value);
                }
                if (parameters.grouping != null && parameters.grouping.HasValue)
                {
                    queryString.AppendQueryParam("grouping", parameters.grouping.Value);
                }
                if (parameters.maxFacetWidth != null && parameters.maxFacetWidth.HasValue)
                {
                    queryString.AppendQueryParam("maxFacetWidth", parameters.maxFacetWidth.Value);
                }
                if (parameters.minFacetWidth != null && parameters.minFacetWidth.HasValue)
                {
                    queryString.AppendQueryParam("minFacetWidth", parameters.minFacetWidth.Value);
                }
                if (!String.IsNullOrEmpty(parameters.mode))
                {
                    queryString.AppendQueryParam("mode", parameters.mode);
                }
                if (parameters.scale != null && parameters.scale.HasValue)
                {
                    queryString.AppendQueryParam("scale", parameters.scale.Value);
                }
                if (!String.IsNullOrEmpty(parameters.units))
                {
                    queryString.AppendQueryParam("units", parameters.units);
                }
            }
            if (partIds != null && partIds.Length > 0)
            {
                queryString.AppendQueryParam("partIds", WebUtility.UrlEncode(String.Join(",", partIds)));
            }
            return(queryString.ToString());
        }
示例#2
0
        internal static OnshapeStlExportParameters createStlExportParams(Dictionary <string, List <string> > options)
        {
            string angleToleranceStr          = options.GetOptionValue(Constants.ANGLE_TOLERANCE);
            string chordToleranceStr          = options.GetOptionValue(Constants.CHORD_TOLERANCE);
            string groupingStr                = options.GetOptionValue(Constants.GROUPING);
            string maxFacetWidthStr           = options.GetOptionValue(Constants.MAX_FACET_WIDTH);
            string minFacetWidthStr           = options.GetOptionValue(Constants.MIN_FACET_WIDTH);
            string modeStr                    = options.GetOptionValue(Constants.MODE);
            string scaleStr                   = options.GetOptionValue(Constants.SCALE);
            string unitsStr                   = options.GetOptionValue(Constants.UNITS);
            OnshapeStlExportParameters result = new OnshapeStlExportParameters
            {
                mode  = modeStr,
                units = unitsStr
            };

            if (angleToleranceStr != null)
            {
                result.angleTolerance = Double.Parse(angleToleranceStr);
            }
            if (chordToleranceStr != null)
            {
                result.chordTolerance = Double.Parse(chordToleranceStr);
            }
            if (groupingStr != null)
            {
                result.grouping = Boolean.Parse(groupingStr);
            }
            if (maxFacetWidthStr != null)
            {
                result.maxFacetWidth = Double.Parse(maxFacetWidthStr);
            }
            if (minFacetWidthStr != null)
            {
                result.minFacetWidth = Double.Parse(minFacetWidthStr);
            }
            if (scaleStr != null)
            {
                result.scale = Double.Parse(scaleStr);
            }
            return(result);
        }
        public async Task <Stream> ExportPartToStl(String documentId, String wvmSelector, String selectorId, String elementId, String partId, OnshapeStlExportParameters parameters)
        {
            Stream result   = null;
            var    response = await HttpGet(appendQueryString(String.Format(Constants.EXPORT_PART_API_URI, documentId, wvmSelector, selectorId, elementId, partId, Constants.STL_FORMAT_NAME),
                                                              constructExportToStlQueryString(parameters)));

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                result = await response.Content.ReadAsStreamAsync();
            }
            return(result);
        }
 internal static OnshapeStlExportParameters createStlExportParams(Dictionary<string, List<string>> options)
 {
     string angleToleranceStr = options.GetOptionValue(Constants.ANGLE_TOLERANCE);
     string chordToleranceStr = options.GetOptionValue(Constants.CHORD_TOLERANCE);
     string groupingStr = options.GetOptionValue(Constants.GROUPING);
     string maxFacetWidthStr = options.GetOptionValue(Constants.MAX_FACET_WIDTH);
     string minFacetWidthStr = options.GetOptionValue(Constants.MIN_FACET_WIDTH);
     string modeStr = options.GetOptionValue(Constants.MODE);
     string scaleStr = options.GetOptionValue(Constants.SCALE);
     string unitsStr = options.GetOptionValue(Constants.UNITS);
     OnshapeStlExportParameters result = new OnshapeStlExportParameters
     {
         mode = modeStr,
         units = unitsStr
     };
     if (angleToleranceStr != null)
     {
         result.angleTolerance = Double.Parse(angleToleranceStr);
     }
     if (chordToleranceStr != null)
     {
         result.chordTolerance = Double.Parse(chordToleranceStr);
     }
     if (groupingStr != null)
     {
         result.grouping = Boolean.Parse(groupingStr);
     }
     if (maxFacetWidthStr != null)
     {
         result.maxFacetWidth = Double.Parse(maxFacetWidthStr);
     }
     if (minFacetWidthStr != null)
     {
         result.minFacetWidth = Double.Parse(minFacetWidthStr);
     }
     if (scaleStr != null)
     {
         result.scale = Double.Parse(scaleStr);
     }
     return result;
 }