Перейти к содержанию

Рекомендуемые сообщения

Можно ли автоматически нарисовать полилинию (отрезки, точки...) имея координаты x/y, как например в автокаде и также получить списком координаты выбраного объекта (вершин полилинии)

Ссылка на сообщение
Поделиться на другие сайты

Команды Список (List) в nanoCAD нет.

Команды в том то и дело нет но как всетаки можно их извлечь :angry:
Ссылка на сообщение
Поделиться на другие сайты

Можно извлечь командой Координаты (меню Сервис - Сведения).

Можно получается но если речь идет о сто точек, то есть большой полигон :blink:
Ссылка на сообщение
Поделиться на другие сайты

на эту тему что-то было уже на форуме... например вот : http://forum.nanocad.ru/index.php?showtopic=4256

Ссылка на сообщение
Поделиться на другие сайты

на эту тему что-то было уже на форуме... например вот : http://forum.nanocad...?showtopic=4256

Хорошо но, не очень, координаты в одну строку где X где Y не понять, а хотелось бы в столбик :wacko:
Ссылка на сообщение
Поделиться на другие сайты

ну, друг мой, нельзя же быть таким беспомощным! это же скрипт, его всегда можно под свои нужды отрихтовать!

меняем

echo(coords);

на

for (i = 0; i<coords.length; i += 2)
{
 ThisDrawing.Utility.Prompt(coords[i] + "," + coords[i+1]);
}

и получаем в столбик :)

Ссылка на сообщение
Поделиться на другие сайты

ну, друг мой, нельзя же быть таким беспомощным! это же скрипт, его всегда можно под свои нужды отрихтовать!

меняем

echo(coords);

на

for (i = 0; i<coords.length; i += 2)
{
 ThisDrawing.Utility.Prompt(coords[i] + "," + coords[i+1]);
}

и получаем в столбик :)

Огромное СПОСИБО :D получилось.

Остался только вопрос как имея координаты нарисовать полилинию

Ссылка на сообщение
Поделиться на другие сайты

Остался только вопрос как имея координаты нарисовать полилинию

По вводу координат списком замечание передано разработчикам.

Ссылка на сообщение
Поделиться на другие сайты

Остался только вопрос как имея координаты нарисовать полилинию

Дык, ровно так же - скриптом! Они (скрипты), конечно, довольно чудные, но с их помощью можно много чего сотворить! :)

Ссылка на сообщение
Поделиться на другие сайты

Остался только вопрос как имея координаты нарисовать полилинию

Дык, ровно так же - скриптом! Они (скрипты), конечно, довольно чудные, но с их помощью можно много чего сотворить! :)

Только вот в скриптах я ноль :unsure:
Ссылка на сообщение
Поделиться на другие сайты

Ну, если совсем примитивно делать - то как-то вот так :

var pts = new Array();
pts[0] = 0;
pts[1] = 0;
pts[2] = 0;
pts[3] = 100;
pts[4] = 100;
pts[5] = 0;
pts[6] = 200;
pts[7] = 100;
pts[8] = 0;
pts[9] = 200;
pts[10] = 000;
pts[11] = 0;
pts[12] = 0;
pts[13] = 0;
pts[14] = 0;

var pts2 = ThisDrawing.Utility.CreateTypedArrayFromJSArray(5, pts);
ThisDrawing.ModelSpace.AddPolyline(pts2);

А вообще, скрипты - штука полезная, да и несложная. Позволяют соорудить для себя массу полезняшек... :)

Ссылка на сообщение
Поделиться на другие сайты

Для меня тоже темный лес хотя значимость я их понял. И всё таки помагите нарисовать скриптом полилинию или отрезки имея текстовый файл с координатами:

124.34,456.32

245.12,478.23

174.56,389.10

и т.д.

Ссылка на сообщение
Поделиться на другие сайты

да задачка не стоит выеденного яйца!

 

var fso = new ActiveXObject("Scripting.FileSystemObject");
var ts = fso.OpenTextFile("c:\\coords.txt", 1);
var done = false;
var re = /\s*,\s*/ // regular expression - splits by "," & remove unneeded spaces
var pline_coords = new Array();
while (!done && !ts.AtEndOfStream)
{
 var s = ts.ReadLine();
 var sCoords = s.split(re);
 if (sCoords.length < 2)
 {
done = true;
 } else
 {
pline_coords[pline_coords.length] = Number(sCoords[0]); // x coordinate
pline_coords[pline_coords.length] = Number(sCoords[1]); // y coordinate
if (sCoords.length > 2)
  pline_coords[pline_coords.length] = Number(sCoords[2]); // z coordinate if exist
else
  pline_coords[pline_coords.length] = 0;		  // z coordinate omited
 }
}
var pline_pts = ThisDrawing.Utility.CreateTypedArrayFromJSArray(5, pline_coords);
ThisDrawing.ModelSpace.AddPolyline(pline_pts);

 

данные, как нетрудно заметить, читаются из файла C:\COORDS.TXT примерно следующего содержания :

0, 0
100, 0
100, 100
0, 100
0, 0

если хочется выбрать файл вручную, то это можно сделать с помощью ThisDrawing.Utility.ChooseFile

 

зы : учите матчасть! :)

Изменено пользователем Lion007
Ссылка на сообщение
Поделиться на другие сайты

зы : учите матчасть! :)

 

Мат уже выучил. Осталось выучить часть.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

Ребят, спасибо за помощь в скрипте, но у меня они работают почему-то только на версии 2.5, а на 3.7 free после запуска вообще ничего не происходит. Может я чего-то не знаю?

Изменено пользователем berkio
Ссылка на сообщение
Поделиться на другие сайты

Ребят, спасибо за помощь в скрипте, но у меня они работают почему-то только на версии 2.5, а на 3.7 free после запуска вообще ничего не происходит. Может я чего-то не знаю?

как-то это категорически странно. на всякий случай - проверил, работает и в 3.7, и в следующих версиях без проблем. рискну предположить одну вещь : если для проверки использовался файлик с координатами, который я в качестве примера приводил, то в новом документе свежесозданой полилинии действительно не видно - она получается очень маленькая, и надо поближе подъехать, чтобы ее заметить. если же дело не в бобине... тогда нужно подробное описание чего и как делается :)

Изменено пользователем Lion007
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...