Hi Aaron and fellow Inkscapers
Have you thought anymore about what I can do to improve Inkscape's DXF capabilities? Would it be a good idea to revive the abandoned GSoC DXF project, as you were saying?
I read your last thread regarding skipping over the DXF issue and saving work as GSD. Having GSD support sounds like it would make lots of people happy but I think there are lots of people like myself who could use the DXF files as well.
Would it be a good idea to split the save-as dialog up? The regular illustrator graphic formats could be left as is and the specialty file formats could be placed under an export menu. We could have DXF, GSD and why not custom DXF scalings. For example here are some hypothetical examples:
Export as: GSD DXF(standard CAD) DXF(blah blah cutter) DXF(blah blah device) DXF(custom) Plus some other weird file types
BTW I have never owned a vinyl cutter but I am confident that I could write a program to control one, given enough time. I rebuild and resell analytical laboratory instruments like chromatographs and spectrophotometers. Proprietary software hurts my business and drains my customers budgets(and their fighting Hepatitis/Cancer etc). I am obsessed with the idea of writing an open source instrument control/data analysis App. I have spent quite a bit of time researching the communications involved. I might be able to monitor the communication between cutter and native software and copy the commands. Is direct device control a direction that Inkscape should go in?
Thanks-Patrick
Aaron Spike wrote:
Stéphane ANCELOT wrote:
I have already done the same kind of thing but from dxf to svg. have a look at http://sancelot.wordpress.com/2007/07/13/enhanced-dxf2svg/
you will find my code : // create curves points from spline definition void spline::compute_path() { int step = 25; double t,t2,t3; double Cm1,C0,C1,C2;
ctrl_pts r,Pm1,p0,p1,p2; computed_path.clear(); for (int i=0;i< control_points.size() - 3;i++) { Pm1 = control_points[i]; p0 = control_points[i+1]; p1 = control_points[i+2]; p2 = control_points[i+3]; for (int s=0;s<=step;s++) { t = double(s) / (double) step; t2 = t * t; t3 = t2 * t; Cm1 = -1.0/6.0 * t3 + 0.5 * t2 - 0.5 * t + 1.0/6.0; C0 = .5 * t3 - t2 +2.0/3.0; C1 = -.5*t3+.5*t2+.5*t+1.0/6.0; C2 = 1.0/6.0*t3; r.x = Cm1*Pm1.x+C0*p0.x + C1*p1.x+C2*p2.x; r.y = Cm1*Pm1.y+C0*p0.y + C1*p1.y+C2*p2.y; r.z = 0; computed_path.push_back(r); } } }
If this approximates NURB curves with Cubic Bezier Curves this will be a very useful routine. How is it licensed?
Aaron Spike
This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user