Commit 616dcdb3 authored by Scott Sun's avatar Scott Sun

scott

parent f4212ebf
......@@ -147,13 +147,14 @@ var resultData = [];
var par = PAR;
var default_par = {
units:"mm",
cover_layer_suffix: "_cover",
ss_to_sm: 10, // 文字距离阻焊
ss_to_smd: 10, // 文字距离SMD
ss_to_bga: 10, // 文字距离bga
text_height: 1, // 文字最大高度
bk_suffix: "_bk", // 备份层后缀
silk_suffix: "_font", // 分离的文字层后缀
cover_layer_suffix: "_cover",
tol: 1,
select_lyr: "no",
step: "unit",
auto_save: "No",
......@@ -173,15 +174,17 @@ try {
if(mode == "aimdfm"){ if(GEN.checkInout({job:job,mode:"test"}) != 0){ throw "the job check" } else { GEN.checkInout({job:job,mode:"out"}) } }
var err = createCoverLayer() // 创建套层
if (err) {throw err}
var err = ssFrameSeparate() // 分离文字和文字框
if (err) {throw err}
// var err = createCoverLayer() // 创建套层
// if (err) {throw err}
// var err = ssFrameSeparate() // 分离文字和文字框
// if (err) {throw err}
var err = slBoxOptimize() // 文字框优化
if (err) {throw err}
// var err = slOptimize() // 文字优化
// if (err) {throw err}
......@@ -314,7 +317,6 @@ function createCoverLayer (props){
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.clearLayers()
}
// 字符 和 文字框分开
function ssFrameSeparate () {
// 1. step过滤
......@@ -446,7 +448,6 @@ function ssFrameSeparate () {
if ( GEN.getSelectCount() > 0 ){
GEN.createLayer({job:job,layer:cover_lyr_2,delete_exists:'yes'});
GEN.selCopyOther({target_layer:cover_lyr_2,invert:'no'});
}
GEN.affectedLayer({affected:'yes',layer:[ss_line_arc],clear_before:'yes'});
GEN.selContourize();
......@@ -518,86 +519,300 @@ function ssFrameSeparate () {
})
}
GEN.COM("disp_on")
var ref_layers = work_layers.filter(function(layer){ return GEN.isLayerExists({job:job, layer:layer + par.silk_suffix}) }).map(function(layer){
return {
work_layer: layer,
ref_layer: layer + par.silk_suffix
}
})
if(ref_layers.length > 0) {
ref_layers.forEach(function(layerInfo){
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.clearLayers()
var work_layer = layerInfo.work_layer;
var ref_layer = layerInfo.ref_layer;
IKM.msg(work_layer+"层字框分离");
GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
if(correct(work_layer)){ var tmp = work_layer; work_layer = ref_layer,ref_layer = tmp; }
GEN.displayLayer({name:ref_layer,number:2});
var flag = true;
IKM.msg("请选择需移动的文字或者的文字框,不需制作了请【左键框选空白处】")
while(flag){
var tmp_con = GEN.MOUSE({type:'r',text:"Please Select"});
GEN.COM("filter_area_strt")
GEN.COM("filter_area_xy,x="+tmp_con.x1+",y="+tmp_con.y1)
GEN.COM("filter_area_xy,x="+tmp_con.x2+",y="+tmp_con.y2)
GEN.COM("filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=no")
if(GEN.getSelectCount() > 0){
if(correct(work_layer)){ var tmp = work_layer; work_layer = ref_layer,ref_layer = tmp; }
GEN.selSubstitute({tol:1,mode:'select'});
GEN.selMoveOther({target_layer:ref_layer,invert:'no'});
} else {
flag = false;
}
}
})
}
})
}
// 文字框按阻焊扩大
function slBoxOptimize(){
// 1. step过滤
var workstep = getWorkStep()
if(!Array.isArray(workstep)){throw "工作step错误"}
// 2.过滤工作层
var work_layers = getLayer({layer_type:"silk_screen", context: "board"})
if(/yes/ig.test(par.select_lyr)){
var matrix = GEN.getMatrix({job:job});
var layers = Object.keys(matrix).map(function(key){
var tmp ={};
tmp[key] = key;
return tmp
})
work_layers = gui.selectMultiple({title: "请先择工作层",list: layers,defaultvalue: work_layers,columns: 4,gen: GEN})
}
if(work_layers.length == 0 ) {return "没有先择layer"}
var ref_layers = work_layers.filter(function(layer){ return GEN.isLayerExists({job:job, layer:layer + par.silk_suffix}) })
// if(ref_layers.length > 0) {
// GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
// while (1) {
// LOOP:
// GEN.COM('disp_on');
// while(1){
// work_layer = GEN.getWorkLayer();
// last if (grep($_ eq work_layer ,@work_layers) or grep($_.$PAR->{silk_suffix} eq work_layer ,@work_layers));
// update_loading("请选择一个文字层或者文字框层设为工作层",0,position:'n');
// my $ans = GEN.PAUSE('Please Set Work Layer');
// return 'Cancel' unless $ans eq 'OK';
// }
// // 给出默认移动层
// if (grep($_ eq work_layer ,@work_layers)) {
// ref_layer = work_layer.$PAR->{silk_suffix};
// }else if(grep($_.$PAR->{silk_suffix} eq work_layer ,@work_layers)){
// ref_layer = work_layer;
// ref_layer =~ s/\Q$PAR->{silk_suffix}\E$//;
// }
// if (! GEN.isLayerExists({job:job,layer:ref_layer}) ){
// IKM.msg("没有找到对应层"+ref_layer+" ,请重新选择工作层!")
// goto LOOP;
// }
// GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
// GEN.displayLayer({name:ref_layer,number:2});
// update_loading("请选择需移动的文字或者的文字框,不需制作了请【左键框选空白处】",0,position:'n');
// var tmp_con = GEN.MOUSE({type:'r',text:"Please Select"});
// work_layer = GEN.getWorkLayer();
// GEN.COM('disp_off');
// // 允许人员手动换工作层,重新判断移动层
// if (grep($_ eq work_layer ,@work_layers)) {
// ref_layer = work_layer.$PAR->{silk_suffix};
// }else if(grep($_.$PAR->{silk_suffix} eq work_layer ,@work_layers)){
// ref_layer = work_layer;
// ref_layer =~ s/\Q$PAR->{silk_suffix}\E$//;
// }
// if (! GEN.isLayerExists({job:job,layer:ref_layer}) ){
// IKM.msg("没有找到对应层"+ref_layer+" ,请重新选择工作层!")
// goto LOOP;
// }
// // GEN.workLayer(name:work_layer,display_number:1,clear_before:'yes');
// GEN.displayLayer({name:ref_layer,number:2});
// if ( GEN.getSelectCount() > 0 ){
// GEN.selSubstitute({tol:1,mode:'select'});
// GEN.selMoveOther({target_layer:ref_layer,invert:'no'});
// }else{
// GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
// GEN.selectByFilter({area_rect:tmp_con});
// if ( GEN.getSelectCount() > 0 ){
// GEN.selSubstitute({tol:1,mode:'select'});
// GEN.selMoveOther({target_layer:ref_layer,invert:'no'});
// }
// else{
// GEN.COM('disp_on');
// last;
// }
// }
// }
// } else {
// IKM.msg("没有找到文字框和对应的文字层,程序将退出。")
// }
var matrix = GEN.getMatrix({job:job})
workstep.forEach(function(step){
var units = par.units;
GEN.openStep({job:job,name:step});
GEN.units({ type:units });
GEN.COM( "sel_options,clear_mode=clear_after,display_mode=all_layers,area_inout=inside,area_select=select,select_mode=standard,area_touching_mode=exclude");
GEN.zoomHome();
var ref_layers = work_layers.filter(function(layer){ return GEN.isLayerExists({job:job, layer:layer + par.cover_layer_suffix}) }).map(function(layer){
return {
work_layer: layer,
ref_layer: layer + par.cover_layer_suffix
}
})
if(ref_layers.length > 0) {
ref_layers.forEach(function(layerInfo){ // {"work_layer":"gto","ref_layer":"gto_cover"}
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.clearLayers()
var work_layer = layerInfo.work_layer;
var ref_layer = layerInfo.ref_layer;
var tmp1 = 'tl_script_tmp1', tmp2 = "tl_script_tmp2";
delLayer([tmp1, tmp2]);
GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
GEN.displayLayer({name:ref_layer,number:2});
// 放大
var ref_pad = "tmp_ref_pad"; delLayer([ref_pad]);
GEN.createLayer({job:job,layer:ref_pad,context:'misc',type:'document'});
var flag = true;
IKM.msg("请选择需放大的文字框,不需制作了请【左键框选空白处】")
while(flag){
var tmp_con = GEN.MOUSE({type:'r',text:"Please Select"});
GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
GEN.COM("filter_area_strt")
GEN.COM("filter_area_xy,x="+tmp_con.x1+",y="+tmp_con.y1)
GEN.COM("filter_area_xy,x="+tmp_con.x2+",y="+tmp_con.y2)
GEN.COM("filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=no")
if(GEN.getSelectCount() > 0){
selCopyOther({layer: tmp1})
// 判断特殊倾斜情况
var layer_feature = GEN.getFeatures({job:job,step:step,layer:tmp1})
// [{"type":"line","xs":"2.6998077","ys":"3.321854","xe":"2.6998077","ye":"3.4104367","symbol":"r7","polarity":"positive","attributes":[]},{"type":"line","xs":"2.6998077","ys":"3.321854","xe":"2.8912643","ye":"3.321854","symbol":"r7","polarity":"positive","attributes":[]},{"type":"line","xs":"2.6998077","ys":"3.4104367","xe":"2.8912643","ye":"3.4104367","symbol":"r7","polarity":"positive","attributes":[]},{"type":"line","xs":"2.8912643","ys":"3.321854","xe":"2.8912643","ye":"3.4104367","symbol":"r7","polarity":"positive","attributes":[]}]
// 1.算出最长边的角度
var angle = getAngle(layer_feature)
if (angle %90 == 0) {angle = 0}
if (angle < 0){angle = 90 + angle}
// 求中心点
GEN.workLayer({name:ref_layer,display_number:1,clear_before:'yes'});
var layer_limits_tmp1 = GEN.getLayerLimits({job:job,step:step,layer:tmp1,units:units});
GEN.selectByFilter({area_rect:{x1:layer_limits_tmp1.xmin-0.01,y1:layer_limits_tmp1.ymin-0.01,x2:layer_limits_tmp1.xmax+0.01,y2:layer_limits_tmp1.ymax+0.01}});
selCopyOther({layer: "tmp_center"})
var layer_limits_tmp = GEN.getLayerLimits({job:job,step:step,layer:"tmp_center",units:units});
layer_limits_tmp.xc = layer_limits_tmp.xmin - 0 + layer_limits_tmp.xsize/2;
layer_limits_tmp.yc = layer_limits_tmp.ymin - 0 + layer_limits_tmp.ysize/2;
delLayer("tmp_center")
GEN.clearLayers()
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.affectedLayer({affected:'yes',layer:[work_layer,tmp1]})
GEN.COM("filter_area_strt")
GEN.COM("filter_area_xy,x="+tmp_con.x1+",y="+tmp_con.y1)
GEN.COM("filter_area_xy,x="+tmp_con.x2+",y="+tmp_con.y2)
GEN.COM("filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=no")
// 更具角度将其旋转
GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:layer_limits_tmp.xc,y_anchor:layer_limits_tmp.yc,angle:angle})
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.workLayer({name:ref_layer,display_number:1,clear_before:'yes'});
GEN.selectByFilter({area_rect:{x1:layer_limits_tmp1.xmin-0.01,y1:layer_limits_tmp1.ymin-0.01,x2:layer_limits_tmp1.xmax+0.01,y2:layer_limits_tmp1.ymax+0.01}});
GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:layer_limits_tmp.xc,y_anchor:layer_limits_tmp.yc,angle:angle})
GEN.copyLayer({source_job:job,source_step:step,source_layer:tmp1,dest_layer:tmp2,mode:'replace',invert:'no'});
var text_tmp = 'tl_tmp_text';
GEN.copyLayer({source_job:job,source_step:step,source_layer:tmp1,dest_layer:text_tmp,mode:'replace',invert:'no'});
var layer_limits = GEN.getLayerLimits({job:job,step:step,layer:text_tmp,units:units});
layer_limits.xc = layer_limits.xmin - 0 + layer_limits.xsize/2;
layer_limits.yc = layer_limits.ymin - 0 + layer_limits.ysize/2;
var scalex=1,scaley=1;
GEN.affectedLayer({affected:'yes',layer:[ref_layer],clear_before:'yes'});
GEN.selectByFilter({area_rect:{x1:layer_limits.xmin-0.01,y1:layer_limits.ymin-0.01,x2:layer_limits.xmax+0.01,y2:layer_limits.ymax+0.01}});
if ( GEN.getSelectCount() > 0 ){
GEN.selCopyOther({target_layer:ref_pad,invert:'no'});
var layer_limits_pad = GEN.getLayerLimits({job:job,step:step,layer:ref_pad,units:units});
var feature = GEN.getFeatures({job:job,step:step,layer:tmp1,units:units});
var line_width = feature[0].symbol.slice(1) / 1000;
var tmp_ps = 0.004;
if (units == "mm"){tmp_ps = tmp_ps*25.4}
// {"layer_limits_pad":{"xmin":"68.6901125","ymin":"84.4900925","xmax":"73.310115","ymax":"86.5100925",
// "xsize":4.620002499999998,"ysize":2.019999999999996},"line_width":0.1778,
// "layer_limits":{"xmin":"68.486215","ymin":"84.2861925","xmax":"73.527","ymax":"86.714",
// "xsize":5.040785,"ysize":2.4278075,"xc":71.0066075,"yc":85.50009625}}
scalex = (Number(layer_limits_pad.xsize)+line_width*2+tmp_ps)/(layer_limits.xsize);
if(scalex < 1) {scalex = 1 }
scaley = (Number(layer_limits_pad.ysize)+line_width*2+tmp_ps)/(layer_limits.ysize);
if(scaley < 1) {scaley = 1 }
}
delLayer(text_tmp)
GEN.affectedLayer({affected:'yes',layer:[tmp1],clear_before:'yes'});
GEN.selTransform({mode:'anchor',oper:'scale',x_anchor:layer_limits_tmp.xc,y_anchor:layer_limits_tmp.yc,x_scale:scalex,y_scale:scaley})
// {"mode":"anchor","oper":"scale","x_anchor":71.0066075,"y_anchor":85.50009625,"x_scale":1,"y_scale":1}
// 检查是否含单根线
var tmp = 'tl-'+tmp1+'tmp1++';
var _tmp2 = 'tl-'+tmp1+'tmp2++';
var tmp3 = 'tl-'+tmp1+'-alone';
var cale_x = scalex; // ?
var cale_y = scaley; // ?
GEN.createLayer({job:job,layer:tmp,context:'misc',type:'document',delete_exists:'yes'});
GEN.createLayer({job:job,layer:tmp3,context:'misc',type:'document',delete_exists:'yes'});
GEN.selCopyOther({target_layer:tmp,invert:'no'});
GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp,clear_before:'yes'});
GEN.selContourize();
GEN.DO_INFO("-t layer -e "+job+"/"+step+"/"+tmp+" -d FEAT_HIST");
if (GEN.INFO_RESULT.gFEAT_HISTsurf > 0) {
for(var i=1;i <= GEN.INFO_RESULT.gFEAT_HISTsurf;i++){
GEN.createLayer({job:job,layer:_tmp2,context:'misc',type:'document',delete_exists:'yes'});
GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp,clear_before:'yes'});
GEN.COM('sel_layer_feat',{operation:'select',layer:tmp,index:i});
GEN.selCopyOther({target_layer:_tmp2,invert:'no'});
GEN.affectedLayer({affected:'yes',mode:'single',layer:_tmp2,clear_before:'yes'});
GEN.COM('sel_surf2outline',{width:1});
GEN.COM('filter_reset',{filter_name:'popup'});
GEN.selectByFilter({feat_types:'arc',polarity:'positive',profile:'all'});
if (GEN.getSelectCount() > 0) {GEN.selDelete() } ;
var feat = GEN.getFeatures({job:job,step:step,layer:_tmp2});
var hash = {};
for(var i=0;i < feat;i++){
for(var k = i+1;k < feat; k++){
if ((feat[i].xs == feat[k].xs && feat[i].ys == feat[k].ys) ||
(feat[i].xs == feat[k].xe && feat[i].ys == feat[k].ye) ){
if(!hash[i+'star']){hash[i+'star'] = {}}
hash[i+'star'][x] = feat[i].xs;
hash[i+'star'][y] = feat[i].ys;
}
if ((feat[i].xe == feat[k].xs && feat[i].ye == feat[k].ys) ||
(feat[i].xe == feat[k].xe && feat[i].ye == feat[k].ye)) {
if(!hash[i+'end']){hash[i+'end'] = {}}
hash[i+'end'][x] = feat[i].xe;
hash[i+'end'][y] = feat[i].ye;
}
}
}
if (Object.keys(hash).length == 0) {
GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp1,clear_before:'yes'});
GEN.selRefFeat({layers:_tmp2,use:'filter',mode:'touch'});
if ( GEN.getSelectCount() > 0 ){
GEN.COM('sel_move_other',{target_layer:tmp3,invert:'no',dx:0,dy:0,size:0,x_anchor:0,y_anchor:0,rotation:0,mirror:'none'});
var change_scal_x = (1 / cale_x).toFixed(3) - 0;
var change_scal_y = (1 / cale_y).toFixed(3) - 0;
GEN.affectedLayer({affected:'yes',mode:'single',layer:tmp3,clear_before:'yes'});
GEN.selTransform({mode:'axis',oper:'scale',x_anchor:0,y_anchor:0,x_scale:change_scal_x,y_scale:change_scal_y});
// {"mode":"axis","oper":"scale","x_anchor":0,"y_anchor":0,"x_scale":1,"y_scale":1}
GEN.COM('sel_move_other',{target_layer:tmp1,invert:'no',dx:0,dy:0,size:0,x_anchor:0,y_anchor:0,rotation:0,mirror:'none'});
GEN.deleteLayer({job:job,layer:tmp3,step:step});
}
}
}
GEN.deleteLayer({job:job,layer:_tmp2,step:step});
GEN.deleteLayer({job:job,layer:tmp,step:step});
}else{
GEN.deleteLayer({job:job,layer:tmp,step:step});
if (GEN.isLayerEmpty({job:job,step:step,layer:tmp3})) {
GEN.deleteLayer({job:job,layer:tmp3,step:step});
}
}
// 转回去
GEN.clearLayers()
GEN.affectedLayer({affected:'yes',layer:[work_layer,tmp1,tmp2], clear_before:"yes"})
GEN.COM("filter_area_strt")
GEN.COM("filter_area_xy,x="+tmp_con.x1+",y="+tmp_con.y1)
GEN.COM("filter_area_xy,x="+tmp_con.x2+",y="+tmp_con.y2)
GEN.COM("filter_area_end,layer=,filter_name=popup,operation=select,area_type=rectangle,inside_area=yes,intersect_area=no")
GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:layer_limits_tmp.xc,y_anchor:layer_limits_tmp.yc,angle:360-angle})
GEN.affectedLayer({affected:'no',mode:'all'})
GEN.workLayer({name:ref_layer,display_number:1,clear_before:'yes'});
if(GEN.isLayerExists({ job:job,step:step,layer:ref_pad})){GEN.affectedLayer({affected:'yes',layer:ref_pad})}
GEN.selectByFilter({area_rect:{x1:layer_limits_tmp1.xmin-0.01,y1:layer_limits_tmp1.ymin-0.01,x2:layer_limits_tmp1.xmax+0.01,y2:layer_limits_tmp1.ymax+0.01}});
GEN.selTransform({mode:'anchor',oper:"rotate",x_anchor:layer_limits_tmp.xc,y_anchor:layer_limits_tmp.yc,angle:360-angle})
GEN.workLayer({name:tmp1,display_number:1,clear_before:'yes'});
GEN.displayLayer({name:work_layer,number:2});
if(!GEN.isLayerEmpty({ job:job,step:step,layer:ref_pad})){GEN.displayLayer({name:ref_layer,number:3})}
GEN.COM('disp_on');
var ans = GEN.PAUSE('Please Check...');
if(!/ok/ig.test(ans)){ throw "cancel" }
GEN.COM('disp_off');
var tmp_symbol = 'tl_script_tmp';
GEN.COM('sel_all_feat');
GEN.COM( "sel_create_sym,symbol="+tmp_symbol+",x_datum=0,y_datum=0,delete=no,fill_dx=0.1,fill_dy=0.1,attach_atr=no,retain_atr=no" );
GEN.workLayer({name:work_layer,display_number:1,clear_before:'yes'});
GEN.selRefFeat({layers:tmp2,use:'filter',mode:'cover'});
GEN.COM( "sel_substitute,mode=substitute,symbol="+tmp_symbol+",tol="+par.tol+",x_datum=0,y_datum=0,dcode=0" );
GEN.selectByFilter({include_syms:tmp_symbol});
if ( GEN.getSelectCount() > 0 ){GEN.selBreak()};
GEN.COM('disp_on');
GEN.COM('truncate_layer', {layer :tmp1});
GEN.COM('truncate_layer', {layer :tmp2});
GEN.COM('disp_on');
GEN.COM('sel_clear_feat');
GEN.units({type:units});
} else {
flag = false;
}
}
})
}
})
}
// 文字放大
function slOptimize() {
// 1. step过滤
var workstep = getWorkStep()
if(!Array.isArray(workstep)){throw "工作step错误"}
// 2.过滤工作层
var work_layers = getLayer({layer_type:"silk_screen", context: "board"})
if(/yes/ig.test(par.select_lyr)){
var matrix = GEN.getMatrix({job:job});
var layers = Object.keys(matrix).map(function(key){
var tmp ={};
tmp[key] = key;
return tmp
})
work_layers = gui.selectMultiple({title: "请先择工作层",list: layers,defaultvalue: work_layers,columns: 4,gen: GEN})
}
if(work_layers.length == 0 ) {return "没有先择layer"}
var matrix = GEN.getMatrix({job:job})
IKM.msg(work_layers)
// 文字框按阻焊扩大
}
// 文字放大
function selCopyOther(props){ // {layer , invent, dx, dy , size}
......@@ -758,6 +973,34 @@ function delLayer(layer){
}
layer = layer.filter(function(v){return GEN.isLayerExists({job:job, layer:v})})
if(layer.length){
GEN.deleteLayer({job:job, layer:[layer]})
GEN.deleteLayer({job:job, layer:layer})
}
}
function correct(work_layer){
var tmp = GEN.getWorkLayer();
return tmp !== work_layer;
}
function getAngle(features){ // 获取最长边的角度
features.sort(function(a,b){
a.length = getLineLength(a);
b.length = getLineLength(b);
return a.length - b.length
})
return getRodate(features[features.length - 1])
}
function getLineLength (line){
if (line.type != "line"){return 0}
return Math.sqrt((line.xe - line.xs)*(line.xe - line.xs) + (line.ye - line.ys)*(line.ye - line.ys))
}
function getRodate(props){
var xs = props.xs;
var ys = props.ys;
var xe = props.xe;
var ye = props.ye;
var y = ye - ys;
var x = xe - xs;
var r = Math.atan(y / x)
return r*180/Math.PI
}
\ No newline at end of file
......@@ -368,12 +368,19 @@ sub enlarge_slik_frame{
$scalex = 1 if $scalex < 1;
$scaley = ($layer_limits_pad->{ysize}+$line_width*2+0.004)/($layer_limits->{ysize});
$scaley = 1 if $scaley < 1;
#$GUI->debug(dump($scalex,'====',$scaley));
$GUI->debug(dump($layer_limits_pad));
$GUI->debug(dump($line_width));
$GUI->debug(dump($layer_limits));
# layer_limits_pad : {xmax:"2.886225",xmin:"2.7043351",xsize:"0.1818899",ymax:"3.4059092",ymin:"3.3263816",ysize:"0.0795276"}
# line_width : 0.007
# layer_limits : {xc:"2.795536",xmax:"2.8947643",xmin:"2.6963077",xsize:"0.1984566",yc:"3.36614535",ymax:"3.4139367",ymin:"3.318354",ysize:"0.0955826999999996"}
# (scalex:"1.00722223397962", "====", scaley:"1.02034782444941")
}
#else{
# next;
#}
##
$GEN->deleteLayer(job=>$Job,layer=>[$text_tmp]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment