快速創建焊盤skill
自己重新編譯幾樓科技的焊盤創建skill,放上碼源供大家參考新增/改進功能
>將pad儲存位置改為當前目錄下
>新增建完pad後自動擺放
>將可輸入小數點擴充至後5位
将这两个档案另存为标头指定的档案名称,并放到allegro的skill目录下
快捷指令 pad
;档名请命名为 create_pad.il
axlCmdRegister("pad" 'pad_creater ?cmdType "general")
procedure( pad_creater()
let((form)
form = create_pad_createform()
create_pad_int_var(form)
create_pad_update_form(form)
)
)
procedure( create_pad_createform()
let((file form)
file = "~/pcbenv/create_pad_form.il"
when(boundp('createpad_form)
when(axlIsFormType(eval('createpad_form))
axlFormClose(eval('createpad_form))
)
)
form = axlFormCreate('createpad_form file nil 'create_pad_CB t)
form
)
)
procedure( create_pad_int_var(form)
let(()
form->pop = ncons(nil)
form->pop->padtype = list(
list("SMD PAD" "padtype_smd")
list("Thru Pin" "padtype_hole")
list("Thru Via" "padtype_via")
)
form->var = ncons(nil)
form->var->padtype = cadar(form->pop->padtype)
form->var->rec_pad = t
form->var->unitsel = "mil"
form->var->pad_name = "smd100_80"
form->var->value_W = 100.
form->var->value_H = 80.
form->var->value_D1 = 40.
form->var->value_D2 = 60.
form->var->sold_val = 4
form->var->cir_cir_hole = t
form->vis = ncons(nil)
form->vis->rec_pad = 1
form->vis->cir_pad = 1
form->vis->obl_pad = 1
form->vis->cir_cir_hole = 0
form->vis->cir_Rec_hole = 0
form->vis->cir_oval_hole = 0
form->vis->oval_oval_hole = 0
form->vis->nth_hole = 0
form->vis->W_name = 1
form->vis->value_W = 1
form->vis->H_name = 1
form->vis->value_H = 1
form->vis->D1_name = 0
form->vis->value_D1 = 0
form->vis->D2_name = 0
form->vis->value_D2 = 0
t
)
)
procedure( create_pad_CB(form)
let((SavePath tt)
case(form->curField
("pad_name" | "value_W" | "value_H" | "value_D1" | "value_D2" | "sold_val"
evalstring(sprintf(nil "form->var->%s = %L" form->curField form->curValue))
when(form->curField == "pad_name"
form->var->pad_name = lowerCase(form->curValue)
)
)
("unitsel"
form->var->value_W = axlMKSConvert(form->var->value_W form->var->unitsel form->curValue)
form->var->value_H = axlMKSConvert(form->var->value_H form->var->unitsel form->curValue)
form->var->value_D1 = axlMKSConvert(form->var->value_D1 form->var->unitsel form->curValue)
form->var->value_D2 = axlMKSConvert(form->var->value_D2 form->var->unitsel form->curValue)
form->var->sold_val = axlMKSConvert(form->var->sold_val form->var->unitsel form->curValue)
form->var->unitsel = form->curValue
)
("rec_pad" | "cir_pad" | "obl_pad"
foreach(n0 list("rec_pad" "cir_pad" "obl_pad")
evalstring(sprintf(nil "form->var->%s = axlFormGetField(form %L)" n0 n0))
)
)
("cir_cir_hole" | "cir_Rec_hole" | "cir_oval_hole" | "oval_oval_hole" | "nth_hole"
foreach(n0 list("cir_cir_hole" "cir_Rec_hole" "cir_oval_hole" "oval_oval_hole" "nth_hole")
evalstring(sprintf(nil "form->var->%s = axlFormGetField(form %L)" n0 n0))
)
)
("cpad"
SavePath = getWorkingDir()
when(SavePath
tt = create_pad_CreateAction(form)
when(tt
axlOSFileMove(tt strcat(SavePath "/" tt))
)
)
)
("padtype"
form->var->padtype = form->curValue
form->var->sold_val = 4.
form->var->rec_pad = t
form->var->cir_pad = nil
form->var->obl_pad = nil
form->var->cir_cir_hole = t
form->var->cir_Rec_hole = nil
form->var->cir_oval_hole = nil
form->var->oval_oval_hole = nil
form->var->nth_hole = nil
case(form->curValue
("padtype_smd"
form->vis->rec_pad = 1
form->vis->cir_pad = 1
form->vis->obl_pad = 1
form->vis->cir_cir_hole = 0
form->vis->cir_Rec_hole = 0
form->vis->cir_oval_hole = 0
form->vis->oval_oval_hole = 0
form->vis->nth_hole = 0
)
("padtype_hole"
form->vis->rec_pad = 0
form->vis->cir_pad = 0
form->vis->obl_pad = 0
form->vis->cir_cir_hole = 1
form->vis->cir_Rec_hole = 1
form->vis->cir_oval_hole = 1
form->vis->oval_oval_hole = 1
form->vis->nth_hole = 1
)
("padtype_via"
form->vis->rec_pad = 0
form->vis->cir_pad = 0
form->vis->obl_pad = 0
form->vis->cir_cir_hole = 0
form->vis->cir_Rec_hole = 0
form->vis->cir_oval_hole = 0
form->vis->oval_oval_hole = 0
form->vis->nth_hole = 0
form->var->sold_val = 0.
)
)
)
)
unless(form->curField == ""
create_pad_update_form(form)
)
t
)
)
procedure( create_pad_update_form(form)
let((tt)
form->var->W_name = "W"
form->var->H_name = "H"
case(form->var->padtype
("padtype_smd"
form->vis->D1_name = 0
form->vis->value_D1 = 0
form->vis->D2_name = 0
form->vis->value_D2 = 0
if(form->var->cir_pad then
form->vis->H_name = 0
form->vis->value_H = 0
else
form->vis->H_name = 1
form->vis->value_H = 1
)
)
("padtype_hole"
form->vis->W_name = 1
form->vis->value_W = 1
form->vis->H_name = 1
form->vis->value_H = 1
form->vis->D1_name = 0
form->vis->value_D1 = 0
form->vis->D2_name = 0
form->vis->value_D2 = 0
cond(
(form->var->cir_cir_hole
form->var->W_name = "D0"
form->vis->H_name = 0
form->vis->value_H = 0
form->vis->D1_name = 1
form->vis->value_D1 = 1
)
(form->var->cir_Rec_hole
form->vis->H_name = 0
form->vis->value_H = 0
form->vis->D1_name = 1
form->vis->value_D1 = 1
)
(form->var->cir_oval_hole
form->vis->D1_name = 1
form->vis->value_D1 = 1
)
(form->var->oval_oval_hole
form->vis->D1_name = 1
form->vis->value_D1 = 1
form->vis->D2_name = 1
form->vis->value_D2 = 1
)
(form->var->nth_hole
form->vis->W_name = 0
form->vis->value_W = 0
form->var->H_name = "D1"
)
)
)
("padtype_via"
form->var->W_name = "D0"
form->var->H_name = "D1"
)
)
create_pad_RenamePad(form)
foreach(n0 form->vis->?
tt = member(n0 form->vis)
axlFormSetFieldVisible(form symbolToString(car(tt)) cadr(tt))
)
foreach(n0 form->pop->?
tt = member(n0 form->pop)
axlFormBuildPopup(form symbolToString(car(tt)) cadr(tt))
)
foreach(n0 form->var->?
tt = member(n0 form->var)
axlFormSetField(form symbolToString(car(tt)) cadr(tt))
)
handle = axlGRPDrwInit(form "pad_view" 'create_pad_GrawView)
handle->form = form
unless(member(form->curField list("pad_name" "unitsel" "value_W" "value_H" "value_D1" "value_D2" "sold_val" "cpad"))
axlGRPDrwUpdate(handle)
)
axlFormAutoResize(form)
axlFormDisplay(form)
)
)
procedure( create_pad_GrawView(handle)
let((form s_xy xy_l xy_r)
form = handle->form
cond(
(form->var->padtype == "padtype_smd"
axlGRPDrwMapWindow(handle 200 200)
putprop(handle "white" 'color)
putprop(handle "filled" 'fill)
axlGRPDrwRectangle(handle '(0 0) '(200 200))
cond(
(form->var->rec_pad
putprop(handle "red" 'color)
axlGRPDrwRectangle(handle 40:60 160:140)
putprop(handle "black" 'color)
axlGRPDrwLine(handle list(40:50 40:30))
axlGRPDrwLine(handle list(160:50 160:30))
axlGRPDrwText(handle 90:30 "W")
axlGRPDrwLine(handle list(170:60 190:60))
axlGRPDrwLine(handle list(170:140 190:140))
axlGRPDrwText(handle 175:90 "H")
)
(form->var->cir_pad
putprop(handle "red" 'color)
axlGRPDrwCircle(handle 100:100 65)
putprop(handle "black" 'color)
axlGRPDrwLine(handle list(35:70 35:10))
axlGRPDrwLine(handle list(165:70 165:10))
axlGRPDrwText(handle 90:10 "W")
)
(form->var->obl_pad
putprop(handle "red" 'color)
axlGRPDrwCircle(handle 70:100 30)
axlGRPDrwRectangle(handle 70:70 130:130)
axlGRPDrwCircle(handle 130:100 30)
putprop(handle "black" 'color)
axlGRPDrwLine(handle list(40:60 40:30))
axlGRPDrwLine(handle list(160:60 160:30))
axlGRPDrwText(handle 90:40 "W")
axlGRPDrwLine(handle list(170:70 190:70))
axlGRPDrwLine(handle list(170:130 190:130))
axlGRPDrwText(handle 175:90 "H")
)
)
)
(form->var->padtype == "padtype_hole"
axlGRPDrwMapWindow(handle 200 200)
putprop(handle "white" 'color)
putprop(handle "filled" 'fill)
axlGRPDrwRectangle(handle 0:0 200:200)
cond(
(form->var->cir_cir_hole
putprop(handle "red" 'color)
axlGRPDrwCircle(handle 100:100 60)
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 100:100 30)
axlGRPDrwLine(handle list(40:60 40:10))
axlGRPDrwLine(handle list(160:60 160:10))
axlGRPDrwText(handle 90:10 "D0")
axlGRPDrwLine(handle list(80:170 80:190))
axlGRPDrwLine(handle list(120:170 120:190))
axlGRPDrwText(handle 90:170 "D1")
)
(form->var->cir_Rec_hole
putprop(handle "red" 'color)
axlGRPDrwRectangle(handle 40:40 160:160)
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 100:100 30)
axlGRPDrwLine(handle list(40:30 40:10))
axlGRPDrwLine(handle list(160:30 160:10))
axlGRPDrwText(handle 90:10 "W")
axlGRPDrwLine(handle list(80:170 80:190))
axlGRPDrwLine(handle list(120:170 120:190))
axlGRPDrwText(handle 90:170 "D1")
)
(form->var->cir_oval_hole
putprop(handle "red" 'color)
axlGRPDrwCircle(handle 60:100 30)
axlGRPDrwCircle(handle 140:100 30)
axlGRPDrwRectangle(handle 60:70 140:130)
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 100:100 20)
axlGRPDrwLine(handle list(30:60 30:40))
axlGRPDrwLine(handle list(170:60 170:40))
axlGRPDrwText(handle 90:40 "W")
axlGRPDrwLine(handle list(180:70 200:70))
axlGRPDrwLine(handle list(180:130 200:130))
axlGRPDrwText(handle 180:90 "H")
axlGRPDrwLine(handle list(80:140 80:160))
axlGRPDrwLine(handle list(120:140 120:160))
axlGRPDrwText(handle 90:140 "D1")
)
(form->var->oval_oval_hole
putprop(handle "red" 'color)
axlGRPDrwCircle(handle 60:100 30)
axlGRPDrwCircle(handle 140:100 30)
axlGRPDrwRectangle(handle 60:70 140:130)
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 80:100 20)
axlGRPDrwCircle(handle 120:100 20)
axlGRPDrwRectangle(handle 80:80 120:120)
axlGRPDrwLine(handle list(30:60 30:40))
axlGRPDrwLine(handle list(170:60 170:40))
axlGRPDrwText(handle 90:40 "W")
axlGRPDrwLine(handle list(180:70 200:70))
axlGRPDrwLine(handle list(180:130 200:130))
axlGRPDrwText(handle 180:90 "H")
axlGRPDrwLine(handle list(20:80 0:80))
axlGRPDrwLine(handle list(20:120 0:120))
axlGRPDrwText(handle 0:90 "D1")
axlGRPDrwLine(handle list(60:140 60:160))
axlGRPDrwLine(handle list(140:140 140:160))
axlGRPDrwText(handle 90:140 "D2")
)
(form->var->nth_hole
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 100:100 30)
axlGRPDrwLine(handle list(140:70 160:70))
axlGRPDrwLine(handle list(140:130 160:130))
axlGRPDrwText(handle 140:90 "D1")
)
)
)
(form->var->padtype == "padtype_via"
axlGRPDrwMapWindow(handle 200 200)
putprop(handle "white" 'color)
putprop(handle "filled" 'fill)
axlGRPDrwRectangle(handle 0:0 200:200)
putprop(handle "blue" 'color)
axlGRPDrwCircle(handle 100:100 60)
putprop(handle "black" 'color)
axlGRPDrwCircle(handle 100:100 30)
axlGRPDrwLine(handle list(40:60 40:10))
axlGRPDrwLine(handle list(160:60 160:10))
axlGRPDrwText(handle 90:10 "D0")
axlGRPDrwLine(handle list(170:70 190:70))
axlGRPDrwLine(handle list(170:130 190:130))
axlGRPDrwText(handle 170:90 "D1")
)
)
)
)
procedure( create_pad_RenamePad(form)
let((ttW ttH ttD1 ttD2)
case(form->var->padtype
("padtype_smd"
if(form->var->unitsel == "mm" then
ttW = parseString(sprintf(nil "%.2f" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%.2f" form->var->value_H) ".")
else
ttW = parseString(sprintf(nil "%L" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%L" form->var->value_H) ".")
)
cond(
(form->var->rec_pad
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "smd%sm%s_%sm%s" car(ttW) cadr(ttW) car(ttH) cadr(ttH))
else
form->var->pad_name = sprintf(nil "smd%s_%s" car(ttW) car(ttH))
)
)
(form->var->cir_pad
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "ball%sm%s" car(ttW) cadr(ttW))
else
form->var->pad_name = sprintf(nil "ball%s" car(ttW))
)
)
(form->var->obl_pad
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "smd%sm%s_%sm%sob" car(ttW) cadr(ttW) car(ttH) cadr(ttH))
else
form->var->pad_name = sprintf(nil "smd%s_%sob" car(ttW) car(ttH))
)
)
)
)
("padtype_hole"
if(form->var->unitsel == "mm" then
ttW = parseString(sprintf(nil "%.2f" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%.2f" form->var->value_H) ".")
ttD1 = parseString(sprintf(nil "%.2f" form->var->value_D1) ".")
ttD2 = parseString(sprintf(nil "%.2f" form->var->value_D2) ".")
else
ttW = parseString(sprintf(nil "%L" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%L" form->var->value_H) ".")
ttD1 = parseString(sprintf(nil "%.2f" form->var->value_D1) ".")
ttD2 = parseString(sprintf(nil "%.2f" form->var->value_D2) ".")
)
cond(
(form->var->cir_cir_hole
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "pad%sm%scir%sm%sd" car(ttW) cadr(ttW) car(ttH) cadr(ttH))
else
form->var->pad_name = sprintf(nil "pad%scir%sd" car(ttW) car(ttH))
)
)
(form->var->cir_Rec_hole
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "pad%sm%ssq%sm%sd" car(ttW) cadr(ttW) car(ttH) cadr(ttH))
else
form->var->pad_name = sprintf(nil "pad%ssq%sd" car(ttW) car(ttH))
)
)
(form->var->cir_oval_hole
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "pad%sm%sx%sm%sob%sm%sd" car(ttW) cadr(ttW) car(ttH) cadr(ttH) car(ttD1) cadr(ttD1))
else
form->var->pad_name = sprintf(nil "pad%sx%sob%sd" car(ttW) car(ttH) car(ttD1))
)
)
(form->var->oval_oval_hole
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "pad%sm%sx%sm%sob%sm%sx%sm%sd" car(ttW) cadr(ttW) car(ttH) cadr(ttH) car(ttD1) cadr(ttD1) car(ttD2) cadr(ttD2))
else
form->var->pad_name = sprintf(nil "pad%sx%sob%sx%sd" car(ttW) car(ttH) car(ttD1) car(ttD2))
)
)
(form->var->nth_hole
if(form->var->unitsel == "mm" then
form->var->pad_name = sprintf(nil "npad%sm%scir" car(ttH) cadr(ttH))
else
form->var->pad_name = sprintf(nil "npad%scir" car(ttH))
)
)
)
)
("padtype_via"
if(form->var->unitsel == "mm" then
ttW = parseString(sprintf(nil "%.2f" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%.2f" form->var->value_H) ".")
form->var->pad_name = sprintf(nil "via%sm%s_%sm%s" car(ttW) cadr(ttW) car(ttH) cadr(ttH))
else
ttW = parseString(sprintf(nil "%L" form->var->value_W) ".")
ttH = parseString(sprintf(nil "%L" form->var->value_H) ".")
form->var->pad_name = sprintf(nil "via%s_%s" car(ttW) car(ttH))
)
)
)
)
)
procedure( create_pad_CreateAction(form)
let((ttW ttH ttD1 ttD2 ttS figure file)
file = nil
case(form->var->padtype
("padtype_smd"
if(form->var->unitsel == "mm" then
ttW = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_W))
ttH = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_H))
ttS = axlMKS2UU(sprintf(nil "%.2f mm" form->var->sold_val))
else
ttW = axlMKS2UU(sprintf(nil "%L mil" form->var->value_W))
ttH = axlMKS2UU(sprintf(nil "%L mil" form->var->value_H))
ttS = axlMKS2UU(sprintf(nil "%L mil" form->var->sold_val))
)
cond(
(form->var->rec_pad
figure = 'RECTANGLE
when(ttH == ttW
figure = 'SQUARE
)
)
(form->var->cir_pad
figure = 'CIRCLE
ttH = ttW
)
(form->var->obl_pad
figure = 'OBLONG_X
)
)
pad_list = cons(make_axlPadStackPad(?layer "TOP" ?type 'REGULAR
?figure figure ?figureSize (ttW:ttH)) nil
)
pad_list = cons(make_axlPadStackPad(?layer "SOLDERMASK_TOP" ?type 'REGULAR
?figure figure ?figureSize (ttW+ttS):(ttH+ttS)) pad_list
)
pad_list = cons(make_axlPadStackPad(?layer "PASTEMASK_TOP" ?type 'REGULAR
?figure figure ?figureSize (ttW:ttH)) pad_list
)
axlDBCreatePadStack(form->var->pad_name nil pad_list t)
when(axlPadstackToDisk(form->var->pad_name)
file = strcat(form->var->pad_name ".pad")
PLACEPIN = axlFormGetField(form "PLACEPIN")
if(axlDBGetDesign()->symbols == nil then
place_pin(form->var->pad_name)
else
axlMsgPut("This Place Mode only can use in dra file")
)
axlMsgPut("Create Done!")
)
)
("padtype_hole" | "padtype_via"
if(form->var->unitsel == "mm" then
ttW = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_W))
ttH = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_H))
ttD1 = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_D1))
ttD2 = axlMKS2UU(sprintf(nil "%.2f mm" form->var->value_D2))
ttS = axlMKS2UU(sprintf(nil "%.2f mm" form->var->sold_val))
else
ttW = axlMKS2UU(sprintf(nil "%L mil" form->var->value_W))
ttH = axlMKS2UU(sprintf(nil "%L mil" form->var->value_H))
ttD1 = axlMKS2UU(sprintf(nil "%L mil" form->var->value_D1))
ttD2 = axlMKS2UU(sprintf(nil "%L mil" form->var->value_D2))
ttS = axlMKS2UU(sprintf(nil "%L mil" form->var->sold_val))
)
drill_data = make_axlPadStackDrill(?drillDiameter ttD1 ?figure 'CIRCLE
?drillChar sprintf(nil "%L" ttD1) ?figureSize ttD1:ttD1 ?plating 'PLATED
)
cond(
(form->var->cir_cir_hole || form->var->padtype == "padtype_via"
figure = 'CIRCLE
ttH = ttW
)
(form->var->cir_Rec_hole
figure = 'SQUARE
ttH = ttW
)
(form->var->cir_oval_hole
figure = 'OBLONG_X
)
(form->var->oval_oval_hole
figure = 'OBLONG_X
drill_data = make_axlPadStackDrill(?holeType 'OVAL_SLOT ?slotSize ttD2:ttD1
?figure 'OBLONG_X ?drillChar sprintf(nil "%L" ttD1) ?plating 'PLATED
)
)
(form->var->nth_hole
drill_data = make_axlPadStackDrill(?drillDiameter ttD1 ?figure 'CIRCLE
?drillChar sprintf(nil "%L" ttD1) ?figureSize ttD1:ttD1 ?plating 'NON_PLATED
)
figure = 'CIRCLE
ttD1 = ttH
ttW = ttH
)
)
pad_list = cons(make_axlPadStackPad(?layer "TOP" ?type 'REGULAR
?figure figure ?figureSize ttW:ttH) nil
)
pad_list = cons(make_axlPadStackPad(?layer "DEFAULT INTERNAL" ?type 'REGULAR
?figure figure ?figureSize ttW:ttH) pad_list
)
pad_list = cons(make_axlPadStackPad(?layer "BOTTOM" ?type 'REGULAR
?figure figure ?figureSize ttW:ttH) pad_list
)
unless(ttS == 0
pad_list = cons(make_axlPadStackPad(?layer "SOLDERMASK_TOP" ?type 'REGULAR
?figure figure ?figureSize (ttW+ttS):(ttH+ttS)) pad_list
)
pad_list = cons(make_axlPadStackPad(?layer "SOLDERMASK_BOTTOM" ?type 'REGULAR
?figure figure ?figureSize (ttW+ttS):(ttH+ttS)) pad_list
)
)
axlDBCreatePadStack(form->var->pad_name drill_data pad_list t)
when(axlPadstackToDisk(form->var->pad_name)
file = strcat(form->var->pad_name ".pad")
axlMsgPut( "Pad create down" ) ;;;;;;<<
PLACEPIN = axlFormGetField(form "PLACEPIN")
if(axlDBGetDesign()->symbols == nil then
place_pin(form->var->pad_name)
else
axlMsgPut("This Place Mode only can use in dra file")
)
axlMsgPut("Create Done!")
)
)
)
file
)
)
procedure( place_pin(pin_name)
ScriptFileName=axlTempFile()
Script_File=axlDMOpenFile("Grid_SCRIPT", ScriptFileName, "w")
fprintf(Script_File "scriptmode +i\n\n")
fprintf(Script_File "setwindow pcb\n")
fprintf(Script_File "add pin\n")
fprintf(Script_File "setwindow form.mini\n")
fprintf(Script_File "FORM mini pad_browse\n")
fprintf(Script_File "fillin %L\n" pin_name)
fprintf(Script_File "setwindow pcb\n")
axlDMClose(Script_File)
sprintf(runScript,"replay %s",ScriptFileName)
axlShell(runScript)
deleteFile(ScriptFileName)
axlMsgPut(strcat(">> " pin_name " placed done!"))
)
以下为视窗文件
#档名请命名为 create_pad_form.il
FILE_TYPE=FORM_DEFN VERSION=2
FORM
FIXED
PORT 60 35
HEADER "Pad Creater"
TILE
GROUP "Pad Info:"
GLOC 1 3
GSIZE 37 25
ENDGROUP
TEXT "Pad Type"
TLOC 3 1
ENDTEXT
POPUP <padtype_pop> "" ""
FIELD padtype
FLOC 11 1
ENUMSET 8
POP "padtype_pop"
ENDFIELD
TEXT "Unit"
TLOC 23 1
ENDTEXT
POPUP <unitsel_pop> "mm" "mm","mil" "mil"
FIELD unitsel
FLOC 27 1
ENUMSET 4
POP "unitsel_pop"
ENDFIELD
FIELD pad_view
THUMBNAIL
FLOC 3 6
FSIZE 15 10
ENDFIELD
FIELD rec_pad
FLOC 20 7
CHECKLIST "Rectangle" "smd"
ENDFIELD
FIELD cir_pad
FLOC 20 10
CHECKLIST "Circle" "smd"
ENDFIELD
FIELD obl_pad
FLOC 20 13
CHECKLIST "Oblone" "smd"
ENDFIELD
FIELD cir_cir_hole
FLOC 20 6
CHECKLIST "metal_round(Circle)" "hole"
ENDFIELD
FIELD cir_Rec_hole
FLOC 20 8
CHECKLIST "metal_round(Rec)" "hole"
ENDFIELD
FIELD cir_oval_hole
FLOC 20 10
CHECKLIST "metal_round(Oblone)" "hole"
ENDFIELD
FIELD oval_oval_hole
FLOC 20 12
CHECKLIST "metal_oblone(Oblone)" "hole"
ENDFIELD
FIELD nth_hole
FLOC 20 14
CHECKLIST "Not_metal_round" "hole"
ENDFIELD
TEXT "Pad Name:"
TLOC 2 18
ENDTEXT
FIELD pad_name
FLOC 10 18
STRFILLIN 20 50
ENDFIELD
TEXT "W"
TLOC 3 21
INFO W_name 7
ENDTEXT
FIELD value_W
FLOC 5 21
REALFILLIN 5 5
ENDFIELD
TEXT "H"
TLOC 12 21
INFO H_name 7
ENDTEXT
FIELD value_H
FLOC 14 21
REALFILLIN 5 5
ENDFIELD
TEXT "D1"
TLOC 3 24
INFO D1_name 7
ENDTEXT
FIELD value_D1
FLOC 6 24
REALFILLIN 4 4
ENDFIELD
TEXT "D2"
TLOC 12 24
INFO D2_name 7
ENDTEXT
FIELD value_D2
FLOC 15 24
REALFILLIN 4 4
ENDFIELD
TEXT "SolderMask + "
TLOC 21 21
ENDTEXT
FIELD sold_val
FLOC 32 21
REALFILLIN 4 4
ENDFIELD
FIELD cpad
FLOC 27 30
MENUBUTTON "Create" 10 4
ENDFIELD
FIELD PLACEPIN
FLOC 15 31
CHECKLIST "Place Pin"
ENDFIELD
ENDTILE
ENDFORM
*Error* eval: unbound variable - \302\240 用不了哦 sh_michael 发表于 2024-3-27 10:40
*Error* eval: unbound variable - \302\240 用不了哦
你没有去allegro.ilinit里新增
load("create_pad.il")
不知道allegro.ilinit在哪,可以于allegro内输入
echo $localenv
即可查看skill目录,例如: C:/SPB_Data
那skill主目录通常就是 C:/SPB_Data/pcbenv
> 也请将两个档案也放置于/pcbenv目录下 用不了:) 我也是用不了啊:)
页:
[1]