| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение полилинии по таблице координат

Построение полилинии по таблице координат

Ответ
Поиск в этой теме
Непрочитано 20.01.2005, 08:40 #1
Построение полилинии по таблице координат
Борода
 
Бывший инженер.
 
Ачинск
Регистрация: 24.04.2004
Сообщений: 50

Вопрос для гур и программистов лисп - ламерский, но, увы, на лиспе программировать не умею, а здесь возникла такая проблема: В Маткаде получено уравнение полилинии, можно получить таблицу с координатами с любым шагом. В принципе, эту таблицу можно загнать и в эксель. А как дальше в Автокад, чтобы не набирать вручную координаты каждой точки?
__________________
Вот такая, блин, загогулина...
Просмотров: 8702
 
Непрочитано 20.01.2005, 18:27
#2
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Можно конечно и программку написать... А можно проявить "творчество" и сделать примерно следующее:
- в Екселе сформировать ячейки с координатами как они вводились бы в командной строке АКАД (только необходимо определиться с разделителями дробных и запятыми между числами)
- в АКАДе набрать _.pline <Enter> и далее вставить в командную строку скопированный из Экселя фрагмент с координатами
- ну и ручками завершить полилинию <Enter>....
vk вне форума  
 
Автор темы   Непрочитано 20.01.2005, 19:21
#3
Борода

Бывший инженер.
 
Регистрация: 24.04.2004
Ачинск
Сообщений: 50


VK я смотрю в том форуме похожую ветку. Если координат немного - то не в лом и вручную набрать, а когда сотни точек - запаришься, да и от ошибок не застрахован. Нет, видимо, без специальной программы не обойдешься.
__________________
Вот такая, блин, загогулина...
Борода вне форума  
 
Непрочитано 20.01.2005, 20:17
#4
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Программка хороша, когда ЧТО ТО надо делать очень часто, когда затраты времени (или чего там еще) окупаются экономией на этом ЧТО ТО
Попытаюсь еще раз обьяснить, КАК можно добиться результата, обходясь минимальными затратами.
Значит, имеем в Екселе табличку, где первые две колонки (A и B) содержат координаты точек по X и по Y соответственно. Предполагаю, что десятичный разделитель - запятая (если точка, то следующую формулу можно немного упростить)
В ячейку C1 пишем такую формулу
Код:
[Выделить все]
=ПОДСТАВИТЬ(ТЕКСТ(A1;"0,00");",";".")&","&ПОДСТАВИТЬ(ТЕКСТ(B1;"0,00");",";".")
и тянем ее за уголок (маленький крестик) на все строки, которые необходимо обработать. Наблюдаем, что в С появились примерно такое
Цитата:
12.30,23.75
13.30,24.75
14.30,25.75
что как раз и соответствует вводу чисел с командной строки.

Далее, выделяем ячейки столбца С с первой до последней и давим Ctrl+С и.... см. мой предыдущий пост.
vk вне форума  
 
Непрочитано 20.01.2005, 21:28
#5
Arkady

AutoCad Development and Support
 
Регистрация: 21.08.2003
Israel
Сообщений: 183
Отправить сообщение для Arkady с помощью Skype™


А если файл ексел сохранить как CSV (Comma Delimited),потом открыть полученный файл в NOTEPAD , добавить первой строкой PLINE , переименовать с расширением SCR и загрузить в акад командой SCRIPT.
Специально проверил - работает.
И писать ничего не надо.
Arkady вне форума  
 
Непрочитано 20.01.2005, 23:48
#6
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


>Arkady
что то это не очень получается..... :cry:
Не знаю по какой причине, но у меня (Office XP rus, Windows 2000 rus) почему то хоть и выбираю CSV (разделители - запятые), все равно разделителем ставится точка с запятой (;). Что то не вспомню, где это настроить... Впрочем, это можно и в Блокноте поправить... Правда уже лишнее действие получается. Это первое.
Второе. Может оказаться, что надо изменить настройку в Екселе. Сервис -> Параметры -> Международные -> Числа -> Разделитель дробной и целой части - прописать точку вместо запятой или системного символа. Потом может потребоваться вернуть эту настройку обратно.... Не знаю как в Израиле (ну не был там ни разу ), а в России разделитель обычно запятая. Впрочем, это дело вкуса....

Так что, в каких то случаях получается что проще формулу прописать-протянуть. (ИМХО конечно)

PS в дополнение к моему предыдущему высказыванию: можно добавить перед первой строкой пустую строку и в чистую ячейку С1 написать _.pline, и копировать не до последней а до следующей ячейки. Впрочем, тут много вариантов....
vk вне форума  
 
Непрочитано 21.01.2005, 03:15
#7
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


>>vk, Arcady
Здорово - простенько но со вкусом.
если в svc соранять цтото в етом духе
_PLINE
0,0
2.4.33
5.908,2.11
.....
......
12.44,34.22 оставив после последней цифры два свободных пространства
и как вы писали copy/paste на командную линию AutoCAD
Пришлите мне на приват ваши имена - если не возражаете отправлю как TIP for E-Mail Newsletter от вашего имени.
Startrek вне форума  
 
Автор темы   Непрочитано 21.01.2005, 11:25
#8
Борода

Бывший инженер.
 
Регистрация: 24.04.2004
Ачинск
Сообщений: 50


Оказалось еще проще в экселе с помощью функции СЦЕПИТЬ. Берешь ячейку с абциссами, второе число "," и третье - ординаты. Ну предварительно в настройках экселя снимаешь галочку "использовать системные разделители" и заменяешь запятую на точку.
Спасибо всем за помощь!
__________________
Вот такая, блин, загогулина...
Борода вне форума  
 
Непрочитано 21.01.2005, 11:27
#9
maif

мосты
 
Регистрация: 21.01.2005
78
Сообщений: 51


я из экселя вставляю в блокнот - а там "заменить всё.." меняю запятые на точки, расстояния между клетками на запятые, а вперёд - _pline.
так када время много баловался - линия из 10000 случайных чисел. в этой картинке коллега увидел шикарную обнаж...
maif вне форума  
 
Автор темы   Непрочитано 21.01.2005, 12:40
#10
Борода

Бывший инженер.
 
Регистрация: 24.04.2004
Ачинск
Сообщений: 50


Цитата:
я из экселя вставляю в блокнот - а там "заменить всё.." меняю запятые на точки, расстояния между клетками на запятые, а вперёд - _pline.
Не надо никуда отправлять и копировать в другие редакторы - просто копируешь полученный столбец в командную строку Автокада, предварительно нажав кнопочку (или написав) Pl и в мгновение ока получаешь нужную линию. Вот сейчас построил кривую деформаций по сечениям, неравномерно нагруженного стержня.
А хорошо бы, еще установить и связь между файлами :idea:
__________________
Вот такая, блин, загогулина...
Борода вне форума  
 
Непрочитано 21.01.2005, 14:10
#11
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


То-же и для 3dmesh можно сделать.
[ATTACH]1106305841.jpg[/ATTACH]
Krieger вне форума  
 
Непрочитано 21.01.2005, 18:44
#12
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Аналог функции СЦЕПИТЬ - &
Потому если разделитель точка, то формулу можно упростить до
Код:

>Startrek
Это простое решение (подготовка данных в Экселе и прямое копирование в командную строку) я где то уже видел.... Не помню точно где, может быть на форуме Autodesk

Кстати, небольшие Лиспики тоже иногда можно копировать в командную строку прямо с веб-странички
vk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение полилинии по таблице координат

Размещение рекламы