可以运行了
axlCmdRegister("quick_textset" 'textset1)
defun(textset1 ()
case(car(axlDBGetDesignUnits())
("mils"a = 1)
("millimeters" a = 0.0254 )
)
Textblock_list1 = '("1" "2" "3" "4")
foreach(text_block Textblock_list1
p1 = axlGetParam(strcat("paramTextBlock:" text_block))
block_p1 = atoi(text_block)
p1->width = 25*block_p1*a
p1->height = (25*block_p1+15)*a
p1->lineSpace = 6
p1->photoWidth = (6+3*(block_p1-1))*a
p1->charSpace = (6+2*(block_p1-1))*a
axlSetParam(p1)
)
Textblock_list2 = '("5" "6" "7" "8")
foreach(text_block Textblock_list2
p2 = axlGetParam(strcat("paramTextBlock:" text_block))
block_p2 = atoi(text_block)-4
p2->width = 5*block_p2*a
p2->height = (5*block_p2+5)*a
p2->lineSpace = (block_p2+1)*a
p2->photoWidth = block_p2*a
p2->charSpace = (block_p2+1)*a
axlSetParam(p2)
)
) 你的单位换算可以改成这样,让allegro自动转换数值
a = axlMKS2UU(sprintf(nil "%d mil" 1)) 帮你优化了
axlCmdRegister("quick_textset" 'textset1)
defun(textset1 ()
a = axlMKS2UU(sprintf(nil "%d mil" 1))
for(text_block 1 8
axlDBTextBlockCreate(1)
p = axlGetParam(sprintf(nil "paramTextBlock:%L" text_block))
if( text_block < 5
p->width = 25 * text_block * a
p->height = (25 * text_block + 15) * a
p->lineSpace = 6
p->photoWidth = (6 + 3 *(text_block - 1 )) * a
p->charSpace = (6 + 2 *(text_block - 1 ))*a
else
text_block_set = text_block - 4
p->width = 5*text_block_set*a
p->height = (5*text_block_set+5)*a
p->lineSpace = (text_block_set+1)*a
p->photoWidth = text_block_set*a
p->charSpace = (text_block_set+1)*a
)
axlSetParam(p)
)
)
请问这是能实现什么功能? 1
页:
[1]