Solved, Request Limit Scale

I know that there is a Limit Scale constraint, but why is there no Limit Scale Local buton in the constraint as an option. This feature is greatly needed. Please do add feature.

Problem solved,
i decided i would try to fix the problem and i think i did here is a patch for the fix.

++++++++++++++++++++++++++++++++++++++++++++
Index: source/blender/blenkernel/intern/armature.c

RCS file: /cvsroot/bf-blender/blender/source/blender/blenkernel/intern/armature.c,v
retrieving revision 1.90
diff -U3 -r1.90 armature.c
— source/blender/blenkernel/intern/armature.c 14 Dec 2006 22:58:22 -0000 1.90
+++ source/blender/blenkernel/intern/armature.c 15 Dec 2006 06:36:26 -0000
@@ -1626,6 +1626,37 @@
EulToQuat(eul, pchan->quat);
}
break;

  •    case CONSTRAINT_TYPE_SIZELIMIT:
    
  •    {
    
  •        bSizeLimitConstraint *data= con->data;
    
  •        /* Aligorith: don't know whether this function really evaluates constraints, but here goes anyways */
    
  •        if (data->flag & LIMIT_XMIN) {
    
  •            if(pchan->size[0] < data->xmin)
    
  •                pchan->size[0] = data->xmin;
    
  •        }
    
  •        if (data->flag & LIMIT_XMAX) {
    
  •            if (pchan->size[0] > data->xmax)
    
  •                pchan->size[0] = data->xmax;
    
  •        }
    
  •        if (data->flag & LIMIT_YMIN) {
    
  •            if(pchan->size[1] < data->ymin)
    
  •                pchan->size[1] = data->ymin;
    
  •        }
    
  •        if (data->flag & LIMIT_YMAX) {
    
  •            if (pchan->size[1] > data->ymax)
    
  •                pchan->size[1] = data->ymax;
    
  •        }
    
  •        if (data->flag & LIMIT_ZMIN) {
    
  •            if(pchan->size[2] < data->zmin)
    
  •                pchan->size[2] = data->zmin;
    
  •        }
    
  •        if (data->flag & LIMIT_ZMAX) {
    
  •            if (pchan->size[2] > data->zmax)
    
  •                pchan->size[2] = data->zmax;
    
  •        }
    
  •    }
    
  •        break;
    
    }
    }

Index: source/blender/src/buttons_object.c

RCS file: /cvsroot/bf-blender/blender/source/blender/src/buttons_object.c,v
retrieving revision 1.204
diff -U3 -r1.204 buttons_object.c
— source/blender/src/buttons_object.c 12 Dec 2006 21:01:43 -0000 1.204
+++ source/blender/src/buttons_object.c 15 Dec 2006 06:36:36 -0000
@@ -1100,7 +1100,7 @@
int togButWidth = 50;
int textButWidth = ((width/2)-togButWidth);

  •            height = 90; 
    
  •            height = 118; 
               uiDefBut(block, ROUNDBOX, B_DIFF, "", *xco-10, *yco-height, width+40,height-1, NULL, 5.0, 0.0, 12, rb_col, ""); 
               
               /* Draw Pairs of LimitToggle+LimitValue */
    

@@ -1135,6 +1135,13 @@
uiDefButBitS(block, TOG, LIMIT_ZMAX, B_CONSTRAINT_TEST, “maxZ”, *xco+(width-(textButWidth-5)-togButWidth), *yco-72, 50, 18, &data->flag, 0, 24, 0, 0, “Use maximum z value”);
uiDefButF(block, NUM, B_CONSTRAINT_TEST, “”, *xco+(width-textButWidth-5), *yco-72, (textButWidth-5), 18, &(data->zmax), 0.0001, 1000, 0.1,0.5,“Highest z value to allow”);
uiBlockEndAlign(block);
+

  •            if (ob->type == OB_ARMATURE && (ob->flag & OB_POSEMODE)) {
    
  •                uiBlockBeginAlign(block);
    
  •                uiDefBut(block, LABEL, B_CONSTRAINT_TEST,"Co-ordinate Space:",*xco, *yco-100,150,18, NULL, 0.0, 0.0, 0.0, 0.0, ""); 
    
  •                uiDefButBitS(block, TOG, CONSTRAINT_LOCAL, B_CONSTRAINT_TEST, "Local", *xco+160, *yco-100, 60, 18, &con->flag, 0, 24, 0, 0, "Work on a Pose's local transform");
    
  •                uiBlockEndAlign(block);
    
  •            }
           }
           break;
       case CONSTRAINT_TYPE_RIGIDBODYJOINT:
    

++++++++++++++++++++++++++++++++++++++++++++
i just copied and modified another constraint.

The problem was that when i use Linked Groups and then do a Ctrl+Alt+P to be able to modify the Armature, the Limit Scale did not work. It used Global rather then Local coordinates.
Also to the blender Dev please do add to the CVS. Thanks.