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 If
Eli 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 Sub
groovyb 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.