📄 2003-january.txt
字号:
mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;}a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;}p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig {margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}span.StyleCourrierlectronique17 {mso-style-type:personal-compose; mso-style-noshow:yes; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-ascii-font-family:Arial; mso-hansi-font-family:Arial; mso-bidi-font-family:Arial; color:windowtext;}span.SpellE {mso-style-name:""; mso-spl-e:yes;}span.GramE {mso-style-name:""; mso-gram-e:yes;}@page Section1 {size:595.3pt 841.9pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;}div.Section1 {page:Section1;}--></style><!--[if gte mso 10]><style> /* Style Definitions */=20 table.MsoNormalTable {mso-style-name:"Tableau Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";}</style><![endif]--></head><body lang=3DFR link=3Dblue vlink=3Dpurple =style=3D'tab-interval:35.4pt'><div class=3DSection1><p class=3DMsoNormal><font size=3D2 face=3DArial><span =style=3D'font-size:10.0pt;font-family:Arial'>Hello, <o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span =style=3D'font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>I’m writing anapplication with ACIS 7.0, HOOPS, MFC and I need to do non regular =unions.<o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>Sometimes I get an =ACIS error“inconsistent edge-face relationships” during this =operation.<o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'><o:p> </o:p></span=></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>I check every body =implied inthis operation but all are good. <br>Perhaps it is due to some tolerance <span class=3DGramE>limits ?<brstyle=3D'mso-special-character:line-break'><![if !supportLineBreakNewLine]><br =style=3D'mso-special-character:line-break'><![endif]></span><o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>Does anyone could tell =me howI can better understand where is my <span =class=3DGramE>problem</span><br>(<span class=3DGramE>which</span> information to display) or a mean to =removethis error.<o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>Does tolerant =modelling is a <spanclass=3DGramE>way ?</span><o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'><o:p> </o:p></span=></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>Thank in =advance<o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'>Didier<o:p></o:p></span=></font></p><p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =style=3D'font-size:10.0pt;font-family:Arial;mso-ansi-language:EN-GB'><o:p> </o:p></span=></font></p><p class=3DMsoAutoSig><font size=3D1 face=3D"Arial Black"><span =lang=3DEN-GBstyle=3D'font-size:8.0pt;font-family:"Arial =Black";mso-ansi-language:EN-GB;mso-no-proof:yes'>_________________________________________<o:p></o:p></s=pan></font></p><p class=3DMsoAutoSig><font size=3D1 face=3D"Arial Black"><span =lang=3DEN-GBstyle=3D'font-size:8.0pt;font-family:"Arial =Black";mso-ansi-language:EN-GB;mso-no-proof:yes'>Didier Faucher <font color=3D"#999999"><span =style=3D'color:#999999'>-Docteur es Informatique<o:p></o:p></span></font></span></font></p><p class=3DMsoAutoSig><font size=3D1 color=3D"#666699" face=3D"Arial =Black"><spanlang=3DEN-GB style=3D'font-size:8.0pt;font-family:"Arial =Black";color:#666699;mso-ansi-language:EN-GB;mso-no-proof:yes'>Lab</span></font><font =size=3D1color=3D"#666699" face=3D"Arial Black"><span =style=3D'font-size:8.0pt;font-family:"Arial Black";color:#666699;mso-no-proof:yes'>oratoire CERMA, UMR CNRS =1563<br>Ecole d'Architecture de Nantes<o:p></o:p></span></font></p><p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p></div></body></html>------=_NextPart_000_0001_01C2C2D7.58E58830--From wang@cae.uwm.edu Thu Jan 23 14:30:16 2003From: wang@cae.uwm.edu (Eric Wang)Date: Thu, 23 Jan 2003 23:30:16 +0900Subject: [Acis-alliance] inconsistent edge-face relationshipsReferences: <000001c2c2ce$f7212030$df3831c1@SIMULATEAM>Message-ID: <004a01c2c2eb$f31b4930$883afccb@ewang2>From: Faucher > I'm writing an application with ACIS 7.0, HOOPS, MFC> and I need to do non regular unions. Sometimes I get an> ACIS error "inconsistent edge-face relationships" during> this operation. This error usually indicates that your face senses are not consistent. For example, imagine that you take a cube, copy 1 face, remove it, negate it (to flip its sense from "inward" to "outward"), and then stitch this flipped face back to the 5-sided hollow shell. Your result would be a 6-sided shell, of which 5 faces say "this side is the inside", and the 6th face says, "no, this side is the outside". Such a shell does not consistently bound 3D space, so it's not a valid solid. When you try to apply an ACIS Boolean operation with this object, it usually fails with the "inconsistent edge-face relationships" (IEFR) error. (Oddly, such a shell can pass the other ACIS topology checks, so passing those checks doesn't guarantee validity.) In my experience, I usually get IEFR when I have to (a) create a moderately complex "generalized cutting plane", consisting of 2-4 sheet bodies meeting at angles, to define a U-shaped or similar 2.5D sheet, and then (b) use that to cut another body. Some care is required to properly align all of those sheets' face senses so that they all agree which side is the "outside". If I get an IEFR, I immediately suspect that I have flipped one of the sheets' x and y axes, causing its Z axis to be opposite the other sheets' Z axes. Flipping the bad sheet's x and y always eliminates the IEFR. In the old ACIS 4.0 OpenGL display context, you could sometimes visually see a "flipped face" in a body, because it would be drawn in the "seen from the inside" color, while all adjacent faces are drawn in the normal "from the outside" color. I don't know how HOOPS displays a shell that contains a flipped face.> [Can] anyone [tell] me how I can better understand where is> my problem (which information to display) ... A general trick is to (1) catch the IEFR during the Boolean operation, and (2) dump all face normals of both bodies. This generally requires some code infrastructure to handle both tasks cleanly. 1. Write a simple macro that checks outcome rc for not-ok. If not ok, have it call a dump function. Write this dump function to (a) print useful data, like the file, line number, error code, error message string, then (b) ASSERT(0), so that your debugger stops as soon as you hit any error. Then adopt a habit in every function that calls any ACIS API functions that (a) you declare a local var, outcome rc(0), and (b) you call your macro after every ACIS API call. This is a general strategy to catch every ACIS error, as soon as it occurs, so that you can immediately examine the stack frame, all local vars, etc, and jump around by using the "Set next statement" debugger command. (It is usually a poor strategy to just bail out back to the top level after an error, because you lose any ability to explore the stack frame in which the error occurred.) The old ACIS MFC CheckOutcome() function was similar in output to my macros, but it didn't ASSERT, so it didn't let you debug the error. 2. To dump all face normals means you output them in any readable format. The simplest output is to write them as text strings. So you write (a) a function that takes a BODY, gets all of its FACEs, and prints each one's normal vector. Then, at the point of your Boolean operation, if you ever see (using #1) that it causes an IEFR, you can add some local error handling to treat IEFR specially, e.g. rc = api_boolean(B1P, B2P, ...); if (!rc.ok()) if (rc.error_number() == IEFR) { MyDumpFaces(B1P); MyDumpFaces(B2P); } Recompile, repeat your test input to recreate the bug, and when it occurs, it will call your dump function. Then it's up to you to determine which face is bad, trace back to where it gets created, and make it consistent. For fancier output, you could draw tiny arrows that graphically show all of the face normals. I used to do that in ACIS 4.0, but not since then. In HOOPS, you could use HOOPS functions to draw HOOPS arrows, since ACIS doesn't have the concept of an "arrow ENTITY". (Alternatively, you could model your arrows as simple ACIS cylinders of tiny radius, without heads, and just add them to the model and send them all to HOOPS.) 3. Finally, it is often useful to be able to interactively view your model in the middle of an ACIS error. For example, if I get an IEFR, I often want to rotate, pan, and zoom to examine the bad BODY. Obviously, I can't do any of that while the debugger has halted the program. Yet I can't just continue, because the current stack frame is erroneous, by assumption, and I don't want to lose my place by returning out of it. (Also, HOOPS will not refresh the window while the program is suspended in the debugger.) My solution was to define a simple function that invokes an interactive graphical operation, like zoom. With some work, I got it to run until it gets a middle mouse click. (This would be much easier to do in HOOPS now.) Then by making a 1-line function call, I temporarily restore control to the MFC "top level", and the program resumes running normally, allowing all interactive commands like pan and orbit, with window updates, until I end my pause command by clicking. Then control returns into the function I'm debugging. And by using "Set next statement", I can jump back to this function call and run it several times, if necessary. So my error handling code might look like: #include "MyTools.h" // MousePause() rc = api_something_or_other(BP); if (rc.error_number() == SOME_ERROR_I_WANT) MousePause(); else apiQuickKick // a quick kick is like a punt--Eric WangCAD Lab, Sungkyunkwan UniversityFrom minich@sciences.univ-metz.fr Wed Jan 22 17:16:57 2003From: minich@sciences.univ-metz.fr (Christian Minich)Date: Wed, 22 Jan 2003 18:16:57 +0100Subject: [Acis-alliance] ACIS / C++ Builder / #defineMessage-ID: <5.0.2.1.2.20030122180649.02774200@bridoux.sciences.univ-metz.fr>Hello everybody,I am using C++ Builder V6. For my first ACIS-R10-based program, I just tried to start and stop the modeller.I get the following compiler error (not a linker error) :FILE mmgr.hxx (line 439): E2238 Multiple declaration for 'ACIS_OBJECT::operator delete(void *,void *)'I included#include "kernel/acis.hxx"#include "kernel/kernapi/api/api.hxx"#include "kernel/kernapi/api/kernapi.hxx"and I defined the following symbols :ACIS_DLL;MMGR_ENABLED;NT;STRICTin the "Project / Options / Directories-Conditions / definition" edit window.Can you help me overcoming this error. May be there are other symbols I should define ?Generally speaking, all advice about using ACIS with Builder V6 is welcome.Thanks for any helpChristianChristian MinichD閜artement informatiqueUFR MIMUniversit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -