Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - pathfinder

#1
Thanks :D, still need to do a front end. At work the other day I was playing with Inkscape to Blender. It breaks it down into triangles. ... Now looking at dxf mesh import., or if inkscape will reimport as triangle paths.

The polytext routine does scaling for the text. Assuming you convert near 0,0 it should be a matter of multiplying it with a number.

Rotation is just trigonometry, but I could built it in as function. Will try next update.
http://www.cs.trinity.edu/~jhowland/cs2322/2d/2d/2d.html#hui:dict
#2
Oh if your feeling a bit creative you could use a paint package, then trace bitmap in inkscape. There is a command

Extensions > Modify Path > Flatten Beziers

this converts curves into straight lines within your path.

There are tools like path fill so you can draw lines across the path then fill to help sort triangulation issues. Its just a question of if inkscape reorganizes the svg. it seems to love multiple ways of declaring things sometimes gaps some times commas etc. It can be a mare :D.

Hence why i did dxf polyline import :D
#3
Yup I traced fixedsys font in cad using polylines, then imported them letter by letter to make my POLYTEXT.TXT program attached above (note will be adding usescreen and sprite number setup soon). Inkscape can explode fonts to paths (object to path, then use ungroup), the thing is the program uses curves and also boolean to cut holes. Not Polyvector friendly. Now you could use a cad package or vector conversion to triangulate the font

Also polyvector hates going back in on itself, so you have to break it into bits.

11111
111
11111

can look like

11111
11111
11111

so you need 3 paths

11111
222
33333

or

111122
1111
111133

Far easier to trace if you want a cool font you could make it from scratch. Just draw in the top left above the page.
#4
I made it because I wanted to draw up filled areas and simple creatures for a microbe game. Also a card game I used to play when I was a kid. I started to code a concept for the card game, but I could not read the print output .. Then I thought hang on if I make my own print command with poly vectors I can get them too scale up to and size screen and save my poor old eyes. Why not draw letters and import them easy... 2 weeks later finally done, not so easy :D.

... That was the tipping point. I do alot of DXF / script stuff at work so I thought it would be quick. Inkscape file format is very um... flexible, the structure can change just by moving an object.

Now back to actually making my first game in glbasic lol.
#5
DXF Import for Polylines and Data export now implemented!

Time for me to go back to my other project  :booze:
#6
Thanks. Ill do data export option next then.

Its time for some kind of front end anyway, to let you you know what the heck is going on  :S

DXF (2010) import to SVG is working using VB, will convert to glbasic at some point. I want a scaleable/color print command So I am drawing the alphabet at work ^^.
#7
UPDATED 17/03/13

now as 2 functions

Code is in txt file
#8
Thanks for the support. I am relaxing this project for now. The final code is in place above.

Here is a quick mario i did manually tracing it for 15 mins. The picture below is Inkscape, the thin lines do not appear in GLBasic.

Oops too long for /CODE, i'll txt the program below
#9
My first attempt at a print command is attached txt files.

I swapped out my rubbish plane to show my concept text print. My wide screen monitor at range is a nightmare with the print command. The numbers are drawn in Autocad, converted in VB to svg (i will put this into SVGPOLY in the end) then converted into polyvector.
Code (glbasic) Select

SETSCREEN 640,480,0
FOR j = 1 TO 70
FOR i = 1 TO 50
polytxt_colour(RND(55)+200,RND(200)+55,RND(200)+55)
SELECT RND(10)
CASE 0
draw_0(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 1
draw_1(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 2
draw_2(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 3
draw_3(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 4
draw_4(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 5
draw_5(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 6
draw_6(RND(640),RND(480),RND(20)+1,RND(20)+1)
CASE 7
draw_7(RND(480),RND(480),RND(20)+1,RND(20)+1)
CASE 8
draw_8(RND(480),RND(480),RND(20)+1,RND(20)+1)
CASE 9
draw_9(RND(480),RND(480),RND(20)+1,RND(20)+1)
ENDSELECT
SLEEP 10
NEXT
SHOWSCREEN
NEXT
END
FUNCTION polytxt_colour:rgb1%,rgb2%,rgb3%
FOR i=1 TO 10
DRAWRECT 0, 0, 32, 32, RGB(rgb1,rgb2,rgb3)
GRABSPRITE i, 0, 0, 32, 32
NEXT
ENDFUNCTION
FUNCTION draw_0:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
//       d="M 1.0,8 2.0,9 6.0,9 7.0,8 z"
//mode%=1
STARTPOLY 2
POLYVECTOR (7*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (7*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (3*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (5*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION

FUNCTION draw_1:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (5*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
//       d="M 3.0,3 0.0,3 0.0,2 2.0,1 3.0,0 z"
//mode%=1
STARTPOLY 2
POLYVECTOR (3*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION


FUNCTION draw_2:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (2*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (2*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (6*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_3:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (2*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (0*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 7
POLYVECTOR (5*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_4:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (3*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (6*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (7*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (1*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_5:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (2*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (5*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (4*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_6:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (0*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (1*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (2*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (0*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (0*scxval)+xval,(2*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_7:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (2*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (5*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_8:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (3*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (6*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (3*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (7*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(4*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (7*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 7
POLYVECTOR (6*scxval)+xval,(7*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(3*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
FUNCTION draw_9:xval#,yval#,scxval#,scyval#
STARTPOLY 1
POLYVECTOR (3*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (2*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 2
POLYVECTOR (8*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 3
POLYVECTOR (6*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (7*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (8*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 4
POLYVECTOR (4*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(5*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 5
POLYVECTOR (4*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(1*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(0*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 6
POLYVECTOR (3*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (3*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (5*scxval)+xval,(9*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
STARTPOLY 7
POLYVECTOR (6*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (6*scxval)+xval,(6*scyval)+yval,0,0,RGB(255,255,255)
POLYVECTOR (4*scxval)+xval,(8*scyval)+yval,0,0,RGB(255,255,255)
ENDPOLY
ENDFUNCTION
#10
DXF import completed

Note DXF files coordinate origin is bottom left not top right, the Y coordinate is inversed so if you had a full screen graphic the Y coordinate would be the full screen depth.

DATA export completed
POLYVECTOR export completed

See readme attached on how to use Inkscape with SVGPOLY.

put files in the .app directory, you will have to make a dummy project, paste code below.

Change files names as required. The program will do DXF > SVG > POLYVECTOR. If you want data output, change datamode=1. Glbasic code is in the POLYVECTOR.txt file after it has run.

Code (glbasic) Select

// --------------------------------- //
// Project: SVGPOLY
// Start: Sunday, March 10, 2013
// IDE Version: 10.202
// FREE-VERSION:
// Need Premium for Features:
// 3D Graphics
// Network Commands
// INLINE C/C+++ code
// SETCURRENTDIR("Media") // go to media files
GLOBAL screenx%,screeny%,rd$,test$,pos#,rgb1%,rgb2%,rgb3%,spno%
GLOBAL prgb1%,prgb2%,prgb3%,cirx#,ciry#,cdi#,doch%
GLOBAL tempx#, tempy#,temp1$,temp2$,debug$,count%,mode%,isline%
GLOBAL polyvx#[],polyvy#[],tempa$[],tempb$[],dxfname$
GLOBAL datamode%


//change these to set file names
//read dxf
dxfname$ = "a.dxf"
//write svg
test$ = "a.SVG"
//write polyvector code
debug$ = "POLYVECT.TXT"
//polyvector or data mode 1= data 2= polyvector
datamode = 2



DIM tempa$[400]
DIM tempb$[400]
DIM polyvx#[400]
DIM polyvy#[400]

screenx%=640
screeny%=480
//document height, should take from svg!

doch=screeny%

isline=0
mode%=0
IF DOESFILEEXIST(dxfname$)
dxftosvg(dxfname$)
ENDIF

tempx=0.0
tempy=0.0
SETSCREEN screenx%,screeny%,1


OPENFILE(1, test$, TRUE)
OPENFILE(2, debug$, FALSE)
spno% = 0
IF datamode = 2
//write functions()
WRITELINE 2,"sprite_"+MID$(test$,0,INSTR(test$,"."))+"()"
WRITELINE 2,"draw_"+MID$(test$,0,INSTR(test$,"."))+"(0,0,1,1)"
WRITELINE 2,"SHOWSCREEN"
WRITELINE 2,"KEYWAIT"
WRITELINE 2,"END"
WRITELINE 2,"FUNCTION draw_"+MID$(test$,0,INSTR(test$,"."))+":xval#,yval#,scxval#,scyval#"
ENDIF

FOR i = 1 TO 400
IF ENDOFFILE(1)=TRUE THEN BREAK

isline=0
READLINE 1,rd$

IF INSTR(rd$, "pagecolor") > 0

pos# = INSTR(rd$, UCASE$("pagecolor"))
rd$ = LCASE$(MID$(rd$,pos#+12,6))
rgb1% = 0
rgb2% = 0
rgb3% = 0
FOR j = 1 TO 6
IF j = 1 THEN rgb1 = hextoint(MID$(rd$,0,1))*16
IF j = 2 THEN rgb1 = rgb1 +hextoint(MID$(rd$,1,1))
IF j = 3 THEN rgb2 = hextoint(MID$(rd$,2,1))*16
IF j = 4 THEN rgb2 = rgb2 +hextoint(MID$(rd$,3,1))
IF j = 5 THEN rgb3 = hextoint(MID$(rd$,4,1))*16
IF j = 6 THEN rgb3 = rgb3 +hextoint(MID$(rd$,5,1))
NEXT
prgb1%=rgb1%
prgb2%=rgb2%
prgb3%=rgb3%
WRITELINE 2,"DRAWRECT 0, 0, "+screenx%+", "+screeny%+",RGB("+prgb1%+","+prgb2%+","+prgb3%+")"

ENDIF



pos# = INSTR(rd$, "<path")

//draw and write a circle
IF INSTR(rd$, "arc") > 0
READLINE 1,rd$
pos# = INSTR(rd$, "fill:#")
rd$ = LCASE$(MID$(rd$,pos#+6,6))
rgb1% = 0
rgb2% = 0
rgb3% = 0
FOR j = 1 TO 6
IF j = 1 THEN rgb1 = hextoint(MID$(rd$,0,1))*16
IF j = 2 THEN rgb1 = rgb1 +hextoint(MID$(rd$,1,1))
IF j = 3 THEN rgb2 = hextoint(MID$(rd$,2,1))*16
IF j = 4 THEN rgb2 = rgb2 +hextoint(MID$(rd$,3,1))
IF j = 5 THEN rgb3 = hextoint(MID$(rd$,4,1))*16
IF j = 6 THEN rgb3 = rgb3 +hextoint(MID$(rd$,5,1))
NEXT


READLINE 1,rd$
READLINE 1,rd$

cirx=MID$(rd$,INSTR(rd$, "sodipodi:cx=")+13,LEN(rd$)-1)
READLINE 1,rd$
ciry=MID$(rd$,INSTR(rd$, "sodipodi:cy=")+13,LEN(rd$)-1)
READLINE 1,rd$
cdi=MID$(rd$,INSTR(rd$, "sodipodi:rx=")+13,LEN(rd$)-1)
FOR i=0 TO 359
DRAWLINE cirx,ciry, cdi*SIN(i) + cirx, cdi*COS(i)+ciry, RGB(rgb1%, rgb2%, rgb3%)
NEXT
SHOWSCREEN

//WRITELINE 2,"//CIRCLE"
WRITELINE 2,"FOR i=0 TO 359"
WRITELINE 2,"DRAWLINE "+cirx+"+xval,"+ciry+"+yval,"+cdi+"*SIN(i) + "+cirx+"+xval, "+cdi+"*COS(i)+"+(ciry)+"+yval,RGB("+rgb1%+","+rgb2%+","+rgb3%+")"
WRITELINE 2,"NEXT"
isline = 2
ENDIF


IF INSTR(rd$, "fill:#") > 0 OR INSTR(rd$, "fill:n") > 0
//colour

IF INSTR(rd$, "fill:#") > 0


pos# = INSTR(rd$, "fill:#")
rd$ = LCASE$(MID$(rd$,pos#+6,6))



ELSE
pos# = INSTR(rd$, "stroke:#")
rd$ = LCASE$(MID$(rd$,pos#+8,6))
IF isline<>2 THEN isline=1
ENDIF
rgb1% = 0
rgb2% = 0
rgb3% = 0
FOR j = 1 TO 6
IF j = 1 THEN rgb1 = hextoint(MID$(rd$,0,1))*16
IF j = 2 THEN rgb1 = rgb1 +hextoint(MID$(rd$,1,1))
IF j = 3 THEN rgb2 = hextoint(MID$(rd$,2,1))*16
IF j = 4 THEN rgb2 = rgb2 +hextoint(MID$(rd$,3,1))
IF j = 5 THEN rgb3 = hextoint(MID$(rd$,4,1))*16
IF j = 6 THEN rgb3 = rgb3 +hextoint(MID$(rd$,5,1))
NEXT
spno% = spno%+1


//clear screen TO match SVG background
DRAWRECT 0, 0, screenx%, screeny%,RGB(prgb1%,prgb2%,prgb3%)


IF isline=0
//SPRITE INFO
DRAWRECT spno%, 0, 32, 32, RGB(rgb1%, rgb2%, rgb3%)
GRABSPRITE spno%, 0, 0, 32, 32
tempa$[spno%]="DRAWRECT 0, 0, 32, 32, RGB("+rgb1%+","+rgb2%+","+rgb3%+")"

tempb$[spno%]="GRABSPRITE "+spno%+", 0, 0, 32, 32"


ENDIF

//drawpoly
mode%=0
READLINE 1,rd$
WHILE INSTR(rd$, "d=")<1
READLINE 1,rd$
WEND


//WRITELINE 2,"//"+rd$
//if M in svg made in Inkscape treat as absolute Coords
IF INSTR(rd$, "-")>0 THEN mode%=0
IF INSTR(rd$, "M")>0 THEN mode%=1
rd$=LCASE$(rd$)






//convert Inkscape svg L path standard
IF INSTR(rd$, "l")>1
mode%=1
rd$=REPLACE$(rd$,CHR$(32),",")
rd$=REPLACE$(rd$,"l"," ")
ENDIF
IF MID$(rd$,LEN(rd$)-2,1) <> " "
rd$=MID$(rd$,0,LEN(rd$)-2)+" z"
ENDIF


IF MID$(rd$,INSTR(rd$, "m")+1,1)=" "
pos# = INSTR(rd$, "m")+2
ELSE
pos# = INSTR(rd$, "m")+1
ENDIF


//WRITELINE 2,"//mode%="+mode%

count%=0
temp1$=""
temp2$=""
tempx=0.0
tempy=0.0

REDIM polyvx[400]
REDIM polyvy[400]
WHILE pos# < LEN(rd$)-3



rd$=MID$(rd$,pos#,LEN(rd$))
IF INSTR(rd$," ")<1 THEN BREAK

IF count% = 0

temp1$ =MID$(rd$,0,INSTR(rd$,","))
temp2$ =MID$(rd$,INSTR(rd$,",")+1,(INSTR(rd$," ")-INSTR(rd$,",")-1))

tempx = temp1$
tempy = temp2$


polyvx[count%]=tempx
polyvy[count%]=tempy
count%=count%+1

ELSE



temp1$ =MID$(rd$,0,INSTR(rd$,","))
temp2$ =MID$(rd$,INSTR(rd$,",")+1,(INSTR(rd$," ")-INSTR(rd$,",")-1))
IF mode%=0


tempx = tempx+temp1$
tempy = tempy+temp2$

ELSE

tempx = temp1$
tempy = temp2$

ENDIF

polyvx[count%]=tempx
polyvy[count%]=tempy

count%=count%+1
ENDIF



pos# = INSTR(rd$," ")+1
IF pos# = INSTR(rd$,"z") THEN BREAK
IF pos#+1 = INSTR(rd$,"z") THEN BREAK
IF count% = 399 THEN BREAK

WEND

IF datamode = 2
IF isline=0 AND count%>2
//STARTPOLY spno%
WRITELINE 2,"STARTPOLY "+spno%
FOR m = count%-1 TO 0 STEP -1
//POLYVECTOR  polyvx[m], polyvy[m] ,0,0,RGB(rgb1%, rgb2%, rgb3%)
WRITELINE 2,"POLYVECTOR ("+polyvx[m] +"*scxval)+xval,("+polyvy[m]+"*scyval)+yval,0,0,rgb(255,255,255)"
NEXT
//ENDPOLY
WRITELINE 2,"ENDPOLY"
ENDIF
ELSE
//data
WRITELINE 2, "STARTDATA  poly_"+MID$(test$,0,LEN(test$)-4)+":"
WRITELINE 2, "//sprite number,xcoord,ycood"
//in loop
FOR m = count%-1 TO 0 STEP -1
WRITELINE 2, "DATA "+spno%+","+polyvx[m] +","+polyvy[m]
NEXT
ENDIF



IF datamode = 2
IF isline=1
DRAWLINE polyvx[0], polyvy[0],polyvx[1], polyvy[1],RGB(rgb1%, rgb2%, rgb3%)
WRITELINE 2,"DRAWLINE "+polyvx[0] +"+xval,"+polyvy[0]+"+yval,"+polyvx[1]+"+xval,"+polyvy[1]+"+yval, RGB("+rgb1%+","+rgb2%+","+rgb3%+")"
ENDIF
ELSE
//data
WRITELINE 2, "STARTDATA  poly_"+MID$(test$,0,LEN(test$)-4)+":"
WRITELINE 2, "//sprite number,xcoord,ycood"
//in loop
FOR m = count%-1 TO 0 STEP -1
WRITELINE 2, "DATA "+spno%+","+polyvx[m] +","+polyvy[m]
NEXT
ENDIF
WRITELINE 2, "ENDDATA"


SHOWSCREEN
SLEEP 40


ENDIF



NEXT


IF datamode = 2
WRITELINE 2,"ENDFUNCTION"
WRITELINE 2,""
WRITELINE 2,"FUNCTION sprite_"+MID$(test$,0,INSTR(test$,"."))+":"

FOR i = 1 TO spno%
WRITELINE 2,tempa$[i]
WRITELINE 2,tempb$[i]
NEXT
WRITELINE 2,"ENDFUNCTION"
ENDIF

CLOSEFILE 1
CLOSEFILE 2

FUNCTION dxftosvg:dxfin$
LOCAL idnum#, writepath$,svgout$,tempval#

OPENFILE(3,dxfin$, TRUE)
svgout$=MID$(dxfin$,0,LEN(dxfin$)-4)+".svg"
OPENFILE(4,svgout$,FALSE)
idnum = 1000
//header
WRITELINE 4, "<svg"
WRITELINE 4, "   inkscape:version=" + CHR$(34) + "0.48.4 r9939" + CHR$(34) + ">"
WRITELINE 4, "  <g"
WRITELINE 4, "     inkscape:label=" + CHR$(34) + "Layer 1" + CHR$(34)
WRITELINE 4, "     inkscape:groupmode= " + CHR$(34) + "layer" + CHR$(34)
WRITELINE 4, "     id=" + CHR$(34) + "layer1" + CHR$(34) + ">"
WHILE 1=1
IF ENDOFFILE(3) = 1 THEN BREAK
READLINE  3, rd$
IF rd$ = "LWPOLYLINE"
idnum=idnum+1
writepath$="       d=" + CHR$(34) + "M"
WHILE 1=1
READLINE  3, rd$
IF rd$ = " 10"
READLINE  3, rd$
writepath$=writepath$ + " " + rd$
ENDIF

IF rd$ = " 20"
READLINE  3, rd$
IF MID$(rd$,0,1) = "-"
rd$=MID$(rd$,1,LEN(rd$)-1)
ELSE
tempval = rd$
IF tempval <>0
rd$="-" +rd$
ELSE

ENDIF
ENDIF
writepath$=writepath$ + "," +rd$
ENDIF
IF rd$ = "  0" THEN BREAK
WEND
writepath$=writepath$ + " z" + CHR$(34)

WRITELINE 4, "    <path"
WRITELINE 4, "       style=" + CHR$(34) + "fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + CHR$(34)
WRITELINE 4, writepath$
WRITELINE 4, "       id=" + CHR$(34) + "path" + idnum + CHR$(34)
WRITELINE 4, "       inkscape:connector-curvature=" + CHR$(34) + "0" + CHR$(34) + " />"

ENDIF
WEND

WRITELINE 4, "  </g>"
WRITELINE 4, "</svg>"
CLOSEFILE 3
CLOSEFILE 4
ENDFUNCTION



FUNCTION hextoint:temp$

LOCAL r%
SELECT UCASE$(temp$)
CASE "0"
r%=0
CASE "1"
r%=1
CASE "2"
r%=2
CASE "3"
r%=3
CASE "4"
r%=4
CASE "5"
r%=5
CASE "6"
r%=6
CASE "7"
r%=7
CASE "8"
r%=8
CASE "9"
r%=9
CASE "A"
r%=10
CASE "B"
r%=11
CASE "C"
r%=12
CASE "D"
r%=13
CASE "E"
r%=14
CASE "F"
r%=15
ENDSELECT
RETURN r%
ENDFUNCTION