Hei taas
Puoliväkisten pitää taas yrittää pahan flunssan jälkeen :)
eli ongelmana on tekstin saanti kuvaan, alla oleva tekee viivat ihan ok mutta en saa tekstiä lisättyä kuvaa, tai saan mutta sitten viivat katoavat :D
' Dim teksti As New Font("Times New Roman", 24, FontStyle.Bold, GraphicsUnit.Pixel)
Dim viivaA, viivaB, viivaC, viivaA1, viivaB1, viivaC1, viivaA2, viivaB2, viivaC2 As System.Drawing.Graphics
Dim viivaL1, viivaL2, viivaL3 As System.Drawing.Graphics
Dim v_L1A1, v_L1A2, v_L1A3, v_L2A3, v_L3A3 As Integer
Dim väriL1 As New System.Drawing.Pen(System.Drawing.Color.Black, 3)
Dim väriL2 As New System.Drawing.Pen(System.Drawing.Color.Red, 3)
Dim väriL3 As New System.Drawing.Pen(System.Drawing.Color.Yellow, 3)
' Dim teksti As System.Drawing.Graphics
Dim drawStringL1 As [String] = "L1" ' Create string to draw.
Dim drawStringL2 As [String] = "L2" ' Create string to draw.
Dim drawStringL3 As [String] = "L3" ' Create string to draw.
'Dim teksti As Graphics = Graphics.FromImage(PictureBox1.Image)
Dim x As Single = 130 ' määritetään tekstin sivusuunta
Dim drawFont As New Font("Arial", 14) ' Create font and brush.
Dim drawBrush As New SolidBrush(Color.Red)
v_L1A1 = tulosteylapuoli.TxtTaittoL1A1.Text / 3
v_L1A2 = tulosteylapuoli.TxtTaittoL1A2.Text / 3
v_L1A3 = tulosteylapuoli.TxtTaittoL1A3.Text / 3
v_L2A3 = tulosteylapuoli.TxtTaittoL2A3.Text / 3
v_L3A3 = tulosteylapuoli.TxtTaittoL3A3.Text / 3
viivaA = PictureBox1.CreateGraphics
viivaB = PictureBox1.CreateGraphics
viivaC = PictureBox1.CreateGraphics
viivaL2 = PictureBox1.CreateGraphics
viivaL3 = PictureBox1.CreateGraphics
If Kiskolaskenta.Kiskonvalinta.KojeenValinta.SelectedIndex = 0 Then
If Kiskolaskenta.Kiskonvalinta.KojeenYläpuoli.SelectedIndex = 0 Then
viivaB.DrawLine(väriL1, 150, 150 - v_L1A3, 150 + v_L1A2, 150 - v_L1A3) 'sivusiirto
viivaC.DrawLine(väriL1, 150 + v_L1A2, 150 - v_L1A3, 150 + v_L1A2, 150 + v_L1A1) 'Kojeelle alaspäin
viivaL3.DrawLine(väriL3, 150, 150 - v_L1A3, 150, 150 + v_L3A3) ' Vaiheen 3 piirto alapäin
viivaL2.DrawLine(väriL2, 150, 150 - v_L1A3, 150, 150 + v_L2A3) 'Vaiheen 2 piirto alaspäin
viivaA.DrawLine(väriL1, 150, 150 - v_L1A3, 150, 150 + v_L1A3) 'Vaiheen L1 piirto alaspäin
Dim y As Single = 150 + v_L1A3 ' määritetään tekstin korkeus saadulla tuloksella
'teksti.DrawString(drawStringL1, drawFont, drawBrush, x, y) ' kuvan piirto
End If
End IfEli jotain on jonkin verran pielessä
Sen mitä visual basiceista muistan niin taitaa onnistua siten, että tulostat ensin tekstin ja sitten piirrät viivat. Mitään varmuuta tosin ei ole.
mitäs sähköcadiä sitä oikee viritellää? :)
Heippa taas Puoliväkisten!
vääntele itsellesi sopivaksi...
Imports Sytem.Drawing
Imports System.Drawing.Imaging
'...
Friend x1 As Single = 0
Friend y1 As Single = 0
Friend x2 As Single = 0
Friend y2 As Single = 0
Friend paksuus As Single = 0
Friend väri As Color = Nothing
Frinnd teksti As String = String.Empty
'...
Private Sub Button1_Click(sender As System.Object, _
e As System.EventArgs) Handles Button1.Click
If PictureBox1.Image Is Nothing Then
PictureBox1.BackColor = Color.White
UusiKuva(PictureBox1)
End If
For i As Integer = 1 To 2
Select Case i
Case 1
x1 = 50: y1 = 100: x2 = 200
y2 = 100: paksuus = 1.2
väri = Color.Violet
ViivaKuvaan(PictureBox1.Image, _
New Pen(väri, paksuus), x1, y1, x2, y2)
Case 2
x1 = 50: y1 = 125: x2 = 200
y2 = 125: paksuus = 2.5
väri = Color.Green
ViivaKuvaan(PictureBox1.Image, _
New Pen(väri, paksuus), x1, y1, x2, y2)
End Select
Next
teksti = "Jotain tekstiä"
TextiKuvaan(PictureBox1.Image, teksti, _
New Font("Times New Roman", 24, _
FontStyle.Bold, GraphicsUnit.Pixel), _
New SolidBrush(Color.Blue), _
New Point(50, 100))
End Sub
Private Sub UusiKuva(ByVal box As Object)
Dim leveys As Integer = box.Width
Dim korkeus As Integer = box.Height
Dim kuva As New Bitmap(leveys, korkeus)
Dim kuvaus As Graphics = Graphics.FromImage(kuva)
Dim xplus As Single = _
(Me.Width - Me.ClientRectangle.Width) / 2
Dim yplus As Single = _
(Me.Height - Me.ClientRectangle.Height) - xplus
Dim x As Integer = Me.Left + xplus + box.left
Dim y As Integer = Me.Top + yplus + box.Top
kuvaus.CopyFromScreen(New Point(x, y), _
New Point(0, 0), New Size(box.Width, box.Height))
box.Image = kuva
End Sub
Private Sub ViivaKuvaan(ByVal kuva As Image, _
ByVal kynä As Pen, ByVal x1 As Single, _
ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)
Dim Graphic As Graphics = _
Graphics.FromImage(kuva)
Graphic.DrawLine(kynä, x1, y1, x2, y2)
pictureBox1.Image = kuva
End Sub
Private Sub TextiKuvaan(ByVal kuva As Image, _
ByVal teksti As String, ByVal fontti As Font, _
ByVal suti As Brush, ByVal paikka As Point)
Dim Graphic As Graphics = Graphics.FromImage(kuva)
Graphic.DrawString(teksti, fontti, suti, paikka)
pictureBox1.Image = kuva
End Subgroovyb kirjoitti:
mitäs sähköcadiä sitä oikee viritellää? :)
no ei ihan cadiä mutta sähkökeskuksiin liityvää lasketaohjelmaa kuparikiskoille :D
jaa että montakos johdonsuojakatkaisijaa mahtuu pätkään :)
tuosta tuli mieleen että itse käytän Kymdatan softaa Cads Electric, ja siinä on ihan näppärä sähkökaapin mallinnus 3d:nä. lätkii vaan oikeat mitat ja sen kun tunkee palikat oikeilla mitoilla ja kourut sisään ja tarkistaa mahtuuko kaikki. ja saa vielä hienoja lisäyksiä sähkökuviin :D
groovyb kirjoitti:
jaa että montakos johdonsuojakatkaisijaa mahtuu pätkään :)
tuosta tuli mieleen että itse käytän Kymdatan softaa Cads Electric, ja siinä on ihan näppärä sähkökaapin mallinnus 3d:nä. lätkii vaan oikeat mitat ja sen kun tunkee palikat oikeilla mitoilla ja kourut sisään ja tarkistaa mahtuuko kaikki. ja saa vielä hienoja lisäyksiä sähkökuviin :D
No nyt on pakko sanoa sen verran että työseni piirrän cadsillä myös. käytössä keskuslayout, piirikaaviot ja pääkaavio softat
samat myös itsellä, plus logiikat , tuo 3d mallinnushärpäke sekä taulukoinnit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.