laskentaa

Löytyisköhän kaavaa taikka ohjelma pätkää seuraavaan.

2 kpl 1000mm
5 kpl 1246mm
3 kpl 1340mm
6 kpl 4777mm

aihionmitta on 12m ja tarteis yhdistellä niin että hukkapala olisi mahdollisimman pieni. sahaus hukka noin 5mm. tossa esim lukuja. oikeasti niitä on tosi paljon

kiitokset
6454
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Tässä olisi OpenOffice versio:

Sub Main

sahahukka=5
aihiopit=12000
dim sum as long
dim kaytetty as long
dim paras as long
dim rivi as integer

Sheet = thiscomponent.CurrentController.activesheet
svc = createUnoService( "com.sun.star.sheet.FunctionAccess" )
dim arg as variant
dim alue as object
alue = Sheet.getCellRangeByPosition( 1, 1, 1, 500 )
Arg = array(alue)
mx = svc.callFunction( "COUNT",Arg )-1

redim kpl(mx) as integer
redim mitat(mx) as integer
redim paraskpl(mx) as integer
redim x(mx) as integer

for j=0 to mx
kpl(j)=Sheet.getCellByPosition(0,j).Getvalue
mitat(j)=Sheet.getCellByPosition(1,j).Getvalue
Sheet.getCellByPosition(5 j,0).Setvalue(mitat(j))
next
Sheet.getCellByPosition(5 mx 1,0).Setstring("Yli")

rivi=0
do

paras=0

do 'aihion patkiminen
z=0
x(z)=x(z) 1
while x(z)> kpl(z)
x(z)=0
z=z 1
if z>mx then exit do
x(z)=x(z) 1
wend

sum=0

for j=0 to mx
sum=sum x(j)*mitat(j) sahahukka
next

if (sum>paras) and (sum

Äänestä

A-sarakkeessa on kappalemäärä ja B-sarakkeessa mitat.

Sub Optimoi()

sahahukka = 5
aihiopit = 12000
vasen = 4 'vastaustaulukon vasen reuna
Dim sum As Long
Dim kaytetty As Long
Dim paras As Long
Dim rivi As Integer
Dim mx As Integer
Dim mxtaul As Integer
Dim hukkayht As Long
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim z As Integer
Dim luku As Integer
Dim tupla As Boolean

mxtaul = 250

'oo Sheet = thiscomponent.CurrentController.activesheet
'oo Sheet.getCellRangeByName(chr(vasen 65) "1:IV" Trim(Str(mxtaul))).clearContents(1023)

Range(Chr(vasen 64) "1:IV" Trim(Str(mxtaul))).ClearContents


ReDim kpl(mxtaul) As Integer
ReDim mitat(mxtaul) As Integer
ReDim paraskpl(mxtaul) As Integer
ReDim x(mxtaul) As Integer

k = 0 'taulukon alustus, tuplien poisto
For j = 0 To mxtaul
'oo kpl(k) = Sheet.getCellByPosition(0 , j).Getvalue
kpl(k) = ActiveSheet.Cells(j 1, "A").Value
If kpl(k) = 0 Then
mx = k - 1
Exit For
End If
'oo luku = Sheet.getCellByPosition(1 , j).Getvalue
luku = ActiveSheet.Cells(j 1, "B").Value
If luku > aihiopit Then
q = MsgBox("Mitta liian pitkä", 0)
Range("B" Trim(Str(j 1))).Select
Exit Sub
End If
tupla = False
For i = 0 To j - 1
If mitat(i) = luku Then
kpl(i) = kpl(i) kpl(k)
tupla = True
Exit For
End If
Next
If Not tupla Then
mitat(k) = luku
'oo Sheet.getCellByPosition(vasen k , 0).Setvalue(luku)
ActiveSheet.Cells(1, vasen k).Value = luku
k = k 1
End If
Next

'oo Sheet.getCellByPosition(vasen mx 1 , 0).Setstring("Yli")
ActiveSheet.Cells(1, vasen mx 1).Value = "Yli"

rivi = 1 'oo =0
Do

paras = 0
Do 'aihion patkiminen
z = 0
x(z) = x(z) 1
While x(z) > kpl(z)
x(z) = 0
z = z 1
If z > mx Then Exit Do
x(z) = x(z) 1
Wend

sum = 0
For j = 0 To mx
sum = sum x(j) * (mitat(j) sahahukka)
Next

If (sum > paras) And (sum - sahahukka

Äänestä
  • Tervehdys. ohjelma toimii hyvin. Voisinko saada tähän ohjelmaan vielä valinta ruudun, johon voisi laittaa haluamansa mitan. Nythän se onnistuu tossa ohjelmassa muuttaa, mut olisi helpompaa ja nopeampaa vaihtaa mitta suoraan valintaruudussa.

    kiitokset

    Äänestä

  • pinemmäksi kirjoitti:

    Tervehdys. ohjelma toimii hyvin. Voisinko saada tähän ohjelmaan vielä valinta ruudun, johon voisi laittaa haluamansa mitan. Nythän se onnistuu tossa ohjelmassa muuttaa, mut olisi helpompaa ja nopeampaa vaihtaa mitta suoraan valintaruudussa.

    kiitokset

    soluun C5 pituus. Seuraava rivi dim-lauseiden jälkeen:

    If Range("C5").Value > 0 Then aihiopit = Range("C5").Value

    Äänestä

  • ... kirjoitti:

    soluun C5 pituus. Seuraava rivi dim-lauseiden jälkeen:

    If Range("C5").Value > 0 Then aihiopit = Range("C5").Value

    Kiitokset. Hyvin pelittää

    Äänestä

Kiitokset. Homma toimii hyvin

Äänestä

Kommentoi aloitusta


hukkapaloja kirjoitti:

Löytyisköhän kaavaa taikka ohjelma pätkää seuraavaan.

2 kpl 1000mm
5 kpl 1246mm
3 kpl 1340mm
6 kpl 4777mm

aihionmitta on 12m ja tarteis yhdistellä niin että hukkapala olisi mahdollisimman pieni. sahaus hukka noin 5mm. tossa esim lukuja. oikeasti niitä on tosi paljon

kiitokset

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu