Jump to content



Photo

3Draw Pro


  • Please log in to reply
11 replies to this topic

#1 Pakku

Pakku

    Prodigy

  • Active Members
  • PipPipPip
  • 183 posts

Posted 30 July 2006 - 02:12 PM

Hi all

First of all, please take a look at: Manadar's topic and second I want to thank him and Pythagoras for there great job(!)

so let’s move on, I have created an application in autoit which give you the opportunity to draw in 3d. the whole script is based on the topic earlier in this post.

but I have changed a bit. The main thing I have changed is the inputmanager on a way that it will not be a worse application for your CPU. I also have made the GUI in onevent mode.

You can find the script in the attachment.

If you want to use (and it can) the original inputmanager.au3, just remove the "2" in the #include<> which you will find in the main loop.

In the attachment you will find my script, the original inputmanager.au3 and inputmanager2.au3 which a mod on the original inputmanger.au3.



Attachment:
http://www.autoitscript.com/fileman/users/arjan%20staring/3draw%20pro.zip

Edited by Pakku, 11 January 2011 - 11:10 PM.

How can someone use Windows without using AutoIt?That one would properly don't know how to handle a computer!My scripts:Send files over internetKind of RSS reader3Draw ProUDF: convert a character string to a binary one and backCalculate PiCommand line downloader (Youtube/Google video)Set the transparency of a window just by hitting a key!Secure your pcOther things:http://www.autoitscript.com/fileman/users/arjan%20staring/My profilePM me





#2 eynstyne

eynstyne

    Universalist

  • Active Members
  • PipPipPipPipPip
  • 251 posts

Posted 30 July 2006 - 06:30 PM

Looks good, I'm not sure how to use it, but you should try to fix up the resizing of the window.
Dock the controls, so that they don't move.

GuiCtrlSetResizing($control, $GUI_DOCKALL)

Elsewhere it's not a bad script

:whistle:
F@m!ly Guy Fr33k! - Avatar speaks for itself__________________________________________________________________________________________Posted Imageite quotes... - Is your refrigerator running? If it is, It probably runs like you...very homosexually - Christians don't believe in gravity - Geeze Brian where do you think you are, Payless?- Show me potato Salad!__________________________________________________________________________________________Programs available - Shutdown timer

Posted ImagePosted Image


#3 Guest_Beefteck_*

Guest_Beefteck_*
  • Guests

Posted 30 July 2006 - 07:08 PM

nice program... :whistle:

#4 Skrip

Skrip

    Psychonaut

  • Active Members
  • PipPipPipPipPipPip
  • 2,340 posts

Posted 30 July 2006 - 10:27 PM

Looks good, I'm not sure how to use it.

Nor do I, can you explain how to use it, arjan staring

We're trapped in the belly of this horrible machine.And the machine is bleeding to death...


#5 JoeCool

JoeCool

    Prodigy

  • Active Members
  • PipPipPip
  • 163 posts

Posted 31 July 2006 - 07:26 AM

Interesting start :-)

But I think I found some strange behavior (for the Z axe)

this is my axe.3dp

[coordinates] 0=3 1=0,0,0-0,0,20-0x0000FF 2=0,0,0-0,20,0-0x008000 3=0,0,0-20,0,0-0xFF0000 [center] x=200 y=200
the X axe is red
the Y axe is green
and the Z axe is blue

but when I load and play with it I found that your coordinate system
put X axe left to right
put Y axe bottom to top
put the Z axe going from the screen to the back ... ???

You should have put the Z axe in the other direction to have a normal set of coordinate.

:-)

#6 Pakku

Pakku

    Prodigy

  • Active Members
  • PipPipPip
  • 183 posts

Posted 31 July 2006 - 08:43 AM

hi,

its very simple
first you put in the coordinates of the x, y and z and the end coordinates of the x,y and z.
you can fill this in in the 6 inputboxes (can't be difficult) the choose a color (hit "select color" button) the color you choose will be displayed in the label next to it (just for showing the color) then hit the "add" button.
in the list box, you have to select the coordinates you want to display. then nothing will happen but when you hit a key (numpad 4 for example' and then it will show you your `images`.

when you haven´t select one in the list, it wil show you an other image, this is to display you how it will look like.

is it all clear to you now.

@eynstyne
what do you mean, cause i don't use that, could you explain what you mean?

@JoeCool
please take a look at my first post, you will see a url which will send you to the basis of this script. it has all to do with that.

@all
please call me just Arjan (does someone know how to change my nickname?)

Edited by Pakku, 11 January 2011 - 11:11 PM.

How can someone use Windows without using AutoIt?That one would properly don't know how to handle a computer!My scripts:Send files over internetKind of RSS reader3Draw ProUDF: convert a character string to a binary one and backCalculate PiCommand line downloader (Youtube/Google video)Set the transparency of a window just by hitting a key!Secure your pcOther things:http://www.autoitscript.com/fileman/users/arjan%20staring/My profilePM me

#7 eynstyne

eynstyne

    Universalist

  • Active Members
  • PipPipPipPipPip
  • 251 posts

Posted 31 July 2006 - 12:44 PM

What I mean is that your buttons shift on top of the grid you are trying to draw on when you resize the window using that thing in the bottom right corner. It looks sloppy, so you could just use the $GUI_DOCKALL
style for each button control on the right side of your program.

e.g:

$label = Guictrlcreatelabel("I'm a label",50,50,100,20) guictrlsetresizing($label, $GUI_DOCKALL) ;<--- The control, when the window is resized will stay put and not shift around and stuff...


:whistle:
F@m!ly Guy Fr33k! - Avatar speaks for itself__________________________________________________________________________________________Posted Imageite quotes... - Is your refrigerator running? If it is, It probably runs like you...very homosexually - Christians don't believe in gravity - Geeze Brian where do you think you are, Payless?- Show me potato Salad!__________________________________________________________________________________________Programs available - Shutdown timer

Posted ImagePosted Image


#8 Pakku

Pakku

    Prodigy

  • Active Members
  • PipPipPip
  • 183 posts

Posted 31 July 2006 - 02:03 PM

hi,

i see, thanks!
this will solve the big problem.


EDIT:
this is what the script with the changes
but it is still the same'.
what went wrong?
AutoIt         
#include <GUIConstants.au3> #include <Misc.au3> #Include <GuiList.au3> #include <3D.au3> Opt("GUICloseOnESC",0) Opt("GUIOnEventMode",1) Opt("OnExitFunc","close") Opt("RunErrorsFatal",0) $gui = GUICreate("3Draw Pro 1.0", 800, 600, 0, 0, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_OVERLAPPEDWINDOW + $WS_MAXIMIZE) GUISetOnEvent($GUI_EVENT_CLOSE,"close") GUICtrlCreateGroup("File",610,5,180,45) guictrlsetresizing(-1, $GUI_DOCKALL) $neuw = GUICtrlCreateButton("New",615,20,50,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($neuw,"_new") $open = GUICtrlCreateButton("Open",675,20,50,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($open,"_open") $save = GUICtrlCreateButton("Save",735,20,50,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($save,"_save") GUICtrlCreateGroup("Center position",610,50,180,90) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("X:",615,65,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("Y:",615,90,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) $center_x = GUICtrlCreateInput("",635,65,150,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetData($center_x,200) $center_y = GUICtrlCreateInput("",635,90,150,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetData($center_y,200) $center_set = GUICtrlCreateButton("Set center position",615,115,170,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($center_set,"_center_set") GUICtrlCreateGroup("Coordinates",610,140,180,225) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_list = GUICtrlCreateList("",615,155,170,80,BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_MULTIPLESEL)) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_add = GUICtrlCreateButton("Add",615,230,80,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($cor_add,"_cor_add") $cor_del = GUICtrlCreateButton("Delete",705,230,80,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetOnEvent($cor_del,"_cor_del") GUICtrlCreateLabel("X:",615,260,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("Y:",615,285,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("Z:",615,310,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("<->",700,265,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("<->",700,290,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlCreateLabel("<->",700,315,20,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_x1 = GUICtrlCreateInput("",635,260,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_y1 = GUICtrlCreateInput("",635,285,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_z1 = GUICtrlCreateInput("",635,310,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_x2 = GUICtrlCreateInput("",720,260,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_y2 = GUICtrlCreateInput("",720,285,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_z2 = GUICtrlCreateInput("",720,310,60,20) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_color = GUICtrlCreateButton("Select color",615,335,80,25) guictrlsetresizing(-1, $GUI_DOCKALL) $cor_color_show = GUICtrlCreateLabel("",705,335,80,25) guictrlsetresizing(-1, $GUI_DOCKALL) GUICtrlSetBkColor($cor_color_show,0xFFFFFF) GUICtrlSetColor($cor_color_show,0xFFFFFF) GUICtrlSetData($cor_color_show,0xFFFFFF) GUICtrlSetOnEvent($cor_color,"_cor_color") GUISetState() $graphicgui = GUICreate("",600,600,0,0, $WS_CHILD + $WS_BORDER, "", $gui) GUISetBkColor(0x000000) $GraphicControl = GUICtrlCreateGraphic(0,0,600,600) guictrlsetresizing(-1, $GUI_DOCKALL) GUISetState() _3DSetCenter(200,200) Draw() GUISetState() If $CmdLine[0] > 0 Then     _open2($CmdLine[1]) EndIf While 1     #include <InputManager2.au3> WEnd Func Draw()     GUICtrlDelete($GraphicControl)     $GraphicControl = GUICtrlCreateGraphic(0,0,600,600)     guictrlsetresizing(-1, $GUI_DOCKALL)     $ret = _GUICtrlListGetSelItemsText($cor_list)     If (Not IsArray($ret)) Then         GUICtrlSetGraphic(-1, $GUI_GR_COLOR,0xFF0000)         _3DMove(-1,0,0,0)         _3DLine(-1,0,100,0)                 GUICtrlSetGraphic(-1, $GUI_GR_COLOR,0x00FF00)         _3DMove(-1,0,0,0)         _3DLine(-1,100,0,0)                 GUICtrlSetGraphic(-1, $GUI_GR_COLOR,0x0000FF)         _3DMove(-1,0,0,0)         _3DLine(-1,0,0,100)     Else         For $i = 1 To $ret[0]             $grof = StringSplit($ret[$i],"-")             ;$grof[0] = 3             ;$grof[1] = beginpunt             ;$grof[2] = eindpunt             ;$grof[3] = kleur             GUICtrlSetGraphic($GraphicControl, $GUI_GR_COLOR,$grof[3]) ;kleur                         $beginpunt = StringSplit($grof[1],",")             ;$beginpunt[0] = 3             ;$beginpunt[1] = x             ;$beginpunt[2] = y             ;$beginpunt[3] = z             _3DMove($GraphicControl,$beginpunt[1],$beginpunt[2],$beginpunt[3]) ;beginpunt                         $eindpunt = StringSplit($grof[2],",")             ;$eindpunt[0] = 3             ;$eindpunt[1] = x             ;$eindpunt[2] = y             ;$eindpunt[3] = z             _3DLine($GraphicControl,$eindpunt[1],$eindpunt[2],$eindpunt[3]) ;eindpunt         Next     EndIf         GUICtrlSetGraphic(-1, $GUI_GR_REFRESH)         Sleep(50) EndFunc Func close()     Exit EndFunc Func _center_set()     _3DSetCenter(GUICtrlRead($center_x),GUICtrlRead($center_y))     Draw() EndFunc Func _cor_add()     $cor_list_add = GUICtrlRead($cor_x1) & "," & GUICtrlRead($cor_y1) & "," & GUICtrlRead($cor_z1) & "-" & GUICtrlRead($cor_x2) & "," & GUICtrlRead($cor_y2) & "," & GUICtrlRead($cor_z2) & "-" & GUICtrlRead($cor_color_show)     _GUICtrlListAddItem($cor_list, $cor_list_add) EndFunc Func _cor_del()     $ret = _GUICtrlListGetSelItems($cor_list)     If (Not IsArray($ret)) Then             Else         For $i = 1 To $ret[0]             _GUICtrlListDeleteItem($cor_list, $ret[$i])         Next     EndIf EndFunc Func _cor_color()     $color = _ChooseColor (2,GUICtrlRead($cor_color_show))     If @error Then         Else         GUICtrlSetBkColor($cor_color_show,$color)         GUICtrlSetColor($cor_color_show,$color)         GUICtrlSetData($cor_color_show,$color)     EndIf EndFunc Func _new()     _GUICtrlListClear($cor_list)     GUICtrlSetData($cor_x1,"")     GUICtrlSetData($cor_x2,"")     GUICtrlSetData($cor_y1,"")     GUICtrlSetData($cor_y2,"")     GUICtrlSetData($cor_z1,"")     GUICtrlSetData($cor_z2,"")     GUICtrlSetBkColor($cor_color_show,0xFFFFFF)     GUICtrlSetColor($cor_color_show,0xFFFFFF)     GUICtrlSetData($cor_color_show,0xFFFFFF)     GUICtrlSetData($center_x,200)     GUICtrlSetData($center_y,200)     GUICtrlDelete($GraphicControl)     $GraphicControl = GUICtrlCreateGraphic(0,0,600,600)     _3DSetCenter(200,200)     Draw() EndFunc Func _save()     $ret = _GUICtrlListGetSelItemsText($cor_list)     If (Not IsArray($ret)) Then         MsgBox(0,"3Draw Pro","You have to select the coordinates which you want to save")     Else         $tosaveto = FileSaveDialog("4Draw Pro save dialog","","3Draw Pro files (*.3dp)",18)         If StringRight($tosaveto,4) = ".3dp" Then             $tosaveto = $tosaveto         Else             $tosaveto = $tosaveto & ".3dp"         EndIf         If FileExists($tosaveto) Then             FileDelete($tosaveto)         EndIf         IniWrite($tosaveto,"coordinates","0",$ret[0])         For $i = 1 To $ret[0]             IniWrite($tosaveto,"coordinates",$i,$ret[$i])         Next         IniWrite($tosaveto,"center","x",GUICtrlRead($center_x))         IniWrite($tosaveto,"center","y",GUICtrlRead($center_y))     EndIf EndFunc Func _open()     $fileopen = FileOpenDialog("3Draw Pro open dialog","","3Draw Pro files (*.3dp)",3)     _open2($fileopen) EndFunc Func _open2($fileopen)     _3DSetCenter(IniRead($fileopen,"center","x",200),IniRead($fileopen,"center","y",200))     GUICtrlSetData($center_x,IniRead($fileopen,"center","x",200))     GUICtrlSetData($center_y,IniRead($fileopen,"center","y",200))     $ret = IniRead($fileopen,"coordinates","0","1")     For $i = 1 to $ret         _GUICtrlListAddItem($cor_list, IniRead($fileopen,"coordinates",$i,"0,0,0-0,0,0-0"))     Next     Draw() EndFunc

Edited by Pakku, 11 January 2011 - 11:11 PM.

How can someone use Windows without using AutoIt?That one would properly don't know how to handle a computer!My scripts:Send files over internetKind of RSS reader3Draw ProUDF: convert a character string to a binary one and backCalculate PiCommand line downloader (Youtube/Google video)Set the transparency of a window just by hitting a key!Secure your pcOther things:http://www.autoitscript.com/fileman/users/arjan%20staring/My profilePM me

#9 Manadar

Manadar

    Taking a REST.

  • MVPs
  • 10,714 posts

Posted 01 August 2006 - 09:38 PM

When i put in this:
0<>10
0<>0
0<>10
white

I can't see a line being drawn.. Is this supposed to happen? I don't see any code that should display a line. Anyway, the dutchy's know best when it comes to 3D programming :whistle: , let me know when you have this right.

#10 WTS

WTS

    Polymath

  • Active Members
  • PipPipPipPip
  • 247 posts

Posted 01 August 2006 - 11:01 PM

hey looks cool..

would be really neat if you could draw with the mouse, and set the size of the line, maybe in the near future? :whistle:

#11 Pakku

Pakku

    Prodigy

  • Active Members
  • PipPipPip
  • 183 posts

Posted 02 August 2006 - 02:44 PM

@Manadar
well you have to hit a key (e.g num 4) and then you will see you line.
did you like the main idee of my script and that i used yours?

@WTS
great idee

Edited by Pakku, 11 January 2011 - 11:12 PM.

How can someone use Windows without using AutoIt?That one would properly don't know how to handle a computer!My scripts:Send files over internetKind of RSS reader3Draw ProUDF: convert a character string to a binary one and backCalculate PiCommand line downloader (Youtube/Google video)Set the transparency of a window just by hitting a key!Secure your pcOther things:http://www.autoitscript.com/fileman/users/arjan%20staring/My profilePM me

#12 Manadar

Manadar

    Taking a REST.

  • MVPs
  • 10,714 posts

Posted 02 August 2006 - 11:23 PM

Yea i really like the idea of building a editor for this kind of thing. I would also love to see the full and functional save/load-mechanism working. Just take a look at some professional 3D-editors and try to copy that using my library.
In short: The main idea is great!

Edit: The inputmanager is a clone of the one nfwu uses

Edited by Manadar, 02 August 2006 - 11:24 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users