40623128 - 個人課程網站

六角填充第二版 << Previous Next >> 繪圖功能長度版本

表單

由原本的

更改為下拉式可選所需類型

原始碼:

FeatureScript 975;
import(path : "onshape/std/geometry.fs", version : "975.0");
  
        

annotation { "Feature Type Name" : "Hex In fill" }

export const HexInfill2 = defineFeature(function(context is Context, id is Id, definition is map)
    precondition
    {
        annotation { "Name" : "Part To Hex Infill", "Filter" : EntityType.BODY, "MaxNumberOfPicks" : 1 }  //表單名稱:Part To Hex Infill,可選項目:實體,最大選擇數:1
        definition.PartToInfill is Query;               //把所選項目定義為PartToInfill之後要用到只要輸入definition.PartToInfill就代表所選的實體
        
        annotation { "Name" : "Input type" }
        definition.HexInputType is HexInputType;
        
        //長度表單開始處
        if (definition.HexInputType == HexInputType.length)
        {
            annotation { "Name" : "Wall Thickness" }        //表單名稱:Wall Thickness
            isLength(definition.WallThickness, HEX_BOUNDS);
        }
        
        if (definition.HexInputType == HexInputType.length)
        {
            annotation { "Name" : "Hex Width" }             //表單名稱:Hex Width
            isLength(definition.HexWidth, HEX_BOUNDS);
        }
        
        if (definition.HexInputType == HexInputType.length)
        {
            annotation { "Name" : "% InFill" }              //表單名稱:% InFill
            isInteger(definition.InFill, INFILL_BOUNDS);
        }
        //長度表單結束
        
        //外力表單開始處
        if (definition.HexInputType == HexInputType.force)
        {
            annotation { "Name" : "Force (N)" }             //表單名稱:Force (N)
            isReal(definition.Force, POSITIVE_REAL_BOUNDS); 
        }
        
        if (definition.HexInputType == HexInputType.force)
        {
            annotation { "Name" : "Compressive Strength (Mpa)" }        //表單名稱:Compressive Strength (Mpa)
            isInteger(definition.Compressive, POSITIVE_COUNT_BOUNDS);   //所填數值必需>0
        }
        
        if (definition.HexInputType == HexInputType.force)
        {
            annotation { "Name" : "Safety Factor" }        //表單名稱:Compressive Strength (Mpa)
            isInteger(definition.SafetyFactor, POSITIVE_COUNT_BOUNDS);  //所填數值必需>0
        }
        //外力表單結束
        
        annotation { "Name" : "HexPreview", "Default" : true }//表單名稱:HexPreview 預設:是
        definition.HexPreview is boolean;                     //設定輸出為布林值(輸出1或0判斷是或否)
    }
    
    
    
    {
        

    });
    
export enum HexInputType
{
    annotation { "Name" : "Length" }
    length,
    annotation { "Name" : "Force" }
    force
}


export const INFILL_BOUNDS =   ///設定值域
{
            (unitless)   : [1, 10, 100]
        } as IntegerBoundSpec;  //限定整數
    
export const HEX_BOUNDS =
{
            (millimeter) : [1, 5, 100],
        } as LengthBoundSpec; //限定整數


六角填充第二版 << Previous Next >> 繪圖功能長度版本