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

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

Экспорт в Excel длины всех участков полилинии

Ответ
Поиск в этой теме
Непрочитано 16.08.2013, 19:02 #1
Экспорт в Excel длины всех участков полилинии
Meddoks
 
Регистрация: 19.05.2010
Сообщений: 12

Заранее извиняюсь если этот вопрос уже поднимался, но поиск ничего не дал!!
Вообщем вопрос следующий - полилиния с "n" количеством точек , полилиния изменяет свое направления под разными углами.

Нужно: получить файл экселя в котором в табличке будут показаны длины каждого участка полилинии, угол поворота.

Планирую использовать - для дальнейшего построения профиля.

Либо если есть программы позволяющие получить данную таблицу данных - укажите Фоме не ведающему
Но хотелось бы лисп - т.к например для построения профиля в ГЕОНИКСЕ нет генпаланов с горизонталями 3d
Просмотров: 12622
 
Непрочитано 16.08.2013, 19:35
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Как вариант - есть пример, где программка оперирует точками, но подправив несколько строк кода, ты можешь оперировать длинами и углами, как тебе надо. Либо ещё проще - добавить пару строк кода, которая помимо координат, добавит в таблицу столбцы длины и углов. Правда это не автолисп... Хотя, имея координаты, добавить самому в таблице Excel формулу, вычисляющую длину и угол - это уровень детского сада (тогда и код править не надо).

Там можно два мультика посмотреть, для ясности.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 16.08.2013 в 19:40.
hwd вне форума  
 
Непрочитано 16.08.2013, 21:14
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от Meddoks Посмотреть сообщение
если есть программы позволяющие получить данную таблицу данных
Покажи такой пример в Экселе, создай для 4-5 точек,
а то не совсем ясен формат, в Лиспе это достаточно просто делать
Олег (jr.) вне форума  
 
Непрочитано 16.08.2013, 22:45
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


По экспорту точек можно посмотреть еще здесь
Все функции взяты из ECoorE rev7.zip по ссылке.
Полилинии выбирать по одной за раз
Код:
[Выделить все]
(defun c:COORL+A ( / ptLst lst)
  (vl-load-com)
  (setq *ptcol:SEPARATE* "")
  (if (setq ptLst (vva-get-final-points-list))
    (progn
      (setq lst
        (mapcar
          '(lambda ( a b)
             (list
               (rtos (distance a b) 2 6) ;_расстояние
               (angtos (angle a b) 0 4)  ;_угол
               )
             )
          ptLst
          (cdr ptLst)
          )
       )
      (xls lst '("Длина сегмента" "Угол градусы") nil "COORL+A")
      )
    )
  (princ)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.08.2013, 23:19
#5
Son1cs


 
Регистрация: 17.02.2011
Сообщений: 73


Команда "данныеизвл". Делаешь извлечение нужных данных в эксель.
Son1cs вне форума  
 
Автор темы   Непрочитано 17.08.2013, 10:02
#6
Meddoks


 
Регистрация: 19.05.2010
Сообщений: 12


Добрый день, Уважаемые форумчане!
Спасибо большое, что откликнулись.
Выглядеть табличка должна примерно такТаблица для построения профиля.rar! Но для меня главное, чтоб не выписывать вручную все длины участков трассы по генплану. Это довольно скучная и муторная работа, на которую уходит уйма времени.
А используя полилинию (как я полагаю) - от этого можна уйти.
Попробую разобраться в предложенных Вами вариантах


Это просто супер!!
VVA - Ваша программа на данный момент удовлетворяет меня по всем требованиям!!!!! Округление значений, наверное можно где-то выбирать, но этого можна добиться и в самом экселе. Если не ошибаюсь с помощью Вашей программы можна полилинию разбить на равное кол-во сегментов (в моем случае это будут пикеты), а точки поворота уже имеют опорную точку. Так что теперь работа закипит. Выпьем всем офисом за Ваше здоровье!!!!


hwd - предложенная Вами программа очень интересна, но я пока, что не умею изменять код и т.д. А вот по поводу определения длин и углов по координатам я как-то не догадался. Спасибо, будем мыслить шире))

Последний раз редактировалось Meddoks, 17.08.2013 в 11:03.
Meddoks вне форума  
 
Непрочитано 17.08.2013, 11:11
#7
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Судя по файлу у тебя уже вставлены участки отметки и углы,
каким образом?, ведь обычно трасса рисуется обычной полилинией,
если наоборот значит у тебя 3Д полилиния также уже есть пикеты
Объясни процесс, с чего начинаешь, например покладываешь трассу
по точкам и тд
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 17.08.2013, 16:38
#8
Meddoks


 
Регистрация: 19.05.2010
Сообщений: 12


Это я пример скинул - как должно выглядеть. Но тот вариант, что предложил VVA полностью подходит. Я просто скопирую в эту табличку полученные значения.
Осталось найти - как разбить полилинию с вершинами равных частей (например через 100 м, или 50), где-то видел - теперь не могу найти((


http://dwg.ru/dnl/607 вот нашел такой вариант - все подходит.

Последний раз редактировалось Meddoks, 17.08.2013 в 16:48.
Meddoks вне форума  
 
Непрочитано 17.08.2013, 20:04
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 5,051


Civil 3D тоже умеет строить профили...
trir вне форума  
 
Автор темы   Непрочитано 19.08.2013, 16:21
#10
Meddoks


 
Регистрация: 19.05.2010
Сообщений: 12


По программе есть один момент - определение угла - он берется относительно оси Х
У меня полилиния - предполагаемый водопровод, и угол необходимо определить внутренний между участками трубопровода (или наружный, между осью трубопровода и повернувшим участком).

Возможно ли сделать такое усовершенствование?
Спасибо!

Последний раз редактировалось Meddoks, 20.08.2013 в 13:35.
Meddoks вне форума  
 
Непрочитано 27.08.2013, 11:44
#11
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


так же пытаюсь решить проблему автоматизации аксанометрий и процентовки в области сантехники и спринклерных систем. Если поможет вот код определения угла между линиями в пространстве.
P.S.
только я черчу не полилинией а линией, удобней в 3Д не надо крутить ПСК.
идея така начертить полностью аксонаметрию линиями, затем вызвать лисп, который проставит размеры, фасанину, диаметры труб, раскроит общий вид на отдельные листы А4,распечатает (сварит кофе ) и перенесет данные в ексель по кождому листу А4, а затем ексель соеденит это в общую процентовку (кстати последним пользуюсь уже почти год)
Код:
[Выделить все]
 
;;;	ОПРЕДЕЛЕНИЕ УГЛА МЕЖДУ ЛИНИЯМИ В ПРОСТРАНСТВЕ
;;; ПРИМЕР ВЫЗОВА (l_cnr <line1> <line2>)
;;; <line1> <line2> - VLA OBJECT
(defun		L_cnr			(o1 o2 / v1 v2 a1 b1 cosa1 sina1)
(vl-load-com)
(setq	v1 (vlax-safearray->list (vlax-variant-value (vla-get-delta o1)))
		v2 (vlax-safearray->list  (vlax-variant-value (vla-get-delta o2)))
		a1 (apply '+ (mapcar '* v1 v2))
		b1 	(* (sqrt (+ (expt (car v1) 2) (expt (cadr v1) 2) (expt (caddr v1) 2)))
				(sqrt (+ (expt (car v2) 2) (expt (cadr v2) 2) (expt (caddr v2) 2)))
			)
		cosa1 (/ a1 b1)
)
(if (equal cosa1 0)
	(setq cnr 90.0)
	(setq	sina1 (sqrt (- 1 (expt cosa1 2)))
			cnr (/ (* (atan (/ sina1 cosa1)) 180) pi)
	)
)
(if (or (minusp cnr) (equal cnr 90.0 0.01))
	(setq cnr (abs cnr))
	(setq cnr (- 180 cnr))
)
(princ (strcat "\n angle = " (rtos cnr 2 1)))
(princ)
)		;;; end defun L_cnr

Последний раз редактировалось nolte, 27.08.2013 в 12:23.
nolte вне форума  
 
Автор темы   Непрочитано 28.08.2013, 00:20
#12
Meddoks


 
Регистрация: 19.05.2010
Сообщений: 12


К сожалению я от программирования очень далек, и мне этот пример - ничего не скажет.
Буду надеятся на наших уважаемых Метров программирования

На данный момент имеем лисп который определяет расстояние между точками на полилинии и переносит эти значения в эксель, с помощью этих данных уже можно построить профиль по длинне.

Попутно программа определяет угол между линией и осью "Х". Хотелось бы, чтоб програмка научилась определять угол между двумя участками полилинии (внутренний угол или наружный).

Подскажите пожалуйста еще какие-то варианты или дополнения))

сейчас определяю - путем перевода в системе координат. Но когда полилиния уходит в III или IV квадранты начинается путаница и уходит много времени. Тем более обьяснить кому-то довольно сложно.
Может можна формулу применить ????? ...

Последний раз редактировалось Meddoks, 28.08.2013 в 01:05.
Meddoks вне форума  
 
Непрочитано 28.08.2013, 01:55
1 | #13
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


файл автокада можно получить, попробую что либо сделать и потренируюсь заодно.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Автор темы   Непрочитано 28.08.2013, 21:04
#14
Meddoks


 
Регистрация: 19.05.2010
Сообщений: 12


Пример трассы водопровода с таблицей ПРИМЕР.rar
Указал какие углы необходимо определить
Meddoks вне форума  
 
Непрочитано 29.08.2013, 15:41
#15
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


(чисто для расширения кругозора)
сори за бестолковый вопрос, но зачем а главное как (углы не 45 и не 90*) лепить уголки на пластиковой трубе, она же гнется. Получаешь катушку метров 200 и растягиваешь.
и теперь по делу.
мы делаем чертеж а затем переносим в ексель данные иль наоборот данные, занесенные в ексель, управляют чертежем.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 29.08.2013, 19:51
#16
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от nolte Посмотреть сообщение
данные, занесенные в ексель, управляют чертежем.
Offtop: мне страшно
gomer вне форума  
 
Непрочитано 29.08.2013, 20:49
#17
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


гомер
мне самому страшно но продвигаться же надо как то. а вдруг человеку помогу может спасибо заслужу.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 29.08.2013, 23:23
#18
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Ну тогда ОксаноМетрию изучайте скорее... Про 2М пустой треп, понаписали уже по самое нехочу, про 3М не проще ли установить ПСК по трем точкам и воспользоваться angle
gomer вне форума  
 
Непрочитано 29.08.2013, 23:43
#19
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 188
Отправить сообщение для nolte с помощью Skype™


злой Вы товарищ, Гомер.
Вот взяли бы и подсказали неУчам как это по трем точкам. Собственно для этого и форум, и помнили бы Вас вечно потомки.
__________________
Знание лисп: со справочником Н. Полещука

Последний раз редактировалось nolte, 30.08.2013 в 00:11.
nolte вне форума  
 
Непрочитано 30.08.2013, 00:28
#20
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


А не пошли бы вы, товарищь nolte, в Help, где вам расскажут как вызвать команду _ucs, указать начало координат, точку на оси x и точку в плоскости xy, только не забывайте транспортировать из одной пск в другую, а то это чревато...
Хотя... если твоя моя не понимать, налью вам пару строк индокитайского коньячку для сугреву
Код:
[Выделить все]
 (if (and (setq e1 (car (entsel "\n1st e: ")))
	 (setq e2 (car (entsel "\n2nd e: ")))
    )
  (progn
    (command "_.ucs" (dxf 10 e1) (dxf 11 e1) (dxf 11 e2))
    (setq ang (rtd (angle (dxf 10 e2) (trans (dxf 11 e2) 0 1))))
    (command "_.ucs" "_p")
    ang
  )
)
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт в Excel длины всех участков полилинии

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление в чертеж длины полилинии Кочетков Андрей Программирование 35 14.02.2019 07:22
Выбор всех объектов внутри замкнутой полилинии fellow123 AutoCAD 22 08.03.2017 05:30
Два вопроса новичка: Доступ к свойствам полилинии и обработка всех полилиний Иван Морозов Программирование 7 02.11.2012 17:11
Лисп для вычисления длины полилинии со скруглениями CooL LISP 8 21.02.2007 17:14
Нужна прога для преобразования ВСЕХ примитивов в полилинии timurka AutoCAD 4 25.11.2003 05:15