Нужен импорт чертежа в Иллюстратор

  • Автор темы Автор темы Sandr
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Нужен импорт чертежа в Иллюстратор

ЗЫ: Используя этот блок текста из файла NewMat я создал в Компас 3D чертеж полностью соответствующий необходимому
Фрагмент.jpg
Код:
0,000000000000000
0,000000000000000
50,942398817108760
130,080598102709502
129,318550368550433
132,014213365745945
132,599640034166896
210,145349608643272
239,575389767981932
239,385715011424594
258,375155995760224
182,828409649686506
302,574736285050676
182,635790204749156
247,906154237326462
47,365112905893120
170,707713451833058
43,403958997160402
168,772777950434744
-34,371975742355446
62,467659245298613
-63,788157294129185
40,700000000000003
0,000000000000000
т.е. в этом коде прописаны координаты каждой точки чертежа
нечетные строки - координата X
четные - координата Y
координаты указаны относительно предыдущей точки

Осталось дело за малым написать Скрипт расставляющий точки линий в Иллюстре
 
Ответ: Нужен импорт чертежа в Иллюстратор

Судя по параметрам размер страницы составляет 216х279,5 мм, что является стандартом для Европы и отнюдь не А4. Где-то должна быть настройка формата листа, и очевидно это не драйвер принтера. По этому поводу вспоминается OpenOffice. Есть такой параметр как размер рабочей зоны?

ИМХО проще найти на сайте FAQ и прочесть, нежели советовать методом тыка.
 
Ответ: Нужен импорт чертежа в Иллюстратор

дело за малым написать Скрипт
Да уж...
Ну держите. Обратите внимание на 4-ю строку - размещение ини-файла. Путь подправьте, содержимым сделайте Ваши цифры как Вы их показали (просто копи-паст).
Код:
var myArr = [];
var myStrX="";
var myStrY = "";
var myFile = File("/f/makePath.ini");
if (myFile.exists){
	myFile.open("r");
	do{
		myStrX = myFile.readln();
		myStrX = myStrX.replace(",",".");
		myStrX = Number(myStrX)*2.83462;
		myStrY = myFile.readln();
		myStrY = myStrY.replace(",",".");
		myStrY = Number(myStrY)*2.83462;
		myArr[myArr.length] = [myStrX,myStrY];
		}while (!myFile.eof);
	var myPath = app.activeDocument.pathItems.add();
	myPath.setEntirePath(myArr);
	
	}
else {alert("Файла нет");}
 
Ответ: Нужен импорт чертежа в Иллюстратор

Вона, как все просто оказалось. А я на этот блок даже и внимания не обратил. ;-)
 
Ответ: Нужен импорт чертежа в Иллюстратор

Отлично, спасибо большое.

Вот вопрос а можно автоматизировать подпись расставленных точек A, B, C.....?
 
Ответ: Нужен импорт чертежа в Иллюстратор

Отлично, спасибо большое.

Вот вопрос а можно автоматизировать подпись расставленных точек A, B, C.....?

Можно, если не контролировать, чтобы буквы на линии и друг на друга не налазили. Иначе придетсся все-таки PS парсить.
И еще - все таки я не понял систему по которой координаты точек хранятся. Или первый рисунок в PDF не соответствует тексту? А то, получается, что линия AB в PDF - вертикальная прямая, а судя по координатам - диагональная (0,0)-(50,942398817108760,130,080598102709502)
 
Ответ: Нужен импорт чертежа в Иллюстратор

Можно, если не контролировать, чтобы буквы на линии и друг на друга не налазили.
Сойдет.

И еще - все таки я не понял систему по которой координаты точек хранятся. Или первый рисунок в PDF не соответствует тексту? А то, получается, что линия AB в PDF - вертикальная прямая, а судя по координатам - диагональная (0,0)-(50,942398817108760,130,080598102709502)
Программа Newmat поворачивает чертеж относительно материала
Тоесть координаты точек хранятся в абсолютной системе а отображение и вывод в относительной к материалу, в данном случае программа повернула чертеж для вписывания в ширину 200см
 
Ответ: Нужен импорт чертежа в Иллюстратор

автоматизировать подпись расставленных точек
Код:
var myArr = [];
var myStrX="";
var myStrY = "";
[B]var myTF;[/B]

var myFile = File("/f/makePath.ini");
if (myFile.exists){
	myFile.open("r");
	do{
		myStrX = myFile.readln();
		myStrX = myStrX.replace(",",".");
		myStrX = Number(myStrX)*2.83462;
		
		myStrY = myFile.readln();
		myStrY = myStrY.replace(",",".");
		myStrY = Number(myStrY)*2.83462;
		
		[B]myTF = app.activeDocument.textFrames.areaText(app.activeDocument.pathItems.rectangle(myStrY+11, myStrX-11, 9, 17));
		myTF.contents = String.fromCharCode(65+myArr.length);[/B]

		myArr[myArr.length] = [myStrX,myStrY];
		}while (!myFile.eof);
	var myPath = app.activeDocument.pathItems.add();
	myPath.setEntirePath(myArr);
	
	}
else {alert("Файла нет");}
 
Статус
Закрыто для дальнейших ответов.