📄 2004-march.txt
字号:
Yes, that limitation has been removed. The curve can be a real 3d curve,the curve can even "go around" the axis. But if the curve intersects theaxis, api_sweep_with_options does not return a result anymore.Another "interesting" limitation: If the curve is a planar curve orassume the points of a space curve are nearly in a plane and the axis ofrevolution is nearly orhogonal to that plane - no result is returned bythe sweep option. I could understand it if plane and axis were reallynormal to each other but api_sweep_... stops working as soon as they getclose to normal.> I suspect the example you seek is to be found in the documentation on> api_sweep_with_options. I'm unsure, as I generally do my ownconstruction,> having gotten tired early on with the limitations of the sweeping> algorithms, and being a control freak about model topology...That sounds to be very wise :)Hannes> > Arlo> > -----Original Message-----> From: Hannes Kaufmann [mailto:kaufmann@ims.tuwien.ac.at]> Sent: Monday, March 01, 2004 5:53 AM> To: nil.wehr@softwehr-service.de> Cc: acis-alliance@cs.columbia.edu> Subject: Re: [Acis-alliance] create complex BODY> > As far as I have seen it is not possible with ACIS to sweep whole bodys> around an axis. You can only sweep profile curves.> The sweeping does not seem to be very sophisticated. I don't even get a> valid result if I sweep a profile that intersects the axis around an> axis.> > Hannes> > nil.wehr@softwehr-service.de wrote:> >> > Hello,> >> > I want to create complex bodies by using> > vetices->SPApostion->edge->coedge->wire -> ... sweep straight along axis> > -> BODY> >> > I can create the wire by setting the first coedge (which points to the> > following coedge ...).> >> > But how do I use the sweep-algorithm to create BODY-objects?> >> > If anybody could send an example (even simple geometry like box, made by> > sweep) I would be(very) happy.> >> > Also a link to an example would support myself.> >> > Thank you for your support> >> > Jeurgen Wehr> > _______________________________________________> > Acis-alliance mailing list> > Acis-alliance@cs.columbia.edu> > http://lists.cs.columbia.edu/mailman/listinfo/acis-alliance> > --> Hannes Kaufmann | Vienna University of Technology> Researcher | Interactive Media Systems Group> T +43 1 58801-18860 | F +43 1 58801-18898> kaufmann @ ims.tuwien.ac.at> _______________________________________________> Acis-alliance mailing list> Acis-alliance@cs.columbia.edu> http://lists.cs.columbia.edu/mailman/listinfo/acis-alliance-- Hannes Kaufmann | Vienna University of Technology Researcher | Interactive Media Systems GroupT +43 1 58801-18860 | F +43 1 58801-18898 kaufmann @ ims.tuwien.ac.atFrom nil.wehr at softwehr.net Tue Mar 2 01:50:24 2004From: nil.wehr at softwehr.net (nil.wehr@softwehr.net)Date: Mon Mar 1 23:35:11 2004Subject: [Acis-alliance] create complex BODY\In-Reply-To: <4043322F.4E2949D9@ims.tuwien.ac.at>References: <5694195$1078138604404316ec02c008.91025757@config21.schlund.de> <4043322F.4E2949D9@ims.tuwien.ac.at>Message-ID: <20040302005024.GB10369@softwehr.net>Hello,thank zou for the information.I recognisze that the main problem I have is:I use the example of the ACIS documentation (api_sweep_with_options) and the previous defined BODY* - Pointer keeps empty :-(I create edges from SPAposition entities, create coedges from it, connect the coedges by setting next and prev.This coedges I use to build a loop, which is used to create a FACE.This FACE I want to use as the profile for the sweep-function - it doesnt't work (till now).maybe anybody can show or tell my mistakehere's a part of the algorithm:void GEOLever::createGeometry(){ /* lever vertices position (z always -m_dDepth/2) for basic face 1-------------2 / \ 6 3 \ / 5-------------4 */ // set vertices SPAposition v_StartPtLine1(-m_dLength/2, m_dWidth/2, -m_dDepth/2); SPAposition v_StartPtArc1(m_dLength/2, m_dWidth/2, -m_dDepth/2); SPAposition v_MiddlePtArc1((m_dLength/2)+(m_dWidth/2), 0.0, -m_dDepth/2); SPAposition v_StartPtLine2(m_dLength/2, -m_dWidth/2, -m_dDepth/2); SPAposition v_StartPtArc2(-m_dLength/2, -m_dWidth/2, -m_dDepth/2); SPAposition v_MiddlePtArc2(-(m_dLength/2)-(m_dWidth/2), 0.0, -m_dDepth/2); // create edges from vertices EDGE* line1; EDGE* line2; EDGE* bogen1; EDGE* bogen2; outcome oc_line1 = api_curve_line(v_StartPtLine1, v_StartPtArc1, line1); outcome oc_line2 = api_curve_line(v_StartPtLine2, v_StartPtArc2, line2); outcome oc_bogen1 = api_curve_arc_3pt(v_StartPtArc1, v_MiddlePtArc1, v_StartPtLine2, FALSE, bogen1); outcome oc_bogen2 = api_curve_arc_3pt(v_StartPtArc2, v_MiddlePtArc2, v_StartPtLine1, FALSE, bogen2); // create coedges from edges COEDGE* myCoEdge1 = ACIS_NEW COEDGE; myCoEdge1->set_edge(line1); COEDGE* myCoEdge2 = ACIS_NEW COEDGE; myCoEdge2->set_edge(bogen1); COEDGE* myCoEdge3 = ACIS_NEW COEDGE; myCoEdge2->set_edge(line2); COEDGE* myCoEdge4 = ACIS_NEW COEDGE; myCoEdge2->set_edge(bogen2); // buily chain of coedges by setting next and previous myCoEdge1->set_next_no_rev(myCoEdge2); myCoEdge2->set_next_no_rev(myCoEdge3); myCoEdge3->set_next_no_rev(myCoEdge4); myCoEdge4->set_next_no_rev(myCoEdge1); myCoEdge1->set_previous_no_rev(myCoEdge4); myCoEdge2->set_previous_no_rev(myCoEdge1); myCoEdge3->set_previous_no_rev(myCoEdge2); myCoEdge4->set_previous_no_rev(myCoEdge3); LOOP* lowerLoop = ACIS_NEW LOOP(); lowerLoop->set_start(myCoEdge1); FACE* lowerFace = ACIS_NEW FACE(); lowerFace->set_loop(lowerLoop); m_pAcisShape = NULL; sweep_options* swOpt = ACIS_NEW sweep_options();// swOpt->set_close_to_axis(TRUE); m_pAcisShape = NULL; SPAvector path_dir(0.0,1.0,0.0); outcome result = api_sweep_with_options(lowerFace,path_dir,swOpt,m_pAcisShape);ENTITY *sweep_result = NULL;if(m_pAcisShape){ sweep_result = m_pAcisShape;}else{ check_outcome( api_get_owner(lowerFace,sweep_result));}}I think there must be a bug at the FAE creating algo. The lower part (creating axis, options, path) is nearly the same like it is displayed by thedocumentation.If anybody could show my bugs, I would be very happy :-)thank you for your supportJuergen WehrOn Mon, Mar 01, 2004 at 01:53:03PM +0100, Hannes Kaufmann wrote:> As far as I have seen it is not possible with ACIS to sweep whole bodys> around an axis. You can only sweep profile curves.> The sweeping does not seem to be very sophisticated. I don't even get a> valid result if I sweep a profile that intersects the axis around an> axis.> > Hannes> > > nil.wehr@softwehr-service.de wrote:> > > > Hello,> > > > I want to create complex bodies by using> > vetices->SPApostion->edge->coedge->wire -> ... sweep straight along axis> > -> BODY> > > > I can create the wire by setting the first coedge (which points to the> > following coedge ...).> > > > But how do I use the sweep-algorithm to create BODY-objects?> > > > If anybody could send an example (even simple geometry like box, made by> > sweep) I would be(very) happy.> > > > Also a link to an example would support myself.> > > > Thank you for your support> > > > Jeurgen Wehr> > _______________________________________________> > Acis-alliance mailing list> > Acis-alliance@cs.columbia.edu> > http://lists.cs.columbia.edu/mailman/listinfo/acis-alliance> > -- > Hannes Kaufmann | Vienna University of Technology> Researcher | Interactive Media Systems Group> T +43 1 58801-18860 | F +43 1 58801-18898> kaufmann @ ims.tuwien.ac.atFrom nfarnsworth at web.de Tue Mar 2 14:28:43 2004From: nfarnsworth at web.de (nfarnsworth@web.de)Date: Tue Mar 2 08:30:30 2004Subject: [Acis-alliance] set an ACIS- TRANSFORM with Matrix InformationMessage-ID: <200403021328.i22DShQ20437@mailgate5.cinetic.de>An HTML attachment was scrubbed...URL: http://lists.cs.columbia.edu/pipermail/acis-alliance/attachments/20040302/c5c95a16/attachment.htmFrom nfarnsworth at web.de Tue Mar 2 15:06:39 2004From: nfarnsworth at web.de (nfarnsworth@web.de)Date: Tue Mar 2 09:06:51 2004Subject: [Acis-alliance] set an ACIS- TRANSFORM with Matrix InformationMessage-ID: <200403021406.i22E6dQ16263@mailgate5.cinetic.de>Hello,I want to set an ACIS-TRANSFORM- Object with values. I have to set each value of the matrix which belongs to the TRANSFORM Object. For example I mine TRANSFORM::setMatrix(SPAmatrix mat) or TRANSFORM::setValues(double a11,..,double a44). To serve my purpose I can not use the api functions rotate_transf and translate_transf and combine this tranforms.Is there a posibility to do this?Thanks for your support.Niklas______________________________________________________________________________Extra-Konto: 2,50 %* Zinsen p. a. ab dem ersten Euro! Nur hier mit 25Euro-Tankgutschein & ExtraPr?mie! https://extrakonto.web.de/?mc=021110From alames at sandia.gov Tue Mar 2 08:27:41 2004From: alames at sandia.gov (Ames, Arlo)Date: Tue Mar 2 10:28:14 2004Subject: [Acis-alliance] create complex BODY\Message-ID: <03781128C7B74B4DBC27C55859C9D7381139478F@es06snlnt.sandia.gov>Try calling api_check on various ENTITYs as you create them. It's your bestbet to figure out what's going on, and is my first choice as far as generaltools for getting something working.-----Original Message-----From: nil.wehr@softwehr.net [mailto:nil.wehr@softwehr.net]Sent: Monday, March 01, 2004 5:50 PMTo: Acis-alliance@cs.columbia.eduSubject: Re: [Acis-alliance] create complex BODY\Hello,thank zou for the information.I recognisze that the main problem I have is:I use the example of the ACIS documentation (api_sweep_with_options) and theprevious defined BODY* - Pointer keeps empty :-(I create edges from SPAposition entities, create coedges from it, connectthe coedges by setting next and prev.This coedges I use to build a loop, which is used to create a FACE.This FACE I want to use as the profile for the sweep-function - it doesnt'twork (till now).maybe anybody can show or tell my mistakehere's a part of the algorithm:void GEOLever::createGeometry(){ /* lever vertices position (z always -m_dDepth/2) for basic face 1-------------2 / \ 6 3 \ / 5-------------4 */ // set vertices SPAposition v_StartPtLine1(-m_dLength/2, m_dWidth/2, -m_dDepth/2); SPAposition v_StartPtArc1(m_dLength/2, m_dWidth/2, -m_dDepth/2); SPAposition v_MiddlePtArc1((m_dLength/2)+(m_dWidth/2), 0.0,-m_dDepth/2); SPAposition v_StartPtLine2(m_dLength/2, -m_dWidth/2, -m_dDepth/2); SPAposition v_StartPtArc2(-m_dLength/2, -m_dWidth/2, -m_dDepth/2); SPAposition v_MiddlePtArc2(-(m_dLength/2)-(m_dWidth/2), 0.0,-m_dDepth/2); // create edges from vertices EDGE* line1; EDGE* line2; EDGE* bogen1; EDGE* bogen2; outcome oc_line1 = api_curve_line(v_StartPtLine1, v_StartPtArc1, line1); outcome oc_line2 = api_curve_line(v_StartPtLine2, v_StartPtArc2, line2); outcome oc_bogen1 = api_curve_arc_3pt(v_StartPtArc1, v_MiddlePtArc1,v_StartPtLine2, FALSE, bogen1); outcome oc_bogen2 = api_curve_arc_3pt(v_StartPtArc2, v_MiddlePtArc2,v_StartPtLine1, FALSE, bogen2); // create coedges from edges COEDGE* myCoEdge1 = ACIS_NEW COEDGE; myCoEdge1->set_edge(line1); COEDGE* myCoEdge2 = ACIS_NEW COEDGE; myCoEdge2->set_edge(bogen1); COEDGE* myCoEdge3 = ACIS_NEW COEDGE; myCoEdge2->set_edge(line2); COEDGE* myCoEdge4 = ACIS_NEW COEDGE; myCoEdge2->set_edge(bogen2); // buily chain of coedges by setting next and previous myCoEdge1->set_next_no_rev(myCoEdge2); myCoEdge2->set_next_no_rev(myCoEdge3); myCoEdge3->set_next_no_rev(myCoEdge4); myCoEdge4->set_next_no_rev(myCoEdge1); myCoEdge1->set_previous_no_rev(myCoEdge4); myCoEdge2->set_previous_no_rev(myCoEdge1); myCoEdge3->set_previous_no_rev(myCoEdge2); myCoEdge4->set_previous_no_rev(myCoEdge3); LOOP* lowerLoop = ACIS_NEW LOOP(); lowerLoop->set_start(myCoEdge1); FACE* lowerFace = ACIS_NEW FACE(); lowerFace->set_loop(lowerLoop); m_pAcisShape = NULL; sweep_options* swOpt = ACIS_NEW sweep_options();// swOpt->set_close_to_axis(TRUE); m_pAcisShape = NULL; SPAvector path_dir(0.0,1.0,0.0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -