StrålforsFormulas

Hjälp med formler

2022-02-22 23h13 24.png

När du skriver prisberäkningsformler så är du i en Model3DMeta. Denna är "self". Du kan då använda alla egenskaper ; t ex self.DimensionsX eller self.Vertices. Du kan också navigare till t ex av kunden vald teknologi ; "self.Technology.BasePriceFactor".

Du kan använda alla räknesätt + - * /

Exempel på ett Minipris : (((self.Volume*12)/1000).Round(2)).Max(20) - här betyder x.Max(y) att vi tar det som är störst av x och y - så resultatet kan minst bli 20. Du kan även använda x.Min(y).

Så här når du price add on för finish: self.Finish.PriceAddOn, och för Color self.Color.PriceAddOn: prova self.Finish.PriceAddOn+self.Color.PriceAddOn

Infill kommer vara ett värde mellan 0-100; prova t ex (self.Finish.PriceAddOn+self.Color.PriceAddOn)*(self.InfillPercent/100)

2022-03-03 16h00 27.png

(self.Finish.PriceAddOn+self.Color.PriceAddOn)*(self.InfillPercent/100) -> (100+23)*.77 = 94.71

Villkorad beräkning

Om formeln måste kunna hantera "brist"-på värde - dvs null - så kanske det blir villkor:

(self.Volume->isnull)->casetruefalse(1.0, self.Volume  )   : ta värdet av self.Volume bara om det inte är null - annars ta 1.0 (noga med att flyttal och inte bara 1 )

Det blir då 2 olika formler beroende på invärde (boolean) till casetruefalse :

(self.Volume>12)->casetruefalse(self.Volume*2.0,self.Volume*3.0) * self.Area

Procentberäkning för infill

(1.0+(self.InFillPercent/100)) -> omvandlar t ex 90% till faktor 1.9

Decimal vs Double

Efter att prisuppgifter nu sparas med typen Decimal (tidigare double) kan man behöva typ-kasta mellan de två: ((((self.Volume*12)/1000).Round(2).Max(80))+self.Color.PriceAddOn).todecimal

Du märker av behovet genom att se felet:

Returns illegal type: System.Double, must return System.Decimal

Skalning

Notera att DimensionsX,Y,Z numera finns i en scalad variant DimensionsXScaled, YScaled osv.

Även AreaScaled and VolumeScaled bör användas konsekvent för att hantera modeller som skalats upp eller ner för att hamna i centimeter-omfång.

This page was edited more than 8 months ago on 03/26/2024. What links here