Nabble removed Mailing-list integration from the Forum.
This killed the Forum. This is now an ARCHIVE.
It is likely Nabble will shutdown in the future.
Hi everyone,
I need help with the CGAL C++ api and thought maybe someone here is motivated to help out.. ;-) I'm working on a 2D subsystem in OpenSCAD [1] based on the CGAL Nef_polyhedron_2<T> class atm. Unfortunately this class does (unlike the Nef_polyhedron_3<T> class) not have a transform method. So in order to perform a translation I have to create a new Nef_polyhedron_2<T> object with all vetrices from the old one but with the transformation applied to all vetrices (see the "FIXME" in transform.cc in current svn head). There is a constructor for Nef_polyhedron_2<T> that looks like what I need. Unfortunately the documentation [2] is not very verbose on this one: template <class Forward_iterator> Nef_polyhedron_2<T> N (Forward_iterator it, Forward_iterator end, Polygons_tag); The iterator range [it, end) defines a set point ranges, each of which defines the boundary of simple polygon. I thought I could call this constructor like that (CGAL_Nef_polyhedron2 is a typedef to Nef_polyhedron_2<CGAL::Extended_cartesian<CGAL::Gmpq>>): std::vector< std::vector<CGAL_Nef_polyhedron2::Point> > pdata; N.p2 = CGAL_Nef_polyhedron2(pdata.begin, pdata.end, CGAL_Nef_polyhedron2::POLYGONS); however - this does not work as I was hoping. Maybe someone with a bit more c++ skills (I'm still more the plain-C guy) could look into this issue? The whole 2d subsystem thing is stalled since a few days because I'm so frustrated with this issue already.. yours, - clifford PS: I've already sent a mail to the CGAL mailing list a few days before about this issue but haven't got an answer so far.. [1] http://rocklinux.net/pipermail/openscad/2009-December/000009.html [2] http://www.cgal.org/Manual/last/doc_html/cgal_manual/Nef_2_ref/Class_Nef_polyhedron_2.html -- When your hammer is C++, everything begins to look like a thumb. |
Administrator
|
On Jan 3, 2010, at 11:22 , Clifford Wolf wrote:
> I thought I could call this constructor like that > (CGAL_Nef_polyhedron2 is > a typedef to Nef_polyhedron_2<CGAL::Extended_cartesian<CGAL::Gmpq>>): > > std::vector< std::vector<CGAL_Nef_polyhedron2::Point> > pdata; > N.p2 = CGAL_Nef_polyhedron2(pdata.begin, pdata.end, > CGAL_Nef_polyhedron2::POLYGONS); > The obvious problem is that begin and end are methods which should be called, but that is perhaps just a typo? A stand-alone (or OpenSCAD patch), almost compilable, example would help getting into it. ~/= Marius -- We are Elektropeople for a better living. |
Hey Marius and Clifford,
Any luck getting the "Compile and Render (CSG)" stage in OpenSCAD working? I just updated to latest svn (r197), spotted the switch to OpenCSG-1.2.0, applied the patches and all I get is an empty screen after time spent rendering. I see the same behaviour with when I try your openscad-2009.12.31 (Mac OS X) snapshot. I have my own openscad-2009.12.26 build that works. Known problem across all platforms, just Mac, or just me? Thanks! Andrew. -- "The future is already here. It's just not very evenly distributed" -- William Gibson |
Administrator
|
On Jan 3, 2010, at 20:16 , Andrew Plumb wrote:
> > Any luck getting the "Compile and Render (CSG)" stage in OpenSCAD > working? I just updated to latest svn (r197), spotted the switch to > OpenCSG-1.2.0, applied the patches and all I get is an empty screen > after time spent rendering. > > I see the same behaviour with when I try your openscad-2009.12.31 (Mac > OS X) snapshot. I have my own openscad-2009.12.26 build that works. > > Known problem across all platforms, just Mac, or just me? > I haven't experienced such problems with any of those versions on Mac, and neither using OpenCSG-1.2.0. Empty screen problems are the least fun to debug, but let's see what we can do.. To make sure all is well, please grab the latest build (2009-12-31), open a Terminal and send med the output of this: $ otool -L OpenSCAD.app/Contents/MacOS/OpenSCAD Then, start OpenSCAD on the cmd-line: $ ./OpenSCAD.app/Contents/MacOS/OpenSCAD Now, what exactly doesn't work? o Do you get the same behavior with all view methods (F9-F12) ? o Does it make a difference whether you use "Compile" (F5) or "Compile and Render (CGAL)" (F6) ? o Are there any meaningful output anywhere which could give me a hint? I know there isn't much debug output going on atm.. Also, the output of 'glewinfo' could be useful, just in case. ~/= Marius -- We are Elektropeople for a better living. |
Hi Marius,
Try this again; hit a file-size limit on my attachments. I've attached the output from otool in openscad-2009.12.31.otool for your snapshot version on my system. Using both your version and my svn compiled version I am able to Compile (F5) and see & interact with the resulting model. Compile and Render (CGAL) takes time to complete as I expect, but then the view area goes blank upon completion instead of displaying the final rendered model. I've tried dumping an STL file just in case the problem is only with displaying the model but that throws "Current top level object is not a 3D object." See attached release-macosx.clothbot.sh for the diff I have to do to resolve library dependencies when compiling my own. If you think it could help I can send you the results of the shell script executed, piped to file. It was 36KB and pushed my previous message size over the 40K (encoded) limit. When you build yours, do you include MDI or not? I did this time and hadn't previous times. I'll try backing out the MDI-related patches and see if it resolves things in my compiled version. Andrew. On 3-Jan-10, at 3:15 PM, Marius Kintel wrote: > On Jan 3, 2010, at 20:16 , Andrew Plumb wrote: >> >> Any luck getting the "Compile and Render (CSG)" stage in OpenSCAD >> working? I just updated to latest svn (r197), spotted the switch to >> OpenCSG-1.2.0, applied the patches and all I get is an empty screen >> after time spent rendering. >> >> I see the same behaviour with when I try your openscad-2009.12.31 >> (Mac >> OS X) snapshot. I have my own openscad-2009.12.26 build that works. >> >> Known problem across all platforms, just Mac, or just me? >> > > I haven't experienced such problems with any of those versions on Mac, > and neither using OpenCSG-1.2.0. > Empty screen problems are the least fun to debug, but let's see what > we can do.. > > To make sure all is well, please grab the latest build (2009-12-31), > open a Terminal and send med the output of this: > $ otool -L OpenSCAD.app/Contents/MacOS/OpenSCAD > > Then, start OpenSCAD on the cmd-line: > $ ./OpenSCAD.app/Contents/MacOS/OpenSCAD > > Now, what exactly doesn't work? > o Do you get the same behavior with all view methods (F9-F12) ? > o Does it make a difference whether you use "Compile" (F5) or "Compile > and Render (CGAL)" (F6) ? > o Are there any meaningful output anywhere which could give me a hint? > I know there isn't much debug output going on atm.. > > > Also, the output of 'glewinfo' could be useful, just in case. > > ~/= Marius > > -- > We are Elektropeople for a better living. > > > > > _______________________________________________ > OpenSCAD mailing list > [hidden email] > http://rocklinux.net/mailman/listinfo/openscad -- "The future is already here. It's just not very evenly distributed" -- William Gibson |
Forgot to attach my modified release-macosx.clothbot.sh this time.
On 3-Jan-10, at 8:20 PM, Andrew Plumb wrote: > Hi Marius, > > Try this again; hit a file-size limit on my attachments. > > I've attached the output from otool in openscad-2009.12.31.otool for > your snapshot version on my system. > > Using both your version and my svn compiled version I am able to > Compile (F5) and see & interact with the resulting model. > > Compile and Render (CGAL) takes time to complete as I expect, but > then the view area goes blank upon completion instead of displaying > the final rendered model. I've tried dumping an STL file just in > case the problem is only with displaying the model but that throws > "Current top level object is not a 3D object." > > See attached release-macosx.clothbot.sh for the diff I have to do to > resolve library dependencies when compiling my own. > > If you think it could help I can send you the results of the shell > script executed, piped to file. It was 36KB and pushed my previous > message size over the 40K (encoded) limit. > > When you build yours, do you include MDI or not? I did this time and > hadn't previous times. I'll try backing out the MDI-related patches > and see if it resolves things in my compiled version. > > Andrew. > > > > On 3-Jan-10, at 3:15 PM, Marius Kintel wrote: > >> On Jan 3, 2010, at 20:16 , Andrew Plumb wrote: >>> >>> Any luck getting the "Compile and Render (CSG)" stage in OpenSCAD >>> working? I just updated to latest svn (r197), spotted the switch to >>> OpenCSG-1.2.0, applied the patches and all I get is an empty screen >>> after time spent rendering. >>> >>> I see the same behaviour with when I try your openscad-2009.12.31 >>> (Mac >>> OS X) snapshot. I have my own openscad-2009.12.26 build that works. >>> >>> Known problem across all platforms, just Mac, or just me? >>> >> >> I haven't experienced such problems with any of those versions on >> Mac, >> and neither using OpenCSG-1.2.0. >> Empty screen problems are the least fun to debug, but let's see what >> we can do.. >> >> To make sure all is well, please grab the latest build (2009-12-31), >> open a Terminal and send med the output of this: >> $ otool -L OpenSCAD.app/Contents/MacOS/OpenSCAD >> >> Then, start OpenSCAD on the cmd-line: >> $ ./OpenSCAD.app/Contents/MacOS/OpenSCAD >> >> Now, what exactly doesn't work? >> o Do you get the same behavior with all view methods (F9-F12) ? >> o Does it make a difference whether you use "Compile" (F5) or >> "Compile >> and Render (CGAL)" (F6) ? >> o Are there any meaningful output anywhere which could give me a >> hint? >> I know there isn't much debug output going on atm.. >> >> >> Also, the output of 'glewinfo' could be useful, just in case. >> >> ~/= Marius >> >> -- >> We are Elektropeople for a better living. >> >> >> >> >> _______________________________________________ >> OpenSCAD mailing list >> [hidden email] >> http://rocklinux.net/mailman/listinfo/openscad > <openscad-2009.12.31.otool> > -- > > "The future is already here. It's just not very evenly distributed" > -- William Gibson > > > > _______________________________________________ > OpenSCAD mailing list > [hidden email] > http://rocklinux.net/mailman/listinfo/openscad "The future is already here. It's just not very evenly distributed" -- William Gibson |
Administrator
|
Hi again Andrew,
I'm still at loss - could you also provide me with the model in question? Regarding MDI: I've been building both with and without MDI and haven't discovered any problems with either of them. I'm mainly using the MDI build though, and the snapshots should be MDI- enabled from now on as well. ~/= Marius -- We are Elektropeople for a better living. |
In reply to this post by kintel
Hi,
On Sun, Jan 03, 2010 at 04:48:22PM +0100, Marius Kintel wrote: > > I thought I could call this constructor like that > > (CGAL_Nef_polyhedron2 is > > a typedef to Nef_polyhedron_2<CGAL::Extended_cartesian<CGAL::Gmpq>>): > > > > std::vector< std::vector<CGAL_Nef_polyhedron2::Point> > pdata; > > N.p2 = CGAL_Nef_polyhedron2(pdata.begin, pdata.end, > > CGAL_Nef_polyhedron2::POLYGONS); > > The obvious problem is that begin and end are methods which should be > called, but that is perhaps just a typo? > > A stand-alone (or OpenSCAD patch), almost compilable, example would > help getting into it. ok - I'm a big step further now: still not performing the transformation but creating one Nef_polyhedron_2 from another one: --snip-- typedef std::list<CGAL_Nef_polyhedron2::Point> point_list_t; typedef point_list_t::iterator point_list_it; std::list< point_list_t > pdata_point_lists; std::list < std::pair < point_list_it, point_list_it > >pdata; typedef CGAL_Nef_polyhedron2::Explorer Explorer; typedef Explorer::Face_const_iterator fci_t; typedef Explorer::Halfedge_around_face_const_circulator heafcc_t; Explorer E = N.p2.explorer(); for (fci_t fit = E.faces_begin(), fend = E.faces_end(); fit != fend; ++fit) { pdata_point_lists.push_back(point_list_t()); heafcc_t fcirc(E.halfedge(fit)), fend(fcirc); CGAL_For_all(fcirc, fend) { if (E.is_standard(E.target(fcirc))) { Explorer::Point ep = E.point(E.target(fcirc)); // FIXME: Actually do the transformation pdata_point_lists.back().push_back(ep); } } pdata.push_back(std::make_pair(pdata_point_lists.back().begin(), pdata_point_lists.back().end())); } N.p2 = CGAL_Nef_polyhedron2(pdata.begin(), pdata.end(), CGAL_Nef_polyhedron2::POLYGONS); --snap-- Next miracle: how to apply an Aff_transformation_2 to an Explorer::Point object.. yours, - clifford -- M$ is not the answer. M$ is the question. No is the answer! |
Administrator
|
Hi,
> Next miracle: how to apply an Aff_transformation_2 to an > Explorer::Point > object.. > I didn't quite get what you're trying to achieve, unless this is some kind of workaround for missing functionality in CGAL for 2D primitives. Maybe it would be easier to go to 3D and just set all z coordinates to 0. Disclaimer: I didn't read through the code and I don't know about CGAL ;) ~/= Marius -- We are Elektropeople for a better living. |
Hi,
On Mon, Jan 04, 2010 at 05:51:45AM +0100, Marius Kintel wrote: > > Next miracle: how to apply an Aff_transformation_2 to an > > Explorer::Point > > object.. > > I didn't quite get what you're trying to achieve, unless this is some > kind of workaround for missing functionality in CGAL for 2D primitives. yes. unlike the 3d nef polyhedron classes the 2d nef polygon classes do not have a transform method. > Maybe it would be easier to go to 3D and just set all z coordinates to 0. with all z coordinates set to 0 it would have no volume and thus not be a valid 3d new polyhedron. sure you could work around that by simply linearly extruding the 2d data by a constant length. but the main reason why I don't want to go there is that the algorithms for 3d csg are much more expensive than the algorithms for 2d csg and it so it would be a waste of resources to use the 3d algorithms for 2d operations. Btw: I'm using that approach (extruding to 3d) already for the OpenCSG preview of 2d data. yours, - clifford -- When your hammer is C++, everything begins to look like a thumb. |
In reply to this post by kintel
Hi Marius,
Ah, it does seem to be model-specific; the standard examples work. Clifford, you may need to test this one as well. 1. Unzip the attached multinozzle_20091231.zip 2. Open "multinozzle_20091231.scad" in OpenSCAD 3. Select "Design - Compile" 4. Confirm that the "bracket()" part renders with no warning messages 5. Scroll down to the line "render_part=10;" and confirm that it is set to "10" 6. Select "Design - Compile and Render (CGAL)" This is where the new problem manifests. Rendering finishes but I don't see the usual "Number of vertices/Number of objects" report. The output jumps straight to "Total rendering time: ... Rendering finished." without any warnings. The time taken to render is the same as with earlier (working) OpenSCAD versions (55 seconds on my system) it just seems to loose track of its objects. Aside: For kicks, if you set "render_part=0;" you'll see roughly what I intend to send off to ShapeWays for a test print in stainless steel. I have an earlier version going through the system right now to test the general nozzle design. :-) Andrew. On 3-Jan-10, at 9:54 PM, Marius Kintel wrote: > Hi again Andrew, > > I'm still at loss - could you also provide me with the model in > question? > > Regarding MDI: > I've been building both with and without MDI and haven't discovered > any problems with either of them. > I'm mainly using the MDI build though, and the snapshots should be > MDI- > enabled from now on as well. > > ~/= Marius > > -- > We are Elektropeople for a better living. > > > > > _______________________________________________ > OpenSCAD mailing list > [hidden email] > http://rocklinux.net/mailman/listinfo/openscad "The future is already here. It's just not very evenly distributed" -- William Gibson |
Hi,
On Mon, Jan 04, 2010 at 06:16:23AM -0500, Andrew Plumb wrote: > Ah, it does seem to be model-specific; the standard examples work. > Clifford, you may need to test this one as well. oops. this is a bug introduced together with the 2d csg operations. it is fixed now in svn trunk (rev. 204). yours, - clifford -- "Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke |
On Tue, Jan 5, 2010 at 3:40 PM, Clifford Wolf <[hidden email]> wrote:
> oops. this is a bug introduced together with the 2d csg operations. > it is fixed now in svn trunk (rev. 204). I don't happen to have a working Windows compiler toolchain set up (and while I love UNIXy OSes, switching to another environment is not an option at the moment). Will this be available as a precompiled .EXE soon? Thanks, -ethan |
Administrator
|
In reply to this post by Clifford Wolf
On Jan 5, 2010, at 21:40 , Clifford Wolf wrote:
> oops. this is a bug introduced together with the 2d csg operations. > it is fixed now in svn trunk (rev. 204). > ..and the latest Mac binaries with this fix are now online. ~/= Marius -- We are Elektropeople for a better living. |
In reply to this post by Ethan Dicks
Hi,
On Tue, Jan 05, 2010 at 03:47:18PM -0500, Ethan Dicks wrote: > On Tue, Jan 5, 2010 at 3:40 PM, Clifford Wolf <[hidden email]> wrote: > > oops. this is a bug introduced together with the 2d csg operations. > > it is fixed now in svn trunk (rev. 204). > > I don't happen to have a working Windows compiler toolchain set up > (and while I love UNIXy OSes, switching to another environment is not > an option at the moment). Will this be available as a precompiled > .EXE soon? atm we don't have snapshots for win32 (and afaik stefan has no plans in making any ;-). so this fix won't be available for win32 until the next release. however: the last release binaries do not contain 2d support so they also do not have this bug.. yours, - clifford -- +++>+>++++++[<+++++++>-]<..>++>++++++[<+++++>-]<.>>++++++[<+++++++++++>-]<. >++>>++++[<++++[<+++++++>-]>-]<<.>+>>++++[<++++[<++++++>-]>-]<<.++++++++.<- ---.>---.<<<<-.>>>>---.<---.<<.<+..>.>>---.>>++++>>++++[<++++[<+++++++>-]>- ]<<..----.<<<--------.<<++++..>>>>>+++++++...<<<<<-.>>>>.<++++.---.>+++..<+ +++++.+++.>--.<<<<.>>>>---.<++.<<<+.>>>>+.++++.---.<----.>>--.<<<<<.>.<---- ..>.>+++++++++.>>>>>>++++[<++++[<+++++>-]>-]<<.+++++.<<<<<<+.>.>.>-.--.+++. >++++++.+++.-------.<++.<<<.>.>>>.>-.<--.<<<<++..>.<---..>>>>>>>++++++++++. |
On Tue, Jan 5, 2010 at 4:00 PM, Clifford Wolf <[hidden email]> wrote:
> atm we don't have snapshots for win32 (and afaik stefan has no plans in > making any ;-). so this fix won't be available for win32 until the next > release. Oh. :-( > however: the last release binaries do not contain 2d support so they also > do not have this bug.. Unfortunately, what I have been trying to do _is_ 2D extrusion from DXF files made by QCad or Visio. I can get the examples to work perfectly, but not a single bit of a single file that I've drawn myself from scratch renders, even if I drop it into a working example (by changing the filename and layer name). I'm trying to make an oval medallion about 5-6mm thick by about 30mm x 55mm, with some "features" on the face. I can't get so much as a triangle to extrude. The only Macs I have on-hand are G4 Macs running 10.4 (which is a problem vs Intel Macs due to Python issues), so that's not really helpful to me either since none of my RepRap/Makerbot environment is set up there. I'm a long-time C/Unix developer, so I was overjoyed to see a tool like OpenSCAD, but I seem to be having enough difficulty even getting test shapes to render that it's not been very productive for me. -ethan |
Hi,
On Tue, Jan 05, 2010 at 04:10:37PM -0500, Ethan Dicks wrote: > Unfortunately, what I have been trying to do _is_ 2D extrusion from > DXF files made by QCad or Visio. I can get the examples to work > perfectly, but not a single bit of a single file that I've drawn > myself from scratch renders, even if I drop it into a working example > (by changing the filename and layer name). I'm trying to make an oval > medallion about 5-6mm thick by about 30mm x 55mm, with some "features" > on the face. I can't get so much as a triangle to extrude. could you post such a problematic dxf file and the scad code you are trying to use? btw: there haven't been any changes to the dxf extrusion code since the last release afair - so you would not benefit from a snapshot build. yours, - clifford -- Qrpelcgvat ebg13 ivbyngrf gur QZPN! Cercner gb or fhrq!! |
In reply to this post by Ethan Dicks
The DXF import capability is very picky about overlapping lines,
duplicate shapes, points, etc. Are you able to extrude the "M6_Nut.dxf" file in that multinozzle zip file I uploaded earlier? That's drawn in QCad. Andrew. On 5-Jan-10, at 4:10 PM, Ethan Dicks wrote: > On Tue, Jan 5, 2010 at 4:00 PM, Clifford Wolf <[hidden email]> > wrote: >> atm we don't have snapshots for win32 (and afaik stefan has no >> plans in >> making any ;-). so this fix won't be available for win32 until the >> next >> release. > > Oh. :-( > >> however: the last release binaries do not contain 2d support so >> they also >> do not have this bug.. > > Unfortunately, what I have been trying to do _is_ 2D extrusion from > DXF files made by QCad or Visio. I can get the examples to work > perfectly, but not a single bit of a single file that I've drawn > myself from scratch renders, even if I drop it into a working example > (by changing the filename and layer name). I'm trying to make an oval > medallion about 5-6mm thick by about 30mm x 55mm, with some "features" > on the face. I can't get so much as a triangle to extrude. > > The only Macs I have on-hand are G4 Macs running 10.4 (which is a > problem vs Intel Macs due to Python issues), so that's not really > helpful to me either since none of my RepRap/Makerbot environment is > set up there. > > I'm a long-time C/Unix developer, so I was overjoyed to see a tool > like OpenSCAD, but I seem to be having enough difficulty even getting > test shapes to render that it's not been very productive for me. > > -ethan > _______________________________________________ > OpenSCAD mailing list > [hidden email] > http://rocklinux.net/mailman/listinfo/openscad -- "The future is already here. It's just not very evenly distributed" -- William Gibson |
In reply to this post by kintel
Confirmed in my local build environment as well. Now to try pulling
that MDI and OpenCSG-1.2.0 back into the mix. Andrew. On 5-Jan-10, at 3:53 PM, Marius Kintel wrote: > On Jan 5, 2010, at 21:40 , Clifford Wolf wrote: > >> oops. this is a bug introduced together with the 2d csg operations. >> it is fixed now in svn trunk (rev. 204). >> > > ..and the latest Mac binaries with this fix are now online. > > ~/= Marius > > -- > We are Elektropeople for a better living. > > > > > _______________________________________________ > OpenSCAD mailing list > [hidden email] > http://rocklinux.net/mailman/listinfo/openscad -- "The future is already here. It's just not very evenly distributed" -- William Gibson |
In reply to this post by Ethan Dicks
On Tue, Jan 5, 2010 at 10:10 PM, Ethan Dicks <[hidden email]> wrote:
I'll look into that. I supposed a small script that builds openscad automatically and uploads the binaries to a webserver won't be that hard. Stefan |
Free forum by Nabble | Edit this page |