Site Logo
Site Logo
 
It is currently Mon Feb 20, 2017 4:56 am

All times are UTC [ DST ]




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: Macro pour Supression de StockModel
PostPosted: Tue Mar 22, 2016 10:57 pm 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
Macro to supress a StokModel

Dans certains cas je veux supprimer un Stock mais si le Stock comporte des liens multiples sur des parcours, la supression peut se révéler complexe. Avec le classique message :
Attachment:
Erreur.jpg

La macro ci-après permet donc de supprimer un stock en supprimant pour les parcours du stock les liens avec ce dernier. Ensuite on supprime le stock

J'aimerais par contre pouvoir changer l'info visuel de l'outil pour mettre l'indicateur de validité du parcours en Rouge. Avez vous une idée ? j'ai essayé avec Statistics.Valid = 0 mais rien de bien concluant.

Code:
//------------------------------------------------------------------------
// Macro Supprime_Stock_Select
// Supprime le Stock sélectionné
//
// Après un message confirmant la supression va :
//   1) Première tentative de supression du stock
//   2) Si le brut existe toujours alors va lister tous les parcours ayant une référence au Stock et pour les parcours détecté va enlever la reférence
//         Rajoute une note pour donner le brut de référence et l'état de référence avant la modification par la macro
//   3) Supprime ensuite les parcours du brut
//   4) Au final va supprimer le brut
//------------------------------------------------------------------------
// Macro à lancer depuis un menu utilisateur StockModel.
// Exemple fichier StockModel.xml à mettre dans le répertoire macro
// Rappel pas d'accent sur les commandes du XML
//---------------------------------------------------------------------------------------------------
//<?xml version="1.0" ?>
//<menupage>
//   <button command='MACRO "Supprime_Stock_Select" "%s"' label="Supprimer Stock" />
//</menupage>
//---------------------------------------------------------------------------------------------------
// Variable $Selected_Stock
//---------------------------------------------------------------------------------------------------

FUNCTION Main(
   STRING $Selected_Stock
)
{
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
GRAPHICS LOCK

STRING SName = entity('stockmodel',$Selected_Stock ).name

BOOL Carryon = 0
STRING Question = ''
$Question = "Voulez vous vraiment supprimer : " + $SName + " ?"

$carryon = QUERY $Question

if $carryon == 0 {
   MACRO ABORT
}

// Active le stock et le rendre invalide
ACTIVATE STOCKMODEL $Selected_Stock
UNLOCK STOCKMODEL $Selected_Stock
EDIT STOCKMODEL $Selected_Stock REMOVE_CALCULATION BLOCK


// On essaye de supprimer le stock
DELETE STOCKMODEL $Selected_Stock

// Declaration des variables
STRING SStock = ''
STRING SState = ''
STRING TpName = ''
STRING StatesName = ''
STRING Comment = ''

// Si il est encore la on continue
if not error(entity('stockmodel',$Selected_Stock )) {
      // On va supprimer le lien avec le Stock pour les parcours du projet
      FOREACH tp IN folder('Toolpath') {
       // Nom du parcours
       $TpName = $Tp.Name
          if  not error($Tp.StockModelState.StockModel) {
             $SStock=$Tp.StockModelState.StockModel.Name
             $SState=$Tp.StockModelState.Entity.Name              
            
             if  $SStock == $SName {
                 // MESSAGE WARN "Modification de $TpName -> $SStock Niveau($SState)"
                 ACTIVATE TOOLPATH $TpName
                INVALIDATE TOOLPATH $TpName
                FORM TOOLPATH
                //EDIT TOOLPATH $TpName RECYCLE
                //YES
                //EDIT PAR 'AreaClearance.Rest.Active' '0'
                EDIT PAR 'StockModelState.StockModel' " "
                $Comment = "Edition par macro Supprime_Stock_Selec" + crlf
                $Comment = $Comment + "Brut origine : " + $SStock + crlf
                $Comment = $Comment + "Etat origine : " + $SState

                EDIT TOOLPATH ; NOTES $Comment
                EDIT TOOLPATH $TpName REAPPLYFROMGUI
                YES
                FORM ACCEPT SFAreaClearance
                // Comment modifier l'icone du parcours ??
                $Tp.Statistics.Valid = 0
              }
         }
      }
   
    // Supression des etats du stock    
   INT Ind = size(entity('stockmodel',$Selected_Stock).states)-1
   STRING SType = ''
   // MESSAGE WARN "Edition de $SName ( $Ind )"
   While $Ind>0 {
            $SType= entity('stockmodel',$Selected_Stock ).states[$Ind].Type
            $StatesName= entity('stockmodel',$Selected_Stock ).states[$Ind].Name
            // MESSAGE INFO "Suppression de $StatesName"
            EDIT STOCKMODEL $SName REMOVE_INPUT INDEXED_STATE $Ind
            $Ind=$Ind-1
   }
}

// Le Stock existe toujours mais on va enfin pouvoir le virer
if not error(entity('stockmodel',$Selected_Stock )) {   
   DELETE STOCKMODEL $Selected_Stock   
}

GRAPHICS UNLOCK
DIALOGS MESSAGE ON
DIALOGS ERROR ON
}


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Wed May 11, 2016 11:13 pm 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
Modification suite à info en provenance de Lloyd http://forum.delcam.com/viewtopic.php?p=57973#p57973
Code:
//---------------------------------------------------------------------------------------------------
// Macro Supprime_Stock_Select
//
// Supprime le Stock sélectionné en supprimant le lien sur les parcours liés aux stock
//
// Après un message confirmant la supression va :
//   1) Première tentative de supression du stock
//   2) Si le brut existe toujours alors va lister tous les parcours ayant une référence au Stock et pour les parcours détecté va enlever la reférence
//         Rajoute une note pour donner le brut de référence et l'état de référence avant la modification par la macro
//   3) Supprime ensuite les parcours du brut
//   4) Au final va supprimer le brut
//
//  Version 1.0 du 03/03/2016
//
//  Modifications :  Ajout de la recherhe de l'etat du restant matière pour mise à jour des infos
//
//---------------------------------------------------------------------------------------------------
// Macro à lancer depuis un menu utilisateur StockModel.
// Exemple fichier StockModel.xml à mettre dans le répertoire macro
// Rappel pas d'accent sur les commandes du XML
//---------------------------------------------------------------------------------------------------
//<?xml version="1.0" ?>
//<menupage>
//   <button command='MACRO "Supprime_Stock_Select" "%s"' label="Supprimer Stock" />
//</menupage>
//---------------------------------------------------------------------------------------------------
// Variable $Selected_Stock
//---------------------------------------------------------------------------------------------------

FUNCTION Main(
   STRING $Selected_Stock
)
{
DIALOGS MESSAGE OFF
DIALOGS ERROR OFF
GRAPHICS LOCK

// nom du stock
STRING SName = entity('stockmodel',$Selected_Stock ).name

BOOL Carryon = 0
STRING Question = ''
$Question = "Voulez vous vraiment supprimer : " + $SName + " ?"

$carryon = QUERY $Question

if $carryon == 0 {
   MACRO ABORT
}

// Active le stock et le rendre invalide
ACTIVATE STOCKMODEL $Selected_Stock
UNLOCK STOCKMODEL $Selected_Stock NOQUERY
EDIT STOCKMODEL $Selected_Stock REMOVE_CALCULATION BLOCK

// On essaye de supprimer le stock
DELETE STOCKMODEL $Selected_Stock

// Declaration des variables
STRING SStock = ''
STRING SState = ''
STRING TpName = ''
STRING StatesName = ''
STRING Comment = ''

// Si il est encore la on continue
if entity_exists('stockmodel',$Selected_Stock ) {
      // On va supprimer le lien avec le Stock pour les parcours du projet
      FOREACH tp IN folder('Toolpath') {
       // Nom du parcours
       $TpName = $Tp.Name
          if  not error($Tp.StockModelState.StockModel) {
             // Nom du Restant Matière
             $SStock=$Tp.StockModelState.StockModel.Name
             if  $SStock == $SName {
                // Recherche état brut
                  FOREACH state IN $Tp.StockModelState.StockModel.States {
                        FOREACH ref IN $state.References {
                          IF $ref.id == $Tp.id {
                            $SState = $State.Name
                           // MESSAGE WARN "Modification de $TpName -> $SStock Niveau($SState)"
                          }
                        }
                  }            

                 ACTIVATE TOOLPATH $TpName
                INVALIDATE TOOLPATH $TpName
                FORM TOOLPATH
                //EDIT TOOLPATH $TpName RECYCLE
                //YES
                //EDIT PAR 'AreaClearance.Rest.Active' '0'
                EDIT PAR 'StockModelState.StockModel' " "
                $Comment = "Edition par macro Supprime_Stock_Selec" + crlf
                $Comment = $Comment + "Brut origine : " + $SStock + crlf
                $Comment = $Comment + "Etat origine : " + $SState

                EDIT TOOLPATH ; NOTES $Comment
                EDIT TOOLPATH $TpName REAPPLYFROMGUI
                YES
                FORM ACCEPT SFAreaClearance
              }
         }
      }
   
    // Supression des etats du stock    
   INT Ind = size(entity('stockmodel',$Selected_Stock).states)-1
   STRING SType = ''
   // MESSAGE WARN "Edition de $SName ( $Ind )"
   While $Ind>0 {
            $SType= entity('stockmodel',$Selected_Stock ).states[$Ind].Type
            $StatesName= entity('stockmodel',$Selected_Stock ).states[$Ind].Name
            // MESSAGE INFO "Suppression de $StatesName"
            EDIT STOCKMODEL $SName REMOVE_INPUT INDEXED_STATE $Ind
            $Ind=$Ind-1
   }
}

// Le Stock existe toujours mais on va enfin pouvoir le virer
if entity_exists('stockmodel',$Selected_Stock ) {   
   DELETE STOCKMODEL $Selected_Stock   
}

GRAPHICS UNLOCK
DIALOGS MESSAGE ON
DIALOGS ERROR ON
}


Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu May 12, 2016 8:49 am 
Offline
DELCAM Guru
DELCAM Guru

Joined: Fri Jan 10, 2014 4:38 pm
Posts: 507
Location: Switzerland
C'est marrant, on a eu +/- en même temps la même demande... Chez moi, ils veulent simplement "débloquer" toutes les matières restantes, pas forcément les effacer complètement. L'idée est de pouvoir si nécessaire les recréer (copie d'un projet existant, remplacement du modèle et parfois du brut d'où le besoin de pouvoir supprimer certaines matières restantes). Voici ce que ça donne:
Code:
GRAPHICS LOCK
INVALIDATE TOOLPATH ALL
YES
EDIT PREFERENCE SELRAISEFORM NO
FOREACH ent IN folder("TOOLPATH") {
   ACTIVATE TOOLPATH $ent
   If $Statistics.CuttingMoves.Lengths.Linear != 0 {
      INVALIDATE TOOLPATH $ent
      YES
   }
   //FORM TOOLPATH
   EDIT TPPAGE SWRest
   EDIT PAR 'StockModelState.StockModel' " "
   EDIT TOOLPATH $ent REAPPLYFROMGUI
   YES
}
DEACTIVATE TOOLPATH
GRAPHICS UNLOCK
EDIT PREFERENCE SELRAISEFORM YES

C'est nettement moins poussé que la tienne mais ça répond à nos besoins.

Je vais d'ailleurs faire le même exercice pour débloquer les motifs (bloqués par les contournages de courbes) et les repères (bloqués par les programmes).

_________________
Thank you !

Olivier


Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu May 12, 2016 6:24 pm 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
oliviern wrote:
remplacement ... et parfois du brut
Si tu veux j'ai aussi une autre macro qui pourrais te servir. Elle permet sur un restant matière de définir automatiquement un brut ... par rapport au premier parcours .

Dans l'idée si tu as un restant matière existant, la macro va récupérer les infos du premier parcours calculé dans le restant pour redéfinir un brut englobant ce parcours. Ainsi plus besoin de réaffecter le brut. Garde le type du brut précédent ( pour pavé , cylindre indique la différence, si c'est un brut autre active le parcours pour la mise à jour du brut) . Ca correspond un peu aussi à ce que tu me décris comme besoin :
Code:
//------------------------------------------------------------------------
// Macro de redéfinition du brut selon la définition du premier parcours
//------------------------------------------------------------------------
// Macro à lancer depuis un menu utilisateur StockModel.
// Exemple fichier StockModel.xml à mettre dans le répertoire macro
// Rappel pas d'accent sur les commandes du XML
//---------------------------------------------------------------------------------------------------
//<?xml version="1.0" ?>
//<menupage>
//   <button command='MACRO "Reset_Stock_Select" "%s"' label="Reset Block Stock" />
//</menupage>
//---------------------------------------------------------------------------------------------------
// Variable $Selected_Stock
//---------------------------------------------------------------------------------------------------
FUNCTION Main(
   STRING $Selected_Stock
)
{
 
  ENTITY $ST = entity('StockModel',$Selected_Stock)
  //PRINT PAR $ST
  // Nom Stock
  STRING $SName=$ST.Name
BOOL Carryon = 0
STRING Question = ''
$Question = "Voulez vous vraiment ré-initialiser : " + $SName + " ?"

$carryon = QUERY $Question

if $carryon == 0 {
   MACRO ABORT
}

  // Niveau
  INT StateNB = size($ST.States)

  // Regarde si plus d'un niveau
  IF $StateNB > 1 {
 
  // Active le pacours et récupère les infos
  STRING $NameFirstTP =  $ST.states[1].Name

  ENTITY $TP = entity('ToolPath',$NameFirstTP)
  // Init si vide
  STRING $RepereTP = ' '
  if not error($TP.Workplane) {
   ENTITY $Rep=entity('Workplane',$TP.Workplane.Name)
   $RepereTP=$Rep.Name
  }

  STRING $BlockType=$TP.block.type

  if $TP.block.type == "box"  {
  Real $X_min=round($TP.block.limits.xmin,4)
  Real $X_max=round($TP.block.limits.xmax,4)
  Real $Y_min=round($TP.block.limits.ymin,4)
  Real $Y_max=round($TP.block.limits.ymax,4)
  Real $Z_min=round($TP.block.limits.zmin,4)
  Real $Z_max=round($TP.block.limits.zmax,4)
 
  // Volume
  REAL $Volume = round($ST.states[0].Volume,0)
 
  REAL $VolumeBox = 0
  $VolumeBox=($X_max-$X_min) * ($Y_max-$Y_min) * ($Z_max-$Z_min)
  $VolumeBox=$VolumeBox*$VolumeBox
  $VolumeBox=round(SQRT($VolumeBox),0)
 
  REAL $Diff_Volume=$Volume-$VolumeBox
  $Diff_Volume=$Diff_Volume*$Diff_Volume
  $Diff_Volume=round(SQRT($Diff_Volume),0)
 
 
  // Redéfini le brut
    FORM BLOCK 
   EDIT BLOCKTYPE BOX

   EDIT BLOCK COORDINATE NAMED
   EDIT BLOCK NAMEDWORKPLANE $RepereTP

   EDIT BLOCK XMIN $X_min
   EDIT BLOCK XMAX $X_max
   EDIT BLOCK YMIN $Y_min
   EDIT BLOCK YMAX $Y_max
   EDIT BLOCK ZMIN $Z_min
   EDIT BLOCK ZMAX $Z_max
   BLOCK ACCEPT
   
   MESSAGE INFO "Mise a jour : $Selected_Stock  : $X_min , $X_max , $Y_min , $Y_max , $Z_min , $Z_max" + CRLF + " ( Volume : $Volume , $VolumeBox, $Diff_Volume )"
   
  } else {
    // Si cylindre
    if $TP.block.type == "cylinder"  {
     Real $X_Center=round($TP.block.Centre.X,4)
     Real $Y_Center=round($TP.block.Centre.Y,4)
     Real $Z_Center=round($TP.block.Centre.Z,4)

     Real $Stock_Diam=round($TP.block.Diameter,4)

     Real $X_min=round($TP.block.limits.xmin,4)
     Real $X_max=round($TP.block.limits.xmax,4)
     Real $Y_min=round($TP.block.limits.ymin,4)
     Real $Y_max=round($TP.block.limits.ymax,4)
     Real $Z_min=round($TP.block.limits.zmin,4)
     Real $Z_max=round($TP.block.limits.zmax,4)
 
  // Volume
  REAL Volume = round($ST.states[0].Volume,0)
 
  REAL VolumeBox = 0
  REAL RBox = TP.block.Diameter * 0.5
  $VolumeBox= $RBox * $RBox * 3.14159265358979 * ($Z_max-$Z_min)

  $VolumeBox=$VolumeBox*$VolumeBox
  $VolumeBox=round(SQRT($VolumeBox),0)
 
  REAL Diff_Volume=$Volume-$VolumeBox
  $Diff_Volume=$Diff_Volume*$Diff_Volume
  $Diff_Volume=round(SQRT($Diff_Volume),0)
 
  // Redéfini le brut
    FORM BLOCK 
   EDIT BLOCKTYPE CYLINDER

   EDIT BLOCK COORDINATE NAMED
   EDIT BLOCK NAMEDWORKPLANE $RepereTP
   
   EDIT BLOCK XCENTRE  $X_Center
   EDIT BLOCK YCENTRE  $Y_Center
   
   EDIT BLOCK DIAMETER $Stock_Diam
   
   EDIT BLOCK ZMIN $Z_min
   EDIT BLOCK ZMAX $Z_max
   BLOCK ACCEPT
   
   MESSAGE INFO "Mise a jour : $Selected_Stock  Center : $X_Center , $Y_Center  Diameter : $Stock_Diam  Z:  $Z_min , $Z_max" + CRLF + " ( Volume : $Volume , $VolumeBox, $Diff_Volume )"
    } else {
      // Si brut autre ...
           // Active le pacours pour déclencher la mise à jour du brut
         ACTIVATE TOOLPATH $NameFirstTP
         // OBJECT myObject = Block
         // REAL ARRAY lims[] = limits(myObject)
   }
   


// Reset Stock
    ACTIVATE STOCKMODEL $Selected_Stock
// Regarde si le premier niveau est calculé sinon ré-init
  IF $ST.States[0].Calculated == 1 {   
     EDIT STOCKMODEL $Selected_Stock  REMOVE_CALCULATION BLOCK
  } 
   EDIT STOCKMODEL ; BLOCK ;
   
   EDIT STOCKMODEL  $Selected_Stock CALCULATE


} ELSE {
   MESSAGE ERROR "Pas de parcours associé au Stock"
}
}


Pour infos voici mon fichier StockModel.xml
Code:
<?xml version="1.0" ?>
<menupage>
   <button command='MACRO "Export_Stock_Select" "%s"' label="Exporter Stock format STL" multiple_selection="allowed"/>
   <button command='MACRO "Reset_Stock_Select" "%s"' label="Reset Stock Block 1er parcours" multiple_selection="allowed"/>
   <button command='MACRO "Copie_Stock_Select" "%s"' label="Copier Stock" multiple_selection="allowed"/>
   <button command='MACRO "Supprime_Stock_Select" "%s"' label="Supprimer Stock" multiple_selection="allowed"/>
   <button command='MACRO "Creer_NCProg_From_Stock_Select" "%s"' label="Transformer NC program" />
   <spacer/>
   <button command='MACRO "Analyse_Stock_Select" "%s"' label="Analyse Stock" />
   <button command='PRINT PAR $entity("StockModel","%s")' label="PRINT PAR" />
</menupage>



Ce qui permet d'illustrer un peu les "besoins" complémentaires identifier sur les fonctions "manquantes" sur le restant matière et compensé par ces fonctions :
    Exporter Stock format STL = Exporter au format STL un restant matière dans répertoire "\BlockExport" du projet
    Reset Stock Block 1er parcours = Reset du Brut existant avec infos premier parcours ( utile si l'on reprend un projet existant avec Geo différentes et même parcours).
    Supprimer Stock = Supprime un restant matière même si lié à des parcours ( rajoute dans les notes des parcours l'info du brut et du niveau pour garder une trace)
    Copier Stock = Réalise une "vraie" copie de stock avec au passage possibilité de changer les paramètres de calcul du stock ( mais duplique uniquement les parcours de création du restant matière pour ne pas modifier les parcours origine).
    Attachment:
    copieStock.jpeg

    Transformer NC program = Permet de créer un programme ISO à partir des parcours outils présents dans un restant matière.
    Analyse Stock = Fonction prototype d'analyse des restants matière. L'analyse permet d'analyser les débits copeaux et de les comparer avec les données théoriques des parcours.

    PRINT PAR = Fonction classique sur tous mes menus pour analyser les infos de l'entité ( utilisation seulement pour construire une macro et voir le type d'infos accessible sur l'entité)


You do not have the required permissions to view the files attached to this post.


Last edited by 5axes on Thu Jun 02, 2016 11:21 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Fri May 13, 2016 3:43 pm 
Offline
DELCAM Guru
DELCAM Guru

Joined: Fri Jan 10, 2014 4:38 pm
Posts: 507
Location: Switzerland
Merci ! Je vais devoir l'adapter un peu pour nous mais l'idée me plaît bien.

J'ai par contre toute une série de macros pour redéfinir / mettre à jour les bruts (boîte, cylindre, frontière, triangles) dans tous ou juste certains parcours d'outils.

Fais-moi savoir si ça t'intéresse.

_________________
Thank you !

Olivier


Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Sat May 14, 2016 9:23 am 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
oliviern wrote:
J'ai par contre toute une série de macros pour redéfinir / mettre à jour les bruts (boîte, cylindre, frontière, triangles) dans tous ou juste certains parcours d'outils. Fais-moi savoir si ça t'intéresse.


Merci mais à priori pas de besoin de ce coté là. Pour les parcours soit j'utilise quelques "Macro-Gamme" très avancées associées à des templates , qui permettent à partir de rien de recréer en automatique l'ensemble des parcours avec la définition des bruts, restant matière et parcours ISO sur des cas récurrents. Ou alors si j'ai besoin de faire de la modif sur un ensemble de parcours existant alors j'utilise ma macro générique http://forum.delcam.com/viewtopic.php?p=57850#p57850 avec une identique lancée en menu utilisateur avec multi sélection.

Par contre pour continuer cette discussion je vais faire le même exercice mais cette fois sur les parcours outil pour ne pas poluer les deux sujets : http://forum.delcam.com/viewtopic.php?p=58023#p58023


Top
 Profile  
 
 Post subject: Macro pour Analyse de StockModel
PostPosted: Wed Jun 01, 2016 10:25 pm 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
Nouvelle Macro encore en cours de création. Pour le moment je ne sais pas encore bien ce que je vais en faire et si elle me sera vraiment utile. L'objet est d'analyser un restant matière pour calculer des taux d'enlèvement matière. En attendant voici une première mouture qui permet de calculer les taux d'enlèvements :
Attachment:
analyse.jpg


You do not have the required permissions to view the files attached to this post.

_________________
“If you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas”
George Bernard Shaw


Last edited by 5axes on Sun Jun 05, 2016 5:50 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu Jun 02, 2016 9:39 am 
Offline
DELCAM Staff
DELCAM Staff
User avatar

Joined: Mon Aug 09, 2004 3:55 pm
Posts: 1463
Location: Birmingham UK
The stkmodel.states builds an array of all the states each time it occurs in an expression. So you will be much faster if you simply do it once and then index into the list.

Code:
OBJECT LIST stk_states = stkmodel.states
...
     $ST_Type = $stk_states[$Id].type
     $ST_NAme = $stk_states[$Id].name
     INT $VolumeBrut = $stk_states[$Id].volume
...



Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu Jun 02, 2016 10:24 am 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
THANK YOU Lloyd :D :D :D
Yes it's incredibly more faster now. Just before your post I was wondering if my computer was not infected by a virus as the computation time was so long :D !


Last edited by 5axes on Fri Jun 03, 2016 8:51 pm, edited 9 times in total.

Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu Jun 02, 2016 11:00 am 
Offline
DELCAM Staff
DELCAM Staff
User avatar

Joined: Mon Aug 09, 2004 3:55 pm
Posts: 1463
Location: Birmingham UK
5axes wrote:
THANK YOU Lloyd :D :D :D
Yes it's incredible more faster now. Just before your post I was wondering if my computer was not infected by a virus as the computation time was so long :D !


Unfortunately getting the volume for a stockmodel state is a lengthy calculation so you don't want to be doing that more than necessary.


Top
 Profile  
 
 Post subject: Re: Macro pour Supression de StockModel
PostPosted: Thu Jul 28, 2016 10:55 am 
Offline
DELCAM Guru
DELCAM Guru
User avatar

Joined: Mon Dec 14, 2009 5:46 pm
Posts: 341
Une version 3 avec gestion de la Multi-sélection pour ne poser la question qu'une seule fois dans le cas de Multi-sélection de Stock
Code:
BOOL $Carryon = 0
STRING $Question = ''
// Gestion Multi-sélection
IF ( $PowerMILL.Status.MultipleSelection.First OR $PowerMILL.Status.MultipleSelection.Total == 0 )  {
   IF $PowerMILL.Status.MultipleSelection.Total == 0 {
      $Question = "Voulez vous vraiment supprimer : " + $SName + " ?"
   } ELSE {
      $Question = "Voulez vous vraiment supprimer tous ces Blocks ?"
   }
   
   $carryon = QUERY $Question
   
   if $carryon == 0 {
      MACRO ABORT
   }
}


You do not have the required permissions to view the files attached to this post.

_________________
“If you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas”
George Bernard Shaw


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB