Circular arc challenge

Hi,
This is an amazing motion control challnge that I'm putting forward to u guys. I am currently using NI PCI7344 motion controller for 3 axis + spindle motion control system. Before this I have used Fanuc and Fagor CNC controllers which understand G-codes and M-codes. Now, in my application, I want to do simple two axis circular interpolation to draw an arc. LabVIEW provides a VI for drawing an arc. We need to provide the "Start angle", "Travel angle" and "Radius" for drawing an arc using that VI. I'm trying to develop a VI, where I feed the "target position", "radius" and "Clock Wise/Anticlock Wise" to draw an arc. The fanuc and fagor controllers provide this facility. Lets see how NI can compete with them. My application involves parsing and transalation of G-codes and M-codes. If this is done, then using my application, a user can feed the same G-codes and M-codes that are understood by Fanuc and Fagor CNC controllers. This will help eliminate CNC and make people buy PC Based controllers. In this way engineers all over the world, who are conversant with G-codes and M-codes can easily shift towards PC Based control which is much easy to use and upgrade. Hence its a challenge for all motion control guys in NI to try implement this one and proide me with a VI.  
Regards,
Giridhar Rajan
Automation Engineer,
Cruiser Controls
Mumbai, India

Hi Giridhar,
It sounds like you have a great understanding of how our arc move VI's work.  Using LabVIEW it is definitely possible to write and implement code that would translate target position, radius, and direction parameters to the start angle, travel angle, and radius parameters need to perform arc moves using our functions.  We at National Instruments provide LabVIEW as a flexible tool that can be used to write programs that can take user input and convert that data to parameters that can be used by our hardware.  We in the Applications Engineering department are here to support the software, functions, and hardware that we provide, but we can't write custom programs for our customers.  With your understanding of how our motion VI's work, it should be a simple matter of adding extra LabVIEW code to your VI to translate the parameters.  Good luck and have a great day.
Michael Chaney
Systems Engineer - TestStand
National Instruments

Similar Messages

  • Discussion on simple / complex machine tools applications

    Hi all,
    This is the place for all machine tool guys in the industry. Kindly feel free to tell us abt. your machine tools applications, simple or complex, general or special purpose. Also don't hesitate to ask any questions abt. machine automation using LabVIEW and NI motion control products.
    Best of Luck.
    Regards,
    Giridhar Rajan
    Automation Engineer
    Cruiser Controls
    Mumbai, India

    This is to remind everyone that the Circular Arc Challenge is still open. Here's the question again below. Check it out. Lets see who solves it.
    Hi,
    This is an amazing motion control challnge that I'm putting forward to u guys. I am currently using NI PCI7344 motion controller for 3 axis + spindle motion control system. Before this I have used Fanuc and Fagor CNC controllers which understand G-codes and M-codes. Now, in my application, I want to do simple two axis circular interpolation to draw an arc. LabVIEW provides a VI for drawing an arc. We need to provide the "Start angle", "Travel angle" and "Radius" for drawing an arc using that VI. I'm trying to develop a VI, where I feed the "target position", "radius" and "Clock Wise/Anticlock Wise" to draw an arc. The fanuc and fagor controllers provide this facility. Lets see how NI can compete with them. My application involves parsing and transalation of G-codes and M-codes. If this is done, then using my application, a user can feed the same G-codes and M-codes that are understood by Fanuc and Fagor CNC controllers. This will help eliminate CNC and make people buy PC Based controllers. In this way engineers all over the world, who are conversant with G-codes and M-codes can easily shift towards PC Based control which is much easy to use and upgrade. Hence its a challenge for all motion control guys in the industry to try implement this one and provide me with a VI.  
    Regards,
    Giridhar Rajan
    Automation Engineer,
    Cruiser Controls
    Mumbai, India

  • Concept of circular interpolation

    Hi,
    I'm interested in knowing the concepts / formulas / algorithms invovled in circular interpolation. Suppose I give the position where the I have to reach in a 2-D plane and the radius of the circular arc, then the controller feeds the X-axis drive with a sequence of position commands which follow a mathematical function and at the same time, the controller also feeds another set of position commands to Y-axis, which follow another mathematical function. Also the velocities of X-axis and Y-axis follow two seperate mathematical functions. The combination of all these mathematical functions executed simultanously results in an interpolation. This is my understanding of circular interpolation. I am interested in knowing these four functions for X position, Y-position, X-Velocity and Y-Velocity. Kindly help me out with this. Kindly let me know if my understanding of the concept is wrong and what may be right approach to this problem. I do not want to use the arc vi provided by NI as it takes 'start angle', 'travel angle' and 'radius', but I want to feed 'start position', 'final position' and 'radius' to achieve th arc.
    Regards,
    Giridhar Rajan
    Automation Engineer
    Cruiser Controls
    Mumbai, India

    Hello,
    The National Instruments supported method for generating a circular arc move is to use Load Circular Arc.flx.  However, it is perfectly possible to generate your own interpolation algorithm.  I would suggest that you take a look at the following link for a starting point in generating move data:
    Command Generation
    http://www.control.com/control_com/Papers/CommandGeneration_html
    This is a third-party interpolation algorithm, but it may be helpful in developing your own method.
    Regards,
    Scott R.
    Applications Engineer
    National Instruments

  • Export Geometry to WKT or WKB but include ARCs too - Do not densify

    Dear all,
    I have been having some issues when exporting the spatial data to WKT or WKB. I can get the WKT without any problems but the issue is that all ARCs are not exported as ARCs but rather as line segments. Looks like during the export process there is some Densify process that gets run.
    Can someone please help me if there is a way to export the ARCs as ARCs and do not densify.
    WKT has support for Circular Arcs so there should be no problems.
    And the second problem was that when i export to WKB this data can not be read by SQL Server or any other tool.
    Any advice much apprciated.
    Dan

    Dan,
    Without actual examples we cannot help you solve you problem.
    Here are some tests I ran in Oracle and SQL Server.
    Oracle Export
    select a.name, a.geom.get_wkt() as text
      from (select 'Line segment' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,1), sdo_ordinate_array (10,10, 20,10)) as geom from dual union all
            select 'Line string' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,1), sdo_ordinate_array (10,25, 20,30, 25,25, 30,30)) as geom from dual union all
            select 'Arc segment' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (10,15, 15,20, 20,15)) as geom from dual union all
            select 'Arc string' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (10,35, 15,40, 20,35, 25,30, 30,35)) as geom from dual union all
            select 'Closed arc string' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (15,65, 10,68, 15,70, 20,68, 15,65)) as geom from dual union all
            select 'Compound line string' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,4,3, 1,2,1, 3,2,2, 7,2,1), sdo_ordinate_array (10,45, 20,45, 23,48, 20,51, 10,51)) as geom from dual union all
            select 'Closed mixed line' as name,sdo_geometry (2002, null, null, sdo_elem_info_array (1,4,2, 1,2,1, 7,2,2), sdo_ordinate_array (10,78, 10,75, 20,75, 20,78, 15,80, 10,78)) as geom from dual
           ) a;
    -- results
    NAME                 TEXT
    Line segment         LINESTRING (10.0 10.0, 20.0 10.0)
    Line string          LINESTRING (10.0 25.0, 20.0 30.0, 25.0 25.0, 30.0 30.0)
    Arc segment          CIRCULARSTRING (10.0 15.0, 15.0 20.0, 20.0 15.0)
    Arc string           CIRCULARSTRING (10.0 35.0, 15.0 40.0, 20.0 35.0, 25.0 30.0, 30.0 35.0)
    Closed arc string    CIRCULARSTRING (15.0 65.0, 10.0 68.0, 15.0 70.0, 20.0 68.0, 15.0 65.0)
    Compound line string COMPOUNDCURVE ((10.0 45.0, 20.0 45.0), CIRCULARSTRING (20.0 45.0, 23.0 48.0, 20.0 51.0), (20.0 51.0, 10.0 51.0))
    Closed mixed line    COMPOUNDCURVE ((10.0 78.0, 10.0 75.0, 20.0 75.0, 20.0 78.0), CIRCULARSTRING (20.0 78.0, 15.0 80.0, 10.0 78.0))
    7 rows selectedNo densification there.
    SQL Server Denali Import
    Now, take the above WKT and import into SQL Server.
    select geometry::STGeomFromText('LINESTRING (10.0 10.0, 20.0 10.0)',0).STAsText() as text union all
    select geometry::STGeomFromText('LINESTRING (10.0 25.0, 20.0 30.0, 25.0 25.0, 30.0 30.0)',0).STAsText() as text union all
    select geometry::STGeomFromText('CIRCULARSTRING (10.0 15.0, 15.0 20.0, 20.0 15.0)',0).STAsText() as text union all
    select geometry::STGeomFromText('CIRCULARSTRING (10.0 35.0, 15.0 40.0, 20.0 35.0, 25.0 30.0, 30.0 35.0)',0).STAsText() as text union all
    select geometry::STGeomFromText('CIRCULARSTRING (15.0 65.0, 10.0 68.0, 15.0 70.0, 20.0 68.0, 15.0 65.0)',0).STAsText() as text union all
    select geometry::STGeomFromText('COMPOUNDCURVE ((10.0 45.0, 20.0 45.0), CIRCULARSTRING (20.0 45.0, 23.0 48.0, 20.0 51.0), (20.0 51.0, 10.0 51.0))',0).STAsText() as text union all
    select geometry::STGeomFromText('COMPOUNDCURVE ((10.0 78.0, 10.0 75.0, 20.0 75.0, 20.0 78.0), CIRCULARSTRING (20.0 78.0, 15.0 80.0, 10.0 78.0))',0).STAsText() as text ;
    -- results
    LINESTRING (10 10, 20 10)
    LINESTRING (10 25, 20 30, 25 25, 30 30)
    CIRCULARSTRING (10 15, 15 20, 20 15)
    CIRCULARSTRING (10 35, 15 40, 20 35, 25 30, 30 35)
    CIRCULARSTRING (15 65, 10 68, 15 70, 20 68, 15 65)
    COMPOUNDCURVE ((10 45, 20 45), CIRCULARSTRING (20 45, 23 48, 20 51), (20 51, 10 51))
    COMPOUNDCURVE ((10 78, 10 75, 20 75, 20 78), CIRCULARSTRING (20 78, 15 80, 10 78))Can you provide us with similar examples where the process fails?
    And the second problem was that when i export to WKB this data can not be read by SQL Server or any other tool.Let's try and solve the first problem before the second. Are Oracle and SQL Server both on the same hardware?
    regards
    Simon

  • Circular interpolation in NI motion controllers

    Hi all,
    This is a question for all the experienced motion control programmers using NI's motion controllers with LabVIEW. This is about circular interpolation. NI provides a VI for making a circular arc. Now, The issue is that this VI takes in angles instead of co-ordinates. For any user who wishes to give a command to a two axis system, visualizing something in terms of angles is very difficult. Also having an interpolation command in terms of angles is unconventional for a motion controller. It should always and always be in terms of co-ordinates. Why has NI gone for this unconventional approach for such a simple feature and how can I suggest this necessary improvement to NI.
    Regards,
    Giridhar Rajan
    Automation Engineer, Design
    Cruiser Controls
    Mumbai, India

    Giridhar,
    As you noted there are numerous ways to calculate arc moves and in the development of our algorithms NI chose to use angular notation to characterize a circular arc move.  I would agree with you completely that it would be very useful to have a function that would take coordinates instead of angles to calculate a circular arc move.  National Instruments is always interested in receiving feedback on our products and welcome them as part of our dedication to continual improvement.  I will file this product suggestion through our channels here and would request that you also submit a product suggestion.  You can do so by going to ni.com and clicking on the gray "Contact NI" button and filling out the product feedback form.   Thank you for your time and for this valuable suggestion.
    Regards,
    S. Arves S.
    National Instruments
    Applications Engineer

  • Geodetic Arc

    I have a polygon made up of lines and arcs which I need to store as a geodetic geometry. The lines will become great circle arcs, which is exactly what I want. The arcs are giving me problems.
    For the arcs I have the arc center, the start and end coordinates (lat, long) and the surface radius. I plan to derive the coordinates of a third point on the arc surface and then use sdo_arc_densify to create a polyline approximation of the arc and make that a geodetic geometry.
    I have three questions: Does this seem a sensible approach? How do I derive that third point? Will this approach work for rhumb lines?

    Hi,
    The arc densify routine does not densify geodetic circular arcs or circles, which are by definition invalid in geodetic space. You can project the data using a coordinate system transformation routine, densify, and then reproject back to wgs 84. Also, the "finest" tolerance supported in Oracle for geodetic data is 0.05 meters (5 centimers).
    If you are using Oracle 10g, you might want to check out sdo_util.circle_polygon, where you specify:
    CENTER_LONGITUDE
    CENTER_LATITUDE
    RADIUS
    ARC_TOLERANCE
    and we return the approximate circle in WGS-84 (in fact, this function only returns data in wgs-84).
    I hope this helps.

  • Draw an arc with three point

    A . .C
    B.
    Hi all, i try to draw an arc A-B-C but i only has these three point, can anybody tell me how to do this and if these three point is almost colinear can i do this,
    thanks!

    I would think the Parabolic version would be able to
    make a Circular arc as well as a Parabolic one.By a parabolic arc in this case I meant the arc of a parabola whose axis is the line bisector of AC and that passes through the points A, B, and C. You will get infinitely many parabolic arcs by choosing the axis differently. Generally a circular arc and a parabolic arc through three points are different.
    But even though there are infinitely many arcs that pass through three points, it seems quite probable that the OP wants a circular one....

  • Can both Locator & spatial store three point curves or arcs?

    1) can both Oracle Locator and Oracle Spatial store three pint curves or arcs?
    2) Can both Oracle Locator and Oracle Spatial receive input of bearing / distance to creat a line segment?

    hmmm, i got this exact question in mail today. someone is double-dipping!
    Both Locator and Spatial allow storage of three point circular arcs. Circular arcs are only supported in non-geodetic coordinate systems.
    In Oracle 10g Release 2 both Locator and Spatial include a function called sdo_util.point_at_bearing. If you enter a point, a distance, and a bearing (in radians) we return the end point. With the end point and the original input point a line segment can be contructed very easily.

  • ITunes Library file content / format

    I am using the iTunes library file to process song titles for a label program, and I have two questions about these files:
    1) There are two library files on my disk, Library.xml, and iTunes Music Library.xml. When double-clicked, the latter opens with Firefox, and the former opens in TextEdit. Library.xml is the file I use, which I parse with Perl and generate input for a PostScript label program. The question here, what is the purpose of these two files; i.e., how are they used by iTunes?
    2) I need to extract the Total Time and the Size parameters, which are given in (very large!) integer format. I have found that Size is nearly a constant multiple of Time, so apparently Time is redundant. Also, I can't make any sense of these numbers, except to use the resulting ratio for one and then to apply that ratio to all the others. When I do this, I get nearly accurate results, but they are always off by 3 to 5 seconds. As for the Size, I tried to make sense of the large integer in terms of sampling rate and size 44.1/16-bit), but without success. So, if anyone has the secret to these parameters, I would appreciate knowing it! Thanks much in advance for any help on this.
    PS: I will post some specifics here if needed. For example, Total Time 182437 shows up in iTunes as 3:02 (182 seconds). The ratio here is 1,002.4010989011, which, when applied to another title with a Total Time of 222477 gives 221.9 seconds, or 3:42; this item shows up correctly in iTunes, but not all do when I use the same ratio.

    Oops! I forgot that. My hunch was correct, though. Unix reports exactly the same sizes as the iTunes file. My error was not dividing by 1028. (I thought the finder was the culprit!) Thanks for all the help.
    By the way, why are there two .xml files for the library? The Library.xml file is the one I am using, because the structure is pretty obvious in a text editor.
    For your information, I belong to the Illini Folk Dance Society at the University of Illinois, Urbana-Champaign Illinois. We have some 200 titles on 78 rpm records, already digitized, and approximately 600 or so on 45 rpm, which I am now in the process of recording. After that, there are many LP recordings to do (our total collection consists of approximately 3000 titles), although they can keep for a while. After lots of experimenting, I decided that the quality of the 78s and 45s merited the 44.1/16-bit recording levels, and that is working out nicely, and it keeps the files to a reasonable size. I started out with Garage Band (all the 78s were done that way), but got fed up with that pretty quickly, especially the tight link to iTunes, so when Audacity came along, I started using it, and am very happy with it. We have one 250 gig hard drive, and I plan to add another. Also, I plan to put everything on CDs, which is why the present project. I wrote a PostScript program to print the titles on the labels in circular arcs, and am writing a Perl script to parse out the titles and sizes, grouping things in sets that will fit on one CD. If you are interested in the PostScript program, I will gladly send it to you. The Perl script is fairly trivial.
    Well, I just passed my 75th birthday, so I better get cracking! Cheers.
    Ed
    [email protected]

  • A bizarre ORA-13349 case in 9i

    Hi all,
    We have just migrated from 8.17 to 9.2 and encountered a rather strange validation error on a particular polygon geometry.
    Subject Geometry:
    Parcel polygon composed of 4 polylines and 3 arcs.
    Validation SQL:
    SELECT SDO_GEOM.VALIDATE_GEOMETRY(SPATIALAREA, mtolerance) FROM PARCEL835105;
    Error:
    ORA-13349 (polygon boundary crosses itself) ONLY occurs when mtolerance is between 0.05 and 0.009. The geometry is considered fine when mtolerance is above 0.06 or below 0.008
    Observation:
    We examined the polygon using GeoMedia tool by traversing its vertices and could not find any apparent error.
    If you want to try the geometry you may create the following files by cutting-&-pasting the content underneath each file heading. Then run at the system prompt (DOS) IMPORT.BAT usr/pass@connectionstring.
    Bo Guo
    Maricopa County Assessor's Office
    Phoenix, AZ
    602-506-0930
    **************** PARCEL835105.DAT ********
    1525|2003| |pt||||1|1005|7|1|2|1|5|2|2|9|2|2|13|2|1|15|2|2|19|2|1|21|2|1|;658946.23100000003|870467.35999999999|658884.96200000006|870464.85400000005|658829.65517262102|870462.59209484397|658778.28773826023|870459.781195155|658727.01800000004|870455.54700000002|658692.40116387932|870451.87949395797|658657.85900000005|870447.56499999994|658657.79700328002|870442.51112167106|658743.64884854865|870452.05702360102|658829.85199999996|870457.59600000002|658941.16799999995|870462.14899999998|658946.23100000003|870467.35999999999|:||||
    **************** PARCEL835105.PRE ********
    CREATE TABLE PARCEL835105 (
    ID NUMBER(10,0),
    SPATIALAREA MDSYS.SDO_GEOMETRY,
    APN VARCHAR2(12),
    FLOOR NUMBER(10,0),
    DGN VARCHAR2(12),
    SOURCE_CD VARCHAR2(2), primary key (ID) );
    Exit;
    **************** PARCEL835105.POS ********
    insert into USER_SDO_GEOM_METADATA values('PARCEL835105', 'SPATIALAREA' ,MDSYS.SDO_DIM_ARRAY( MDSYS.SDO_DIM_ELEMENT('X', 232850, 993600, 0.03), MDSYS.SDO_DIM_ELEMENT('Y', 526000, 1134000, 0.03)), NULL );
    Commit;
    Exit;
    **************** PARCEL835105.CTL ********
    LOAD DATA
    INFILE 'PARCEL835105.Dat'
    APPEND INTO TABLE PARCEL835105
    FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    ID,
    SPATIALAREA COLUMN OBJECT
    ( sdo_gtype INTEGER EXTERNAL,
    sdo_srid INTEGER EXTERNAL,
    isnull FILLER CHAR,
    SDO_POINT COLUMN OBJECT NULLIF SPATIALAREA.isnull="pt"
    ( X INTEGER EXTERNAL,
    Y INTEGER EXTERNAL,
    Z INTEGER EXTERNAL),
    SDO_ELEM_INFO VARRAY terminated by ';'
    (SDO_ORDINATES char(38)),
    SDO_ORDINATES VARRAY terminated by ':'
    (SDO_ORDINATES char(38))) ,
    APN,
    FLOOR,
    DGN,
    SOURCE_CD )
    **************** IMPORT.BAT********
    @echo off
    REM Copyright (c) 1999-2002 by Intergraph Corporation. All Rights Reserved.
    Rem Use this script to create tables and metadata with PL/SQL and populate tables with SQL*Loader.
    if "%1"=="" goto usage
    SQLPLUS %1 @"PARCEL835105.PRE"
    SQLLDR %1 CONTROL= PARCEL835105
    SQLPLUS %1 @"PARCEL835105.POS"
    goto end
    : usage
    @echo Syntax of the command is: "Import <username>/<password>@<ConnectString>"
    echo Examples:
    echo Import scott/tiger@db_orcl
    : end
    pause

    Doc ID: Note:1020247.102,Subject: Validating Geometry Returns ORA-13349 or ORA-13356 [published @ metalink]
    Problem Description:
    ====================
    Validating geometries for polygons in the Spatial Data Cartridge, may give: ORA-13349: polygon boundary crosses itself or ORA-13356 adjacent points in a geometry are redundant However, examining the polygon data shows that there are no crossing lines and no redundant points. This error may also be raised by SDO_BUFFER, which will appear to create an invalid polygon. Solution
    Description:
    =====================
    This is caused by the SDO_TOLERANCE being set to an inappropriate value for the data in the layer. The tolerance will be taken into account when validating whether two points are the same or if two lines cross.
    Explanation:
    ============
    SDO_VALIDATE_GEOMETRY generates an ORA-13349 when it detects that the geometric properties of the data are incorrect, and that the shape crosses itself. The reason for the errors is that the buffer function sometimes needs to generate very small shapes, typically circular arcs. There are situations where the ordinates generated have a precision higher than the SDO_TOLERANCE setting. Once rounded using the SDO_TOLERANCE setting, then it is possible that the shape appears to cross itself (ORA-13349). Setting the tolerance to 0.0 will remove the errors, since rounding will no longer happen. An simple example is if there are two points on the polygon: 2.60, 3.00 and 2.56, 3.00 with the tolerance set to .05 When rounded these will both appear to be 2.6, 3.00 and give the ORA-13356 error. Setting the tolerance to .005 would avoid this error. For SDO_BUFFER this error should not be reported from 8.1.6 onwards.

  • ORA-13033 ORA-06512 at 11.1.0.7

    I have a single shape that seems to cause ORA-13033 at 11.1.0.7 but not at 11.1.0.6. Wondering if I am missing something stupid, or if anyone else has seen this problem. I did a quick search of the posts, but didn't find anything. It could also be that spatial has a problem on the 11.1.0.7 server...
    Thanks
    --on 11.1.0.7
    SQL> drop index foo_spatial_index;
    Index dropped.
    SQL> drop table foo;
    Table dropped.
    SQL> delete from user_sdo_geom_metadata where table_name = 'FOO';
    1 row deleted.
    SQL>
    SQL> create table foo (shape sdo_geometry);
    Table created.
    SQL> insert into foo values (SDO_GEOMETRY(3002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 4, 1, 1, 2, 2), SDO_ORDINATE_ARRAY(484893.192, 1845442.68
    , 0, 484881.786, 1845444.7, .5, 484871.639, 1845450.28, 1)));
    1 row created.
    SQL> insert into user_sdo_geom_metadata values('FOO', 'SHAPE', SDO_DIM_ARRAY(SDO_DIM_ELEMENT(NULL, 484719.102, 484904.266, .0000005), SDO_DI
    M_ELEMENT(NULL, 1845366.11, 1845513.86, .0000005), SDO_DIM_ELEMENT(NULL, 0, 5368.70912, .0000005)), null );
    1 row created.
    SQL> create index foo_spatial_index on foo(shape) indextype is mdsys.spatial_index;
    create index foo_spatial_index on foo(shape) indextype is mdsys.spatial_index
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13249: internal error in Spatial index: [mdidxrbd]
    ORA-13249: Error in Spatial index: index build failed
    ORA-13249: Error in spatial index: [mdrcrtxfergm]
    ORA-13249: Error in spatial index: [mdpridxtxfergm]
    ORA-13200: internal error [ROWID:AAFV8VAAHAAAGUtAAA] in spatial indexing.
    ORA-13206: internal error [] while creating the spatial index
    ORA-13033: Invalid data in the SDO_ELEM_INFO_ARRAY in SDO_GEOMETRY object
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
    --on a different 11.1.0.6
    SQL> drop index foo_spatial_index;
    drop index foo_spatial_index
    ERROR at line 1:
    ORA-01418: specified index does not exist
    SQL> drop table foo;
    drop table foo
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> delete from user_sdo_geom_metadata where table_name = 'FOO';
    0 rows deleted.
    SQL>
    SQL> create table foo (shape sdo_geometry);
    Table created.
    SQL> insert into foo values (SDO_GEOMETRY(3002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 4, 1, 1, 2, 2), SDO_ORDINATE_ARRAY(484893.192, 1845442.68
    , 0, 484881.786, 1845444.7, .5, 484871.639, 1845450.28, 1)));
    1 row created.
    SQL> insert into user_sdo_geom_metadata values('FOO', 'SHAPE', SDO_DIM_ARRAY(SDO_DIM_ELEMENT(NULL, 484719.102, 484904.266, .0000005), SDO_DI
    M_ELEMENT(NULL, 1845366.11, 1845513.86, .0000005), SDO_DIM_ELEMENT(NULL, 0, 5368.70912, .0000005)), null );
    1 row created.
    SQL> create index foo_spatial_index on foo(shape) indextype is mdsys.spatial_index;
    Index created.

    There are a couple of things wrong with your geometry.
    The specs says that for compound geometries (sdo_etype = 4) the SDO_INTERPRETATION (in this case with sdo_etype = 4) gives the numeber of subelements. This must be bigger then 1:
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28400/sdo_objrelschema.htm#BGHDGCCE
    4
    n > 1
    Compound line string with some vertices connected by straight line segments and some by circular arcs. The value n in the Interpretation column specifies the number of contiguous subelements that make up the line string.
    The next n triplets in the SDO_ELEM_INFO array describe each of these subelements. The subelements can only be of SDO_ETYPE 2. The last point of a subelement is the first point of the next subelement, and must not be repeated.
    In your case you either have single line string which makes the first triplet incorrect or even unnecessary in the SDO_ELEM_INFO, or you are missing a third triplet in the SDO_ELEM_INFO.
    You should always validate your geometries first, if you do that also on your 11.1.0.6 version you will get:
    SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT
    54506 Point:0,Edge:2,
    ORA-54506: compound curve not supported for 3-D geometries
    Cause: The 3-D geometry contained one or more compound curves, which are not
    supported for 3-D geometries.
    Action: Remove all compound curves from the geometry.
    As you will see additionally compound curveare not supported in 3D geometries.
    IF it is not a compound (so with SDO_ELEM_INFO_ARRAY = (1,2,2), you will see that this geometry will validate.
    Looks like the validation might be incorporated now in the index creation in 11.1.0.7.
    Edited by: lucvanlinden on Mar 20, 2009 9:07 AM

  • What's better than Illustrator?

    I've been using Illustrator for many years and several versions.  My usage is nominal and occasional/once a week, and I don't get very sophisticated for my needs, so it has been OK so far. I do not do commercial work but know Ai is the "de-facto std".
    But I read this forum often and see many criticisms of Ai and I do have occasional issues with Illy with tools and UI....just not as easy or robust as it could/should be...cumbersome at times.
    I see JET and others here make great use of Illy but also criticize (justifiably) it for not being as good as other vector tools.
    I know there are competitors, Inkscape is free, others less costly than Illy; and seemingly better/easier/faster to use...at least for some things.
    So my question: What is better than Illustrator (I'm using CS5) and why? What can they do better than Ai?  Is it worth having a second program and learning (tho I suspect the learning curve should be easy as they do similar things but have different GUI).  Or replacing Illy with something?
    Pro's/Con's that would make one make the effort to try/use something else?  I don't even know what out there is better than Illy.  I've searched www and got a few hints but nothing very significant.
    Am I wasting my time looking?
    Your feedback welcomed to help me decide whether to explore/trial other programs.

    I see JET and others here...criticize (justifiably) it for not being as good as other vector tools.
    I can't speak for "and others", but since I'm the only one you mention by name:
    If you've already deemed the criticism justifiable, then you must already know what that criticism says. When I criticize Illustrator, I don't just say "Illustrator is crap" and leave it at that, unsupported. I'm careful to explain myself with facts pertinent to the context of the discussion. I actually own and know how to use the other programs to which I compare. I've often posted lists of comparitive features.
    I've always used my real name here and sign all my posts with my initials. So finding my comments is not difficult.
    I know there are competitors, Inkscape is free, others less costly than Illy; and seemingly better/easier/faster to use...at least for some things. So my question: What is better than Illustrator (I'm using CS5) and why? What can they do better than Ai?
    Didn't you just answer your own question? Other than the broadly general things you just mentioned, what program do you want to compare, and for doing what? Surely you're not asking someone to do an exhaustive feature-by-feature comparison between Illustrator and all similar programs in this one thread?
    All you've said about what you use Illustrator for is that your use is nominal, occasional, unsophisticated, and non-commerical. Mine isn't. Commerical graphics has been my livelihood for over 40 years. Vector-based illustration is both a speciality and a passion.
    I...knowAi is the "de-facto std"
    "Defacto standard" is self-fulfilling. It's effectively equivalent to saying "More people use Illustrator because more people use Illustrator."
    So what? More people ride Vespa scooters than KTM motorcycles. But which one would you call "professional quality"? You can use either one to pick up a gallon of orange juice at the corner store. But if you enter an enduro, the KTM will get the job done with alot less stress.
    The myth is that most software buyers choose the best. That's as naive as the faith that most voters do.
    Illustrator has been slothfully resting on its "defacto standard" haunches since the dark ages (AKA the 80s). "Defacto standard" be hanged.
    I do have occasional issues with Illy with tools and UI....just not as easy or robust as it could/should be...cumbersome at times.
    Okay. What issues? State something specific and users actually familiar with other programs can compare.
    This is the 21st century. There's really little new under the sun here. A 2D drawing program is just an interface pasted on top of mostly the same old geometric functionality. The competitive advantage goes to the offering that best (easy) and most fully (robust) empowers the user. The multiplication of easy and robust yields elegance. That's a term I've never applied to Illustrator. Illustrator is one of the oldest of the bunch, lounging under the sun for so long it's at risk of skin cancer. Yet it still fails to provide basic functionality users of other drawing programs have taken for granted for decades.
    Examples that may be germane to your casual, non-commerical use? Try these things in Illustrator:
    Star Tool: Draw a star. Now change the number of points it has.
    Arc Tool: Draw 36 degrees of a circular arc.
    Label that star with a dimension.
    Distribute a group of different objects along a curve.
    Uniformly space Blend steps along a non-uniform curve.
    Attach a Blend to a closed path and have the first/last instances properly positioned.
    Knife Tool: Cut across an open unfilled path.
    Connect a text label to an object that stays connected when you move it.
    Paste a simple graphic into a text string so that it flows with the text.
    Perform a Find/Replace on carriage returns.
    Round Corners: Apply it to an accute or obtuse angle and have it actually yield the radius you specify.
    Crop a raster image.
    Rotate something. Go back later and find out what its rotation angle is.
    Pathfinders: Use them without wrecking existing fills/strokes.
    I could go on (and have). How long a list do you want? All the features/functions associated with the above basic operations (and many more) are substandard, half-baked, or even non-existent in Illustrator. This is "professional"-grade software? No, it's largely consumerish rubbish sold at exhorbitant prices just because it's the "defacto standard."
    Is it worth having a second program and learning...
    Obviously, it is to me (and a third, and a fourth, and...). As I've said many times in this forum, I don't know how anyone can legitimately claim to compare two programs if they've only got workaday familiarity with one.
    As with any other endeavor, the more drawing programs you're comfortable with, the less arduous it is to pick up another, because you tend to pick up on the underlying principles involved, as opposed to just becomming habituated to a particular program's command locations and procedures by rote.
    But you've been using AI for "many years" and find it to be "OK". So if you're happy with it, use it.
    I have a cheap, consumerish Ryobi table saw and it's "OK." But I didn't pay a professional-grade price for it, either. And I'm sure not going to write glorious reviews on it, call it "professional," and get all fearfully brand-loyal defensive about it if someone dares suggest I might ought to learn to use a different one. My use of it, like yours, is merely occasional. But I also presently need to build a TV cabinet, and I'm dreading it. If I were to open a cabinet shop, I'd be much more discriminating, and would do my own homework to make an informed decision.
    Or replacing Illy with something?
    One doesn't have to "replace." There's nothing any more wrong with using more than one 2D drawing program than there is with using more than one 3D modeling program, or raster imaging program, or page layout program, or word processor, or video edting program, or....
    Pro's/Con's that would make one make the effort to try/use something else?
    That depends on what one is doing with it. Not knowing that, I can again only offer generalities that matter to me: If you've only ever used one program of a particulat kind, you're rather in the dark regarding functionality that you may be missing that may be important to you. (Second-degree ignorance: You don't know what you don't know.) If you're mission-dependent upon that one program, you're also kind of captive to the whims and agenda of its vendor.
    That very well may not matter to you, given your nominal, occasional, unsophisticated, and non-commerical use. And if so, that's fine.
    I don't even know what out there is better than Illy. I've searched www and got a few hints but nothing very significant.
    But you just said you've been reading a bunch of posts here which mention other programs.
    Am I wasting my time looking?
    Only you can answer that about your time. Time is all any of us have.
    Your feedback welcomed to help me decide whether to explore/trial other programs.
    No offense, but frankly it sounds like you're just not motivated enough to do your own homework. If you are  sufficiently motivated, visit the websites of other drawing program vendors. Read the features lists. Dowload the demos, read the documentation, and try them out. Visit the programs' user forums. Or, if it's really not that important to you, don't.
    If you've got questions about specific functionality and/or specific programs, be more specific about what you do (or want to do).
    JET

  • Illustrator not able to round corners properly (w/ image sample)

    When designing a logo, I want to be able to round corners properly, i.e. mathematically. When I specify a radius of 20 mm, I expect a radius of 20 mm, not various random radiuses. Illustrator simply isn't capable of doing this properly. I find this very strange, as this is the leading vector editing tool for designing logos (among others).
    As a result of this, I've developed my own "manual" method of doing this, but it takes some time, and it's not elegant.
    This image should be a little explanatory:
    http://img5.pictiger.com/948/17886618.gif?u=1237767818
    (Note: When rounding corners, Illustrator doesn't even produce circular arcs -- they're a little deformed.)
    Surely this can't be the way it's supposed to work? Anybody from Adobe care to answer?

    Sorry for the bad link. Here's the image again, with alternates (in case the others go down):
    http://s5.tinypic.com/2rfpudw.jpg
    http://img147.imageshack.us/img147/7021/roundingcorners.gif
    http://img11.imageshack.us/img11/5610/roundingcorners01.jpg
    b Please note:
    * The blue dotted circles in the Illustrator-example on the left represents
    i the "imaginary circles"
    that Illustrator uses when rounding corners.
    * The "manual method" on the right, shows what you'd actually expect Illustrator's Round Corners to do.
    @Harron K. Appleman:
    -I'm on CS4 and use both Vista and OSX (but that doesn't really matter, as this also applies to earlier versions of Illustrator).
    -I'm using the
    i Effects > Stylize > Round Corners.
    In the example I've used a simplified shape, to make it more clear what I mean.

  • AICS3, How to curve a block of text

    I'm still using AICS3, but I hope someone can help me anyway. I'm creating a file that will eventually go to a sign shop to have vinyl letters cut. These letters are being adhered to the surface of a cone (I work in a museum: I'm always doing stuff like this.) My problem is that the entire paragraph of text, about 12 lines, needs to be curved. That way it will conform to the cone surface. I could do a series of concentric arcs, but AI does not draw arcs (by the way, an arc is defined as a set of points equidistant from a reference point arrayed in a measure of arc degrees or some other fraction of a circle circumference. It is not a curved line defined by an x,y box, which is what AICS3 misnames an "arc." So please don't tell me to use the "arc" tool. There isn't one. Sorry for the digression, but this needs to be pointed out so I don't get crazy answers.) I tried using the Envelope tool, but it is really unworkable. The text cannot be selected, the arc cannot be controlled, etc. Would it be better to do this in InDesign CS3? I'm willing to use either ID or AI if I can get it done. Thanks in advance for any help!
    MGuilfoile

    function(){return A.apply(null,[this].concat($A(arguments)))}
    Not being able to, at a minimum, draw an arc or circle by radius is absurd and there can be no debate on this.
    Well, here's the debate that "cannot be":
    This ideal arc tool you envision; tell me, which radius would you expect it to prompt you for when you need to draw a non-circular arc?
    Do you think that just because a software asks you to specify a circle in terms of center coordinates and radius that what it renders is therefore actually a circle, when otherwise it is not? Again, that's nonsense.
    In about 30 minutes, I could create for you a Javascript-based tool that runs in Illustrator and that prompts you for center coordinates and a radius and then draws a circle. Would you then consider the circles it draws to be more "correct" or "accurate"? In fact, for my own purposes, I have a very simple Javascript that lets me define an ellipse in terms of diameter and "angle" (tilt relative to the picture plane), just as ellipses are defined on industry-standard drafting templates.
    Similarly, a plug-in programmer could code an actual real-time interactive tool with which you would mousedown where you want the center of a circle to be, and then drag so as to define the radius. The interface of such a tool could even require you to drag the end of the displayed "radius" in order to change the size of the circle, and display no Bezier control points unless "converted" from a "circle" to a Bezier path. Wanna see one? Canvas. But do you think it doesn't actually draw a Bezier curve?
    Regardless, if either those tools exist in Illustrator (and just about any other program of the same type and purpose) the actual math defining the resulting path would still be cubic Bezier equations, whether you ever saw path handles and height/width values or not. If that bothers you, and you actually think it matters, you just have to use something else. And good luck efficiently doing general-purpose commercial illustration with a CAD program. Bezier math is the curve-rendering math basis of PostScript, and therefore of Illustrator. It is not "sub-standard" or "inferior" to other curve rendering equations. In fact, it is arguably superior.
    Again, if all you're saying is that Illusrtrator's Ellipse interface is sub-standard, I'd be the last to disagree. FreeHand's Elipse tool, for example, allows you to define any circular or eliptical arc or circle or ellipse with the one tool. But that doesn't change the fact that the actual math being used to plot the curve is still the same cubic Bezier equation as used in Illustrator. And you seem to think that a Bezier-described arc is not a "real" arc to any extent that matters one whit to anything.
    We've had this discussion here before. No software on the planet actually "draws a circle." Strictly speaking, you've never even seen an "actual" circle. The only "circle" (or triangle, or any other geometric primitive) you've ever actually seen is a mere physical approximation of an ideal concept. The physical result of all curve-drawing algorithms is a mere approximation, limited by the physical realities of the rendering mechanism. So if you are going to persist in this utter nonsense of making the most extremely huge mountain out of a literally microscopic molehill, you are eventually going to have to speak to the actual degree of inaccuracy that causes you such angst.
    Give me an example of a software that you think draws a "real" circle. A CAD program? How does that work? Do you know? Do you think it actually starts by shining the emitter of a CRT at the point on the screen you specify as the center, moves horizontally the distance you specify as the radius, and then scribes a circular path around the center as if being swung on a string? If that "circle" is exported as a DXF file and is then used to drive to an NC plotter, do you think the path in the DXF file is actually a circle, and not a series of straight-path facets that merely approximate a circle?
    When that DXF drawing is plotted to a pen plotter, do you think the instructions to the plotter actually say "spin the pen around this point at this distance"? No, it says "step the roller motor at these increments (move Y), while stepping the pen holder at these increments (move X)." In fact, it really usually says, "go to this XY coordinate. Then go to this XY coordinate. Then go to this XY coordinate....", in other words, drawing straight-line facets. Does that sound more like "radius and center" or " X and Y" to you?
    So do you consider a set of XY coordinate pairs that merely describe the corners of a multi-sided polygon to be a "truer" circle than that generated by automatically plotting a curve at the highest physical resolution of a marking device according to the resolution independent nature of a cubic Bezier equation?
    Have you ever run a CAD program in which you had to "regenerate the buffer" (i.e.; re-rasterize the screen image) after zooming in on the path that you naively think is being described as an "actual" circle? Have you never zoomed into a 3D model in an interactive video game and seen painfully ugly faceting?
    Now, an NC device (say, a cylinder boring machine) may actually receive commands to "set the cutter arm to this distance, then begin spinning the spindle motor at this RPM while tracking the depth at this rate." But I wouldn't recommend using that NC device or its instructions to render curves to your computer monitor or to a printing press. But if all you want to do is draw circles with a boring bar....
    JET

  • Boundary_of_polygon utility?

    Hello all,
    Are you able to suggest a couple of utilities?
    1) I wish to create a new geometry being the boundary of an existing polygon. I think it just means changing sdo_gtype from d003 to d002 and sdo_etype from 3 to 2 in all sdo_elem_info array entries. But how?
    2) A viewer to display a sdo_geometry as a drawing on the screen? I am a bit tired of reading long lists of sdo_ordinates from fx.
    select mdsys.sdo_geom.sdo_intersection(...
    - regards
    Jens Ole Jensen
    Kort & MatrikelStyrelsen
    Danmark

    Hi Jens,
    1) Indeed, modifying the gtype and etype of the polygon geometry object will turn it into a line string that will be the boundary of the polygon.
    How to do this ? It's only a simple matter of programming ;-). Well ... almost. You will have to make a PL/SQL procedure that takes a geometry object as input and returns a new modified object as output. Modifying the gtype is obviously trivial. Modifying the etypes inside the sdo_elem_info array is harder: you will need to step through the structure, and modify the etypes you find.
    How difficult this process is, will depend on the nature of the data: are the polygon simple ones, or have you got multipolygons and/or polygons with voids ... Do they only have straight sides, or do they also have circular arcs as sides ?
    2) Drawing geometries on the screen can be useful ;-). The best is to use whatever GIS tool you have that works with spatial. For showing the result of functions, you may need to use a "passthrough" mode from those tools. Alternatively, you can store the results of a function (like the intersection function) into a separate "work" table, and view that one ...
    Best regards

Maybe you are looking for