private double CalcFaxrkUpperLimitValue(Fastener fastener)
        {
            string type     = fastener.type;
            string nailType = fastener.nailType;

            if (type == "nail" && nailType == "round")
            {
                return(0.15);
            }
            else if (type == "nail" && nailType == "square")
            {
                return(0.25);
            }
            else if (type == "nail")
            {
                return(0.50);
            }
            else if (type == "screw")
            {
                return(1);
            }
            else if (type == "bolt")
            {
                return(0.25);
            }
            else if (type == "dowel")
            {
                return(0);
            }
            return(1);
        }
 public TimberToTimberCapacity(
     Fastener Fastener,
     double T1,
     double Tpen,
     double Alfa,
     string TimberMaterial,
     string ConnectorMaterial,
     bool PreDrilled,
     double Pk1,
     double Pk2,
     double T_head,
     string WoodType,
     double N
     )
 {
     this.t1                = T1;
     this.tpen              = Tpen;
     this.alfa              = Alfa;
     this.fastener          = Fastener;
     this.timberMaterial    = TimberMaterial;
     this.connectorMaterial = ConnectorMaterial;
     this.preDrilled        = PreDrilled;
     this.pk1               = Pk1;
     this.pk2               = Pk2;
     this.woodType          = WoodType;
     this.t_head            = T_head;
     this.n                = N;
     this.variables        = new Variables(Fastener, PreDrilled, Pk1, Pk2, Alfa, WoodType, T1, Tpen, N);
     this.Faxrk_upperLimit = this.CalcFaxrkUpperLimitValue(Fastener);
 }
Beispiel #3
0
        public double GetTpen(Fastener fastener, double t1, double t2)
        {
            double tpoint = fastener.l - t1;

            if (t2 - tpoint <= 4 * fastener.d)
            {
                this.error = "(t2 - tpoint) must be at least 4d";
            }
            else if (tpoint < 8 * fastener.d)
            {
                this.error = "tpoint must be at least 8d";
            }
            return(tpoint);
        }
Beispiel #4
0
 public Variables( //For timber to steel cases
     Fastener fastener,
     bool preDrilled,
     double pk,
     double alfa,
     string woodType,
     double t1,
     double t_steel,
     double n
     )
 {
     this.Myrk  = CalcMyrk(fastener);
     this.fhk   = CalcFhk(preDrilled, fastener, pk, alfa, woodType);
     this.Faxrk = CalcFaxrk(pk, fastener, t1, fastener.l - t1, alfa, n);
 }
Beispiel #5
0
 public BrittleFailure(Fastener fastener, double pk, double alfa, bool preDrilled)
 {
     if (fastener.type == "nail" || (fastener.type == "screw" && fastener.d <= 6))
     {
         this.CalculateForNails(pk, fastener.d, alfa);
     }
     else if (fastener.type == "bolt" || (fastener.type == "screw" && fastener.d > 6))
     {
         this.CalculateForBolt(alfa, fastener.d);
     }
     else if (fastener.type == "dowel")
     {
         this.CalculateForDowel(alfa, fastener.d);
     }
 }
Beispiel #6
0
        double  CalcFaxrk(double pk, Fastener fastener, double t1, double tpen, double alfa, double n)
        {
            double value = 0;

            if (fastener.type == "nail")
            {
                double fpaxk  = CalcNailfaxk(tpen, fastener.d, pk, fastener.smooth);
                double fhaxk  = CalcNailfaxk(t1, fastener.d, pk, fastener.smooth);
                double fheadk = CalcNailfheadk(pk);
                value = Math.Min(fpaxk * fastener.d * tpen, fhaxk * fastener.d * t1 + fheadk * Math.Pow(fastener.dh, 2));
            }
            else if (fastener.type == "screw")
            {
                value = CalcScrewFaxrk(n, fastener.d, pk, alfa, tpen, fastener.t_thread);
            }

            return(value);
        }
Beispiel #7
0
        public double CalcMyrk(Fastener fastener)
        {
            double value = 0;

            if (fastener.type == "nail" && fastener.smooth == true)
            {
                value = 0.3 * fastener.fu * Math.Pow(fastener.d, 2.6);
            }
            else if ((fastener.type == "nail" && fastener.smooth == false) || (fastener.type == "screw" && fastener.d <= 6))
            {
                value = 0.45 * fastener.fu * Math.Pow(fastener.d, 2.6);
            }
            else if (fastener.type == "bolt" || (fastener.type == "screw" && fastener.d > 6))
            {
                value = 0.3 * fastener.fu * Math.Pow(fastener.d, 2.6);
            }

            return(value);
        }
Beispiel #8
0
 public Variables( //For timber to timber cases
     Fastener fastener,
     bool preDrilled,
     double pk1,
     double pk2,
     double alfa,
     string woodType,
     double t1,
     double t2,
     double n
     )
 {
     this.Myrk  = CalcMyrk(fastener);
     this.fh1k  = CalcFhk(preDrilled, fastener, pk1, alfa, woodType);
     this.fh2k  = CalcFhk(preDrilled, fastener, pk2, alfa, woodType);
     this.beta  = this.fh2k / this.fh1k;
     this.tpen  = GetTpen(fastener, t1, t2);
     this.Faxrk = CalcFaxrk(pk1, fastener, t1, this.tpen, alfa, n);
 }
Beispiel #9
0
        double CalcFhk(bool preDrilled, Fastener fastener, double pk, double alfa, string woodType)
        {
            double fhk = 0;

            if ((fastener.type == "nail" && fastener.d <= 8) || (fastener.type == "screw" && fastener.d <= 6))
            {
                if (preDrilled == false)
                {
                    fhk = 0.082 * pk * Math.Pow(fastener.d, -0.3);
                }
                else
                {
                    fhk = 0.082 * (1 - 0.01 * fastener.d) * pk;
                }
            }
            if ((fastener.type == "nail" && fastener.d > 8) || (fastener.type == "bolt") || (fastener.type == "screw" && fastener.d > 6))
            {
                fhk = CalculateFhAlfak(fastener.d, pk, alfa, woodType);
            }
            return(fhk);
        }
 public TimberToSteelCapacity(
     Fastener Fastener,
     bool PreDrilled,
     double Pk,
     double Alfa,
     string WoodType,
     double T1,
     double T_steel,
     double N,
     bool ThickPlate
     )
 {
     this.fastener         = Fastener;
     this.preDrilled       = PreDrilled;
     this.pk               = Pk;
     this.alfa             = Alfa;
     this.woodType         = WoodType;
     this.t1               = T1;
     this.t_steel          = T_steel;
     this.n                = N;
     this.thickPlate       = ThickPlate;
     this.variables        = new Variables(Fastener, PreDrilled, Pk, Alfa, WoodType, T1, T_steel, N);
     this.Faxrk_upperLimit = this.CalcFaxrkUpperLimitValue(Fastener);
 }