Broken geometry has been and remains a real problem for us, Below is a macro I wrote a few years ago to address the problem. I kept the macro on a network drive we usually mapped as D: It seem to work ok but I think most of the programmers are just grouping geometry then modifying the elements to have very long lead-in and lead-out lines. . .that way they can quickly identify where the breaks are.
I hope this helps.
David
// Created by David S. Hayden
// There is a new macro that will check the layers you indicate for non-
// contiguous geometry.
// To run it:
// 1. Select Macro from the top menu
// 2. Select Execute from the pull down menu
// 3. If your geometry is new or recently changed you will be prompted to
save your
// work, the choice is yours.
// 4. Enter the name D:\master\checklay for the macro name
// 5. Next you will be prompted for the layer to check. You can enter any
number from
// 0-99. If you enter 0 the program will exit.
// 6. You will also be asked to enter a:
// 1 if the boundary is closed or a
// 0 if the boundary is open.
// if you indicate the boundary is closed when it is in fact open, it will
indicate that
// you have a break and a line pointing to the break will be added at the
end of the
// last element in the chain.
// 7. The program will stay in the loop until you escape out or enter a 0 to
exit, at
// which point you will be told whether or not the program found any
breaks.
// Any breaks found will have a line on layer 85 pointing to them. The start
point of the
// line will be at the point of the break. When you make your corrections you
can group
// layer 85 elements and delete them. No other changes will be made to your
part
// besides grouping and chaining the layers you selected.
// Using this macro should make the job of finding non-contiguous geometry or
extra
// elements much simpler and quicker.
// If you have any questions or suggestions regarding the use of this macro,
give me a
// call at extension 8452.
// - Dave -
// *********** Revisions ***********
// 03-21-96 DSH - Date created
// 03-22-96 DSH - Added a point to layer 85 so when only one layer exists and
is it free from errors, macro
// will run w/o problems
#LYR=1
#Bndary=0
#BrkLine=0
ELMT_SEQ[BA=0, EL="1", ME=1]
ON_LAYER[LY=85, WP="ZX_PLANE", LV=0, PT=?]
LINE[XS=0, YS=0, ZS=0, ZE=0, ZI=0, AN=0, DS=3, SE=2, SS=2, PK=0]
NAME_ELMT[EL="1", EN="TEST_LN"]// used for testing layer 22 for elements
WHILE(#LYR<>0)
PROMPT[TX="What layer do you wish to check? Enter 0 to exit", VN="LYR", DV=1]
IF(#LYR>0)
PROMPT[TX="Enter 1 if this is a closed boundary? Enter 0 if it is open.",
VN="Bndary", DV=1]
NEW_GRP[]
ELMT_SEQ[BA=0, EL="1", ME=1]
LAYER_GRP[AR=0, LY="#LYR"]
SEQ_MOVE[SC=1]
GRP_CHAIN[PJ=0]
#Counter=0
WHILE(#Counter<GRP(0))
#Counter=#Counter+1
#Brk=#Counter+1
IF(#Bndary=0)
IF(ENX(#Counter)<>STX(#Brk),OR ENY(#Counter)<> STY(#Brk),AND #Counter<>
GRP(0))
COLOR_CHG[CO=3, TY=1, TL=85, ST=0]
ON_LAYER[LY=85, WP="ZX_PLANE", LV=0, PT=0]
IF(#Counter>1)
LINE[XS=ENX(#Counter), YS=ENY(#Counter), ZS=0, ZE=0, ZI=0,
AN=ANG(#Counter)+115, DS=3,
SE=2, SS=2, PK=0]
ENDIF
IF(#Counter=1)
LINE[XS=STX(#Counter), YS=STY(#Counter), ZS=0, ZE=0, ZI=0,
AN=ANG(#Counter)+115, DS=3,
SE=2, SS=2, PK=0]
ENDIF
#BrkLine=#Brkline+1
// NAME_ELMT[EL=#EL, EN=STRTMP("Break%#BrkLine")]
ENDIF
ENDIF
IF(#Bndary=1)
IF(ENX(#Counter)<>STX(#Brk),OR ENY(#Counter)<> STY(#Brk))
COLOR_CHG[CO=3, TY=1, TL=85, ST=0]
ON_LAYER[LY=85, WP="ZX_PLANE", LV=0, PT=0]
IF(ENX(#Counter)<>STX(1),OR ENY(#Counter)<> STY(1))
LINE[XS=ENX(#Counter), YS=ENY(#Counter), ZS=0, ZE=0, ZI=0,
AN=ANG(#Counter)+115, DS=3,
SE=2, SS=2, PK=0]
#BrkLine=#Brkline+1
ENDIF
// NAME_ELMT[EL=#Brk, EN=STRTMP("Break%#BrkLine")]
ENDIF
ENDIF
ENDW
ENDIF
ENDW
NEW_GRP[]
DELETE[EL=TEST_LN]
IF(#BrkLine=0)
PAUSE[TX="No breaks were found on the layers selected. Thank you for
using CheckLay.mcl.",PT=0]
ELSE
PAUSE[TX="At least one break was found on the layers you selected. The
breaks are indicated by lines at
break point. All break point lines are on LAYER 85. Thank you for using
CheckLay.mcl.",PT=0]
ENDIF
[EMAIL PROTECTED] on 01/26/2001 04:55:23 PM
To: [EMAIL PROTECTED]
cc: (bcc: Dave Hayden/elliott)
Subject: [mfg-smartcam] dxf & or iges files
Does anybody else have problems with broken lines in flat pattern translated
files?
Often when using provided electronic data to make customer parts the lines
adjacent to scallops and radii dont meet by a few tenths and will not chain.
To drive a tool around perimeter a lot of time is used to connect the lines.
Does anybody know of a software or method that will make this process less of
a task?
any input would be greatly appreiatiated
Does anybody else have problems with broken lines in flat pattern translated
files?
Often when using provided electronic data to make customer parts the lines
adjacent to scallops and radii dont meet by a few tenths and will not chain.
To drive a tool around perimeter a lot of time is used to connect the lines.
Does anybody know of a software or method that will make this process less of
a task?
any input would be greatly appreiatiated
