◆- Adobe插件与脚本区 主要讨论Adobe插件开发与软件脚本撰写

发表新主题 关闭主题
 
只看楼主 主题工具
旧 2020-06-23, 12:57     #1
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认 AI脚本可以实现按指定宽高数值查找小于该数值的形状吗   



AI脚本可以实现 按指定宽高数值 查找 小于该数值的 形状 吗?
有坛友说AI 2020版本自带就有该功能,我还没有安装,有熟悉AI 2020
或者脚本制作的大神可以解答下疑惑吗?
song0985 当前离线  
旧 2020-06-23, 13:59   只看该作者   #2
jialan75 jialan75 当前离线
java爱好者
等级: 六袋长老
级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时
 
Uid: 140648
注册日期: 2010-01-12, 13:36
来自: 余姚
年龄: 34
帖子: 1580
感谢: 267
381 个帖子获得 891 次感谢
现金: 1854金币
资产: 1954金币
声望: 11 jialan75 向着好的方向发展
jialan75 jialan75 当前离线
java爱好者
等级: 六袋长老
级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时级别:85 | 在线时长:7735小时 | 升级还需:5小时
 
Uid: 140648
注册日期: 2010-01-12, 13:36
来自: 余姚
年龄: 34
帖子: 1580
感谢: 267
381 个帖子获得 891 次感谢
现金: 1854金币
资产: 1954金币
声望: 11 jialan75 向着好的方向发展
默认

var doc = app.activeDocument;
var pt = 72/25.4;



var rc = 2;//容差
var w = 200;
var h = 200;
var info = "大于";


if (doc.pathItems.length > 0 && doc.pathItems.length < 6000) {
var errorCount = 0;
for (j = 0; j < doc.pathItems.length; j++) {//循环开始修改颜色

try {
if(selectByWAndH(doc.pathItems[j],w*pt,h*pt,rc*pt,info)){
doc.pathItems[j].selected =true;
}

} catch (e) {
errorCount++;
}
}
if (errorCount != 0) {
alert("出错");
}
}



function selectByWAndH(shape,w,h,rc,info){
return isFuHeYao(shape.width,w,rc,info)&&isFuHeYao(shape.height,h,rc,info);
}

function isFuHeYao(x1,x2,rc,info){
if("小于"==info){
return x2+rc>x1;
}else if("大于"==info){
return x2<x1+rc;
}else if("等于"==info){
return Math.abs(x1-x2)<=rc;
}

}

不知道对不对,自己 有时候也有用。 就写了一个
jialan75 当前离线  
旧 2020-06-23, 16:59   只看该作者   #3
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认

我在网上找到一段类似的脚本信息,但是运行错误,不知道大神能不能解救。。。

说是该脚本可以通过设定好的数值来选择文档相关路径对象。
数值可以设为小于、等于或大于,选择方式分为尺寸、面积、宽、高四种。
按面积选择时,描边等不会被计算在内;包含复合路径会按整体数值计算选择。
包含锁定对象时,文档上所有的对象都会被解锁。

//////////////////////////////////////////////////////////////////
/* Notes:
*/
function Loadbar(x){
this.versionNum= app.version.split(".")[0] ;
if (this.versionNum >= 13){
this.w = new Window('window', "Processing...", undefined, {independent:true});
this.w.frameLocation = [600,500];
this.w.tracker = this.w.add ('statictext' , [15,15,250,35], "processing");
this.w.prog = this.w.add ('progressbar' , [15,15,250,35], 0, x);
//this.w.show();
}
}

Loadbar.prototype.close = function(){
if (this.versionNum >= 13){
this.w.close();
}
}
Loadbar.prototype.hide=function(){
if (this.versionNum >= 13){
this.w.hide();
}
}
Loadbar.prototype.show=function(){
if (this.versionNum >= 13){
this.w.show();
}
}
Loadbar.prototype.update=function(x){
if (this.versionNum >= 13){
this.w.prog.value = x;
}
}
Loadbar.prototype.label=function(x){
if (this.versionNum >= 13){
this.w.tracker.text = x;
}
}
if (app.documents.length > 0)
{
var doc = app.activeDocument;

var sel = doc.selection;
var defaultValue = .05;
if (sel.length == 1)
{
var seed = (sel[0].width + sel[0].height) /2;
if (seed != 0 || seed != null)
{
defaultValue = seed;
}
}
var OK = 1;
var by = "none";// flag for what method to walk objects selection/doc
var tolerance = .005;
var DISP_COLOR = new RGBColor();
DISP_COLOR.red = 0;
DISP_COLOR.green = 100;
DISP_COLOR.blue = 0;

var myVersion = Math.floor(version.split(".")[0]);
if (myVersion == 12 || myVersion == 11)
{
try{
//if version is CS2
var tVar = prompt("Enter the numeric threshold, use '>' for greater than and '<' for less than,\n i.e.; '>50' would mean 'greater than 50', to match exactly, just enter a number.","<"+defaultValue);// dlg.alertBtnsPnl2.slide.value;
if (tVar == null)
{
OK=3;
throw("end");
}
var tArr = tVar.split("");
var threshold = tVar;
var GT = false;
var LT = false;
var EQ = false;
if (tArr[0] == "<")
{
LT = true;
threshold = tVar.substr(1);
} else if (tArr[0] == ">")
{
GT = true;
threshold = tVar.substr(1);
} else {
EQ = true;
}
var CP_on = confirm("是否包含复合路径?");
var includeLocked = confirm("是否包含锁定对象?");
var dVal = prompt("Enter method for comparison, ('s'=size,'w'=width,'h'=height,'a'=area)","s");
if (dVal == null)
{
OK=3;
throw("end");
}

var dims = "size";
if (dVal == "w")
{
dims = "width";
} else if (dVal == "h")
{
dims = "height";
}else if (dVal == "a")
{
dims = "area";
}
}
catch(e){
// use "OK" values instead...
}
} else if (myVersion > 12)
{
//use advanced functionality
//--------------------------Dialog Box Code --------------------------------------------------------
var dlg = new Window('dialog', '选择指定路径对象');
dlg.location = [500,50];
// [startX, StartY, EndX, EndY]
dlg.alertBtnsPnl1 = dlg.add('group', undefined, 'Path Objects Size:');
// Radio Buttons for Larger than, or smaller than
(dlg.alertBtnsPnl1.selectLT = dlg.alertBtnsPnl1.add('radiobutton', [15,15,95,35], '小于' )).helpTip = "选择所有小于滑块设定值的对象。";
(dlg.alertBtnsPnl1.selectSS = dlg.alertBtnsPnl1.add('radiobutton', [15,15,75,35], '等于' )).helpTip = "选择所有等于滑块设定值的对象。";
(dlg.alertBtnsPnl1.selectGT = dlg.alertBtnsPnl1.add('radiobutton', [15,15,95,35], '大于' )).helpTip = "选择所有大于滑块设定值的对象。";
dlg.alertBtnsPnl1.selectLT.value = true;
dlg.alertBtnsPnl1.orientation='row';
// Set Size of threshold
dlg.alertBtnsPnl2 = dlg.add('group',undefined, 'Threshold:');
(dlg.alertBtnsPnl2.slide = dlg.alertBtnsPnl2.add('slider', [25,15,165,39], 'Set size of threshold object:')).helpTip = "拖动滑块以设定.";
dlg.alertBtnsPnl2.slide.value = defaultValue;
(dlg.alertBtnsPnl2.titleEt = dlg.alertBtnsPnl2.add('edittext', [100,15,160,35], dlg.alertBtnsPnl2.slide.value)).helpTip = "输入界限值";
dlg.alertBtnsPnl2.titleEt.text = roundOff(defaultValue);
(dlg.alertBtnsPnl2.titleSt = dlg.alertBtnsPnl2.add('statictext', [15,15,35,35], 'px')).helpTip = "单位:像素";
dlg.alertBtnsPnl2.orientation='row';
(dlg.dimsPnl = dlg.add('panel', undefined, '指定选择方式:')).helpTip = "设定选择对象的方式";
dlg.dimsPnl.orientation='row';
(dlg.dimsPnl.selectS = dlg.dimsPnl.add('radiobutton', [15,15,65,35], '尺寸' )).helpTip = "(宽*高)/2";
(dlg.dimsPnl.selectA = dlg.dimsPnl.add('radiobutton', [15,15,65,35], '面积' )).helpTip = "对象内部面积值。\n描边、阴影等不被计算;";
(dlg.dimsPnl.selectW = dlg.dimsPnl.add('radiobutton', [15,15,70,35], '宽度' )).helpTip = "根据对象宽度";
(dlg.dimsPnl.selectH = dlg.dimsPnl.add('radiobutton', [15,15,65,35], '高度' )).helpTip = "根据对象高度";
dlg.dimsPnl.selectA.value = true;
dlg.dimsPnl.selectS.onClick= setTextS;
dlg.dimsPnl.selectH.onClick= setTextH;
dlg.dimsPnl.selectA.onClick= setTextA;
dlg.dimsPnl.selectW.onClick= setTextW;

// Add a checkbox to control selection
dlg.alertBtnsPnl3 = dlg.add('group', undefined, '');
(dlg.hasBtnsCb = dlg.alertBtnsPnl3.add('checkbox', [25,25,235,39], '是否包含复合路径?')).helpTip="同时选中复合路径。";
(dlg.incLocked = dlg.alertBtnsPnl3.add('checkbox', [25,25,235,39], '是否包含锁定对象?')).helpTip="所有对象都会被解锁!";
dlg.hasBtnsCb.value = true;
dlg.incLocked.value = false;
dlg.alertBtnsPnl3.orientation='column';
dlg.btnPnl = dlg.add('group', undefined, 'Do It!');
dlg.btnPnl.orientation='row';
dlg.btnPnl.buildBtn1= dlg.btnPnl.add('button',[15,15,115,35], '取消', {name:'cancel'});
dlg.btnPnl.buildBtn2 = dlg.btnPnl.add('button', [125,15,225,35], '确定', {name:'ok'});
dlg.alertBtnsPnl2.slide.onChange= sliderChanged;
dlg.alertBtnsPnl2.titleEt.onChanging = eTextChanged;
dlg.btnPnl.buildBtn1.onClick= actionCanceled;
dlg.show();
// Translate dialog here:
var threshold = 1*(dlg.alertBtnsPnl2.titleEt.text);// dlg.alertBtnsPnl2.slide.value;
var CP_on = dlg.hasBtnsCb.value; //false; // ! confirm("Ignore compound path objects?");
var GT = dlg.alertBtnsPnl1.selectGT.value;
var EQ = dlg.alertBtnsPnl1.selectSS.value;
var LT = dlg.alertBtnsPnl1.selectLT.value;
var includeLocked = dlg.incLocked.value;
var dims = "size";
if (dlg.dimsPnl.selectW.value)
{
dims = "width";
} else if (dlg.dimsPnl.selectH.value)
{
dims = "height";
}else if (dlg.dimsPnl.selectA.value)
{
dims = "area";
}
} else {
OK = 2; // alert and close with "version" message
}// end version check
//--------------------------Main Code Section --------------------------------------------------------
var dObj = new Date();
var start = dObj.getTime();
var niceTime = (dObj.getMonth( )+1)+"-"+dObj.getDay( )+"-"+dObj.getFullYear( ).toString().substr(2)+"_"+dObj.getHours( )+"."+dObj.getMinutes( )+"."+dObj.getSeconds( );
var topLocked = doc.layers[0].locked;
if(OK==1){
//add a temporary layer for tracking
/* //too slow
var dispLayer = doc.layers.add();
var pointTextRef = dispLayer.textFrames.add();
pointTextRef.textRange.fillColor = DISP_COLOR;
pointTextRef.selected = false;
pointTextRef.top = doc.height/2;
pointTextRef.left = doc.width/2;
*/
var selItems = new Array();
//pointTextRef.contents = "Pre-Processing!!!";
//redraw();
var selLen = sel.length;
if(selLen >1){

by = "selection";
//
var b = new Loadbar(selLen);
b.label("Preprocessing Data...");
b.show();
// pointTextRef.top = selection[0].top;
// pointTextRef.left =selection[0].left;
// redraw();
// deselect Compound path items if not included
var cpLen = doc.compoundPathItems.length;
for (var cp=0;cp {
b.label("Deselecting Compound Pathitem "+cp+" of "+cpLen);
b.update(cp);
if(!CP_on){
doc.compoundPathItems[cp].selected = false;
}
}
var plen = doc.pathItems.length;
// Add selected path items to Array
var i = null;
for (var x=0;x {
b.label("Pre-Processing item "+x+" of "+plen);
b.update(x);
i = doc.pathItems[x];
if (i.selected== true )
{
selItems.push(i);
}
}

} else {
by = "doc";
//
// copy pathitems array to selItems
// if they arent part of a compoundPath

var plen = doc.pathItems.length;
var b = new Loadbar(plen);
b.label("Preprocessing Data...");
b.show();
// Add selected path items to Array
var i = null;
for (var x=0;x {
i = doc.pathItems[x];
if (!CP_on && i.parent.typename == "CompoundPathItem")
{
continue;
}else if (!includeLocked && (i.layer.locked == true || i.locked==true))
{
continue;
} else {
selItems.push(i);
} // end 'if'

} // end 'for'

} // end else
if (myVersion <= 12 && selItems.length > 1000)
{
alert(" Go get a coffee, this is going to take a while...");
}
selectBelow(selItems);

// -----------------cleanup and analytics--------------------------
//pointTextRef.remove();
// redraw();
b.close();
var fObj = new Date();
var finish= fObj.getTime();
var totalSeconds = (finish-start)/1000;
var minutes = Math.floor(totalSeconds/60);
var seconds = totalSeconds%60;
alert(doc.selection.length+"个对象被选择,耗时"+minutes+"分,"+Math.round(seconds)+"秒。");
//dispLayer.remove();
} // end cancel test
} else {
if (OK==2)
{
alert("该脚本在Illustrator CS及其以上版本才能运行!");
} else if(OK ==3){
//die quitly

}

else {
alert("必须打开一个文档才能运行本脚本!");

}

}
//----------------------------------------------Nobody here but us functions---------------------------------------------------------
//-------------------------------Dialog box functions---------------------------v.13 >
function actionCanceled() {
OK = 3;
dlg.hide();
}
function sliderChanged() {
dlg.alertBtnsPnl2.titleEt.text = dlg.alertBtnsPnl2.slide.value;
}
function setTextS() {
//if single item selected, change default to items Size
if (doc.selection.length == 1)
{
dlg.alertBtnsPnl2.titleEt.text = roundOff(Math.abs( (doc.selection[0].width+doc.selection[0].height)/2));
}
}
function setTextH() {
//if single item selected, change default to items Height
if (doc.selection.length == 1)
{
dlg.alertBtnsPnl2.titleEt.text = roundOff(doc.selection[0].height);
}
}
function setTextA() {
//if single item selected, change default to items Area
if (doc.selection.length == 1)
{
dlg.alertBtnsPnl2.titleEt.text = roundOff(Math.abs( doc.selection[0].area));
}
}
function setTextW() {
//if single item selected, change default to items Width
if (doc.selection.length == 1)
{
dlg.alertBtnsPnl2.titleEt.text = roundOff(doc.selection[0].width);
}
}
function eTextChanged() {
dlg.alertBtnsPnl2.slide.value = dlg.alertBtnsPnl2.titleEt.text;
}
//-------------------------------End Dialog box functions---------------------------v.13 >
// common functionality:
function selectBelow(sel){
var MAX = sel.length;
for (var x=0;x {
// alert("now processing:"+sel[x].typename);
if(sel[x].locked == true){
if (includeLocked)
{
sel[x].locked = false;
} else {
continue;
}

}
try{
sel[x].selected = true;
}
catch(e){
// on a locked layer...
}
//=========normal pathitem=============
if (sel[x].typename == "PathItem")
{
//pointTextRef.top = sel[x].top;
//pointTextRef.left = sel[x].left;
//pointTextRef.contents = "Processing item "+x+" of "+MAX;
if (myVersion <= 12){redraw();}
//redraw();
b.label("Processing item "+x+" of "+MAX);
b.update(x);
b.show();
checkThreshold(sel[x],dims);

} else {

//not a pathitem, dont care...
sel[x].selected = false;
}
}
}

function checkThreshold(obj,prop){
//if larger than
if( CP_on == false && obj.parent.typename == "CompoundPathItem"){
obj.selected=false;
return;
}
var p = 0;
if(prop == "size"){
//square root of area... (Need abs because in compound shapes, the area can be negative
p = Math.abs( (obj.width+obj.height)/2);
} else {
p = Math.abs(eval("obj."+prop));
}
// deselect if less than
if (GT && p < threshold+tolerance) // actually creating a tolerance for DEselection, meaning objects same size will be booted.
{
obj.selected=false;
return;
}
// deselect if larger than
if (LT && p > threshold-tolerance)
{
obj.selected=false;
return;
}
// deselect if exactly same size as:
if (EQ && (p threshold+tolerance) )
{
obj.selected=false;
return;
}
}
function copyArr(a){
var a2 = [];
var len = a.length;
for (var ca=0; ca {
a2.push(a[ca]);
}

return a2;
}
function roundOff(x){
var place = 100;
x = Math.round(x*place);
x /= place;
return x;
}
song0985 当前离线  
旧 2020-06-23, 17:12   只看该作者   #4
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认

引用:
作者: jialan75 查看帖子
var doc = app.activeDocument;
var pt = 72/25.4;



var rc = 2;//容差
var w = 200;
var h = 200;
var info = "大于";


if (doc.pathItems.length > 0 && doc.pathItems.length < 6000) {
var errorCount = 0;
for (j = 0; j < doc.pathItems.length; j++) {//循环开始修改颜色

try {
if(selectByWAndH(d...
上面我在网上找的一个脚本,运行错误,大神帮忙看看哪里出了问题。
song0985 当前离线  
旧 2020-06-23, 17:34   只看该作者   #5
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认

引用:
作者: jialan75 查看帖子
var doc = app.activeDocument;
var pt = 72/25.4;



var rc = 2;//容差
var w = 200;
var h = 200;
var info = "大于";


if (doc.pathItems.length > 0 && doc.pathItems.length < 6000) {
var errorCount = 0;
for (j = 0; j < doc.pathItems.length; j++) {//循环开始修改颜色

try {
if(selectByWAndH(d...

用起来显示出错哦,这个脚本。。。
song0985 当前离线  
旧 2020-06-23, 19:33   只看该作者   #6
xiaohaiwu xiaohaiwu 当前离线
正式会员
等级: 六袋长老
帅哥 级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时
 
Uid: 2241
注册日期: 2005-03-07, 12:00
来自: 东莞
帖子: 1001
感谢: 122
70 个帖子获得 134 次感谢
现金: 6286金币
资产: 6310金币
声望: 12 xiaohaiwu 向着好的方向发展
xiaohaiwu xiaohaiwu 当前离线
正式会员
等级: 六袋长老
帅哥 级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时级别:139 | 在线时长:20141小时 | 升级还需:19小时
 
Uid: 2241
注册日期: 2005-03-07, 12:00
来自: 东莞
帖子: 1001
感谢: 122
70 个帖子获得 134 次感谢
现金: 6286金币
资产: 6310金币
声望: 12 xiaohaiwu 向着好的方向发展
默认

之前做过一个,感觉还可以!
上传的附件
文件类型: rar 选择相同的属性和面积.rar (1.8 KB, 36 次查看)
xiaohaiwu 当前离线  
旧 2020-06-24, 13:14   只看该作者   #7
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认

引用:
作者: xiaohaiwu 查看帖子
之前做过一个,感觉还可以!
谢谢,用了下你分享的脚本,就是选择相同的属性和面积,还不错,不过我需要的脚本复杂一点。上面我找到的代码的作用是可以通过设定好的数值来选择文档相关路径对象。
数值可以设为小于、等于或大于,选择方式分为尺寸、面积、宽、高四种。
按面积选择时,描边等不会被计算在内;包含复合路径会按整体数值计算选择。
包含锁定对象时,文档上所有的对象都会被解锁。

功能多了很多,其实我最想要的是按照指定的数值查找小于该数值的路径对象。
song0985 当前离线  
旧 2020-06-28, 23:00   只看该作者   #8
木棉树下 木棉树下 当前离线
正式会员
等级: 六袋长老
级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时
 
Uid: 183469
注册日期: 2010-09-07, 10:51
帖子: 1876
感谢: 314
210 个帖子获得 302 次感谢
现金: 544金币
资产: 1344金币
声望: 10 木棉树下 向着好的方向发展
木棉树下 木棉树下 当前离线
正式会员
等级: 六袋长老
级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时级别:90 | 在线时长:8528小时 | 升级还需:117小时
 
Uid: 183469
注册日期: 2010-09-07, 10:51
帖子: 1876
感谢: 314
210 个帖子获得 302 次感谢
现金: 544金币
资产: 1344金币
声望: 10 木棉树下 向着好的方向发展
默认

引用:
作者: song0985 查看帖子
谢谢,用了下你分享的脚本,就是选择相同的属性和面积,还不错,不过我需要的脚本复杂一点。上面我找到的代码的作用是可以通过设定好的数值来选择文档相关路径对象。
数值可以设为小于、等于或大于,选择方式分为尺寸、面积、宽、高四种。
按面积选择时,描边等不会被计算在内;包含复合路径会按整体数值计算选择。
包含锁定对象时,文档上所有的对象都会被解锁。

功能多了很多,其实我最想要的是按照指定的数值查找小于该数值的路径对象。
上面的代码主要是for循环有些缺失,试着填补全,能运行。
不过我测试多运行几次AI会崩溃,不知为何
上传的图像
文件类型: png 捕获.PNG (9.5 KB, 0 次查看)
上传的附件
文件类型: zip 根据尺寸-面积选择对象.zip (4.1 KB, 17 次查看)
木棉树下 当前离线  
右列会员因为此帖价值甚高向 木棉树下 表示感谢:
jialan75 (2020-06-29)
旧 2020-06-29, 10:53   只看该作者   #9
song0985 的头像
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
song0985 song0985 当前离线
正式会员
等级: 五袋长老
帅哥 级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时级别:37 | 在线时长:1548小时 | 升级还需:48小时
song0985 的头像
 
Uid: 160152
注册日期: 2010-05-02, 14:07
帖子: 548
感谢: 59
86 个帖子获得 174 次感谢
现金: 709金币
资产: 724金币
声望: 10 song0985 向着好的方向发展
默认

引用:
作者: 木棉树下 查看帖子
上面的代码主要是for循环有些缺失,试着填补全,能运行。
不过我测试多运行几次AI会崩溃,不知为何
我重新找的代码,可以运行了。还把PT改成mm毫米了。
不过只能查找最小的路径对象,复合路径的话查找不太好用,
像转曲的文字的话就查找不到整个字体。
上传的附件
文件类型: zip J05-按数值选择路径对象.zip (5.7 KB, 22 次查看)
song0985 当前离线  
发表新主题 关闭主题


发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


律师声明:本站内容,均具有版权,未经书面授权,禁止转载,严禁镜像,违者承担一切后果!
论坛广告报价   广告联系及办理企业会员服务QQ:57880388 站务管理QQ:35529388


所有时间均为 +8, 现在的时间是 2025-01-04 14:15.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
 
Copyright © 2004-2022