Zitat:
Original erstellt von P.Ganahl:
... eine spätere Skalierung ist wegen der vielen Mehfachverwendungen und der Vermassung mühsam.
Gruss Patrick
Hallo Patrik,
fuer dieses Problem habe ich mal ein Makro geschrieben, dass einzelne und auch alle Mehrfachverwendungen aufloest.
Danach werden diese Teile nicht mehr so wild in der Gegend herumgeschleudert.
Starten mit: Unshare_macro !!!
DEFINE Unshare_macro
LOCAL Auswahl
LOCAL Teilenummer
LOCAL Teilenummer_obg
READ NUMBER 'Eingabe von: [1] zum auflÎsen aller Teile in der Zeichnung,\
oder [2] zum auflÎsen des editierten Einzelteiles eingeben.'
DEFAULT 1 Auswahl
IF (Auswahl = 1)
Unshare_all
ELSE_IF (Auswahl = 2)
INQ_ENV 7
LET Teilenummer (INQ 302)
BEEP DISPLAY '*** ACHTUNG: Das editierte Teil eigenstÌndig verwalten, oder [Esc] fÏr Abbruch.'
END_PART
TRAP_ERROR
UNSHARE_PART ('~' + Teilenummer)
IF (CHECK_ERROR)
BEEP DISPLAY '*** ABBRUCH: Teil konnte nicht eigenstÌndig verwaltet werden, weil die Oberbaugruppe gemeinsam verwaltet ist.'
BEEP DISPLAY '*** FRAGE: Soll die Oberbaugruppe nun eigenstÌndig verwaltet werden, oder [Esc] fÏr Abbruch.'
INQ_ENV 7
LET Teilenummer_obg (INQ 302)
END_PART
UNSHARE_PART ('~' + Teilenummer_obg)
EDIT_PART ('~' + Teilenummer)
END_PART
UNSHARE_PART ('~' + Teilenummer)
EDIT_PART ('~' + Teilenummer)
END_IF
EDIT_PART ('~' + Teilenummer)
ELSE
BEEP DISPLAY '*** ABBRUCH: UngÏltige Auswahl.'
CANCEL
END_IF
END_DEFINE
{===============================================================================================}
DEFINE Unshare_all
LOCAL N
LOCAL Nrows
LOCAL C
LOCAL Pnum
LOCAL First_pnum
LOCAL Answ
LOCAL Y
LOCAL P1
LOCAL P2
LOCAL Zeilenanzahl
LOCAL Zeilenzaehler
SPOTLIGHT OFF
PARTS_LIST TREE LTAB 'plist_ltab'
LET N (LTAB_ROWS 'plist_ltab')
LET Zeilenanzahl (LTAB_ROWS 'plist_ltab')
LET Zeilenzaehler (0)
IF (N>1)
LET Y CONFIRM
LET N
END
LET From_fptab 1 Iconize_all
INQ_PART '.'
LET First_pnum (INQ 302)
LET Nrows (LTAB_ROWS 'PBT_LTAB')
LET N 1
LOOP
LET Pnum (READ_LTAB 'PBT_LTAB' N 2)
EDIT_PART Pnum
END_PART
TRAP_ERROR
UNSHARE_PART Pnum
LET C (CHECK_ERROR)
EXIT_IF (N=Nrows)
LET N (N+1)
LET Zeilenzaehler (Zeilenzaehler + 1)
IF (Zeilenanzahl < 110)
DISPLAY_NO_WAIT ('*** FORTSCHRITT: |' + (RPT '-' Zeilenzaehler) + 'ü' + (RPT '-' (Zeilenanzahl - Zeilenzaehler + 1)) + '|')
WAIT 0.1
ELSE
DISPLAY_NO_WAIT ('*** FORTSCHRITT: ' + (STR Zeilenzaehler) + '/' + (STR Zeilenanzahl) + ' Teilen bearbeitet.')
WAIT 0.1
END_IF
END_LOOP
EDIT_PART First_pnum
END_IF
SPOTLIGHT ON
END_DEFINE
Vielleich eine kleine Hilfe...
Gruss
RainerH.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP