From native-oberon@inf.ethz.ch Mon Feb 18 04:40:02 2002 Received: from core.inf.ethz.ch (root@core.inf.ethz.ch [129.132.178.196]) by lillian-ics.inf.ethz.ch (8.9.3/8.9.3) with ESMTP id EAA23310; Mon, 18 Feb 2002 04:40:02 +0100 (MET) Received: from (server@localhost [127.0.0.1]) by core.inf.ethz.ch (8.9.3/8.9.3) with SMTP id EAA03380; Mon, 18 Feb 2002 04:39:58 +0100 (MET) Date: Mon, 18 Feb 2002 04:39:58 +0100 (MET) Message-Id: Errors-To: muller@inf.ethz.ch Reply-To: native-oberon@inf.ethz.ch Originator: native-oberon@inf.ethz.ch Sender: native-oberon@inf.ethz.ch Precedence: bulk From: "Peter Easthope" To: Multiple recipients of list Subject: Vinci X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas X-Comment: Oberon Beta-Testers Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=ISO-8859-1 MIME-Version: 1.0 Erich Oswald & others, For years I've wondered about the possibility of creating a technical drawing by writing a text in a graphical description language rather than by editing with a CAD application. The question is analogous to that of creating a document with TeX vs. creating the document with a WYSIWYG editor. Vinci has provided an opportunity to test the idea. Conclusion: the approach can be effective. Thanks Erich. In case anyone is interested a prototype is in this directory. http://www.pathology.ubc.ca/pics/ Open Manifold.Vinci or MANIFOLD.VINCI . Assuming you have a working Vinci interpreter, mark the Vinci viewer with * and execute VinciDocs.Open * . Manifold.Vinci has no legend and the dimension function can not put the arrows outside the extension lines yet; nevertheless it demonstrates the idea. May I please offer a few comments. 1. Previously I asked about importing a DXF file into Leonardo. In light of work with Vinci, translations DXF->Vinci and Vinci->DXF seem more relevant. In case anyone ever implements these translations, please make them preserve comments. 2. Clipping provides a means to mask the area outside a circle and outside a rectangle. In one instance I want to mask the area inside a circle. I thought of drawing the segment without the mask and then erasing the segment inside the circle by clipping and drawing with a neutral color. This failed because "with color=colors.rgb(1, 1, 1) do stroke ..." did not erase. Also I tried defining clipping boundaries with both clockwise & counterclockwise orientations. In both cases the exterior of the boundary was masked. =8~| Can anyone tell me how to mask or erase the interior of a circle. 3. You will see that Manifold.Vinci applies scaling to allow specification of distances in 1/100 ths of an inch. (Apologies to readers who always use ISO units.) Initially I tried to work in inches and encountered the restriction that the Scheme interpreter requires the font size to be a whole number. Since I need annotation less than an inch high, resorted to a 1/100 inch environment. You will find the same problem if you aim to work in cm and want a font less than 1 cm tall. Is there any chance of relaxing this restriction? 4. Can anyone tell me of a rational approach to locating a drawing in a Laserjet image area? Thus far I've found nothing better than trial and error. Engineering drawings are often in landscape format. When the printer was configured to landscape, the right side of the drawing was cropped. Can anyone advise how to print a drawing properly in landscape format? 5. Now for an imaginative idea. Contemporary CADD applications primarily represent an object as 3 dimensional. The software creates 2 dimensional views according to interactive instructions of the user. Let's consider transforming this into the realm of Vinci. First, Vinci is designed to represent a 2-D image but we can imagine another language, Vinci3 for example, which is adapted to describing 3-D objects. Since a 3-D image will never appear directly on screen or paper, some features of Vinci are not necessary in Vinci3. Line width, for example, is not necessary in Vinci3. Given the languages Vinci3 and Vinci2 (or Vinci) we need a user defineable map which calculates a Vinci2 text from a given Vinci3 text. This calculation has 2 essential components: projection of the 3-D object into a 2-D surface and annotation of the 2-D image with dimensions, notes and legend. The user defineable map could be specified by another hypothetical language which might be called Draw. Schematically the whole arrangement is this. (View with a fixed pitch font such as Courier.) map defined by Draw text Vinci3 -------------------> Vinci2 text text The user would write a text in Vinci3 to define an object, mechanism or etc. and write a text in Draw to specify projections, notes and a legend. Finally the user would invoke an interpreter to parse the Vinci3 and Draw texts and to produce a Vinci2 text which could be interpreted to obtain the drawing. Another significant problem in industrial engineering is to produce code to control a machine tool so that a part can be produced. G is a language commonly used to specify tool selection, spindle speed and tool path. We can imagine a hypothetical language, say V3toG, which allows a user to specify a map from Vinci3 to G. This would be the schematic. map defined by V3toG text Vinci3 -------------------> G text text Have such methods ever been applied? General comments as well as replies to specific questions are welcome. Hopefully my comments are taken as constructive rather than critical. ETH is welcome to put Manifold.Vinci in a contributions library. Eventually it will have better dimensioning and a legend. Regards, Peter E.