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

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

Создание более длинных линий

Ответ
Поиск в этой теме
Непрочитано 20.06.2008, 09:49
Создание более длинных линий
Seryj_Wolk
 
Инженер-электрик
 
Псков
Регистрация: 04.03.2008
Сообщений: 59

Подскажите можно ли как то решить следующую проблему.
Регулярно приходится чертить линии которые должны быть короче или длиннее заданного растояния на определенное количество единиц, обычно на 100. Например, есть стена до нее черчу линию, а потом ее нужно удилннять либо укорачивать на 100 единиц. Можно ли как-то автоматизировать этот процесс.
С сеткой всего скорее не получиться, т.к. работать приходится на архитектурных планах, которые трудно подогнать под сетку.
Просмотров: 10189
 
Непрочитано 26.06.2008, 10:35
#41
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


zamtmn, можешь видеоролик выложить, я иногда просто электрику делаю, там в принципе схематично же проводка рисуется?, как и вотоплении,....


1. Считаешь ли ты потом длину нарисованных линий?
2. Как считаешь провода которые идут вертикально
3. Какие присадки для автокада еще можно использовать для электрика

Offtop: PS Просто у меня сестра электрик...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 26.06.2008, 10:45
#42
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


Цитата:
Сообщение от dextron3 Посмотреть сообщение
zamtmn, можешь видеоролик выложить, я иногда просто электрику делаю, там в принципе схематично же проводка рисуется?, как и вотоплении,....


1. Считаешь ли ты потом длину нарисованных линий?
2. Как считаешь провода которые идут вертикально
3. Какие присадки для автокада еще можно использовать для электрика

Offtop: PS Просто у меня сестра электрик...
схематично то схематично. Но если все рисовать на планах с одинаковыми отступами (я привык работать аккуратно), а не как попало на глазок, то это незаменимый лисп.

1. Длина конечно же считается.
2. Вертикальные провода считаешь так же как и горизонтальные, но только без плана =)
Seryj_Wolk вне форума  
 
Непрочитано 26.06.2008, 12:26
#43
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


dextron3
нафиг видео. Подводишь курсор к стенке на привязку перпендикуляр - линия не дорисовывается на 1 мм, потом к следующей (перпендикулярной предидущей) и т.д. когда надо пройти сквозь стенку - линия наоборот длинее рисуется. в итоге ты аккуратно обошол все стенки и трасса сдвинута от них на 1 мм.

1. для шлейфов пожарной сигнализации - не считаю, считает програмка по координатам датчиков и соединительных коробок. отдельные кабели которых много меньше шлейфов - считаю на глаз или суммарную длину отрезков\полилиний.
2. добавляю ко всем кабелям\проводам скокото метров условно. в особо тяжких случаюх считаю точно с учетом всех подъемов опусков.
3. программ много, но реальной пользы от большинства мало. глянь продукты консистент софтвар тамже где качал тулпак
zamtmn вне форума  
 
Непрочитано 26.06.2008, 14:44
#44
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


zamtmn, про программу по координатам датчиков заинтересовало, есть ли точный алгоритм для подсчета проводов по координатам?

К примеру алгоритм работы программы:

1. Укажите координаты щитка
2. Укажите высоту монтажа
3. Укажите выключатели
4. Укажите высоту выключателей
5. Укажите остветительные приборы
6. Укажите высоту осветительных приборов
7. Укажите розетки
8. Кажите высоту розеток

Результат выдается в виде:

Количества проводов с определнным сечением
Количества светильников
Количества разеток
Количества выключателей

если ткое возможно то скажите...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 26.06.2008, 15:25
#45
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


Цитата:
Сообщение от dextron3 Посмотреть сообщение
zamtmn, про программу по координатам датчиков заинтересовало, есть ли точный алгоритм для подсчета проводов по координатам?

К примеру алгоритм работы программы:

1. Укажите координаты щитка
2. Укажите высоту монтажа
3. Укажите выключатели
4. Укажите высоту выключателей
5. Укажите остветительные приборы
6. Укажите высоту осветительных приборов
7. Укажите розетки
8. Кажите высоту розеток

Результат выдается в виде:

Количества проводов с определнным сечением
Количества светильников
Количества разеток
Количества выключателей

если ткое возможно то скажите...
дану бред...
Seryj_Wolk вне форума  
 
Непрочитано 26.06.2008, 15:55
#46
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


dextron3
ты так запаришся всё указывать)). в пожарке проще, датчики в шлейфе пронумерованы, провод обычно идет от датчика к датчику по кратчайшей траектории паралельно стенам. т.е. зная координаты датчиков и соединительных коробок можно посчитать наикратчайшую длину шлейфа, если провод идет не по кратчайшей траектории, то нужно прикинуть скока метров добавить. глянь тут чтоб понятней было http://zcad.h17.ru/bpodcl/bpodcl.html
zamtmn вне форума  
 
Непрочитано 26.06.2008, 16:18
#47
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


ну я так предположил, хотел спросить есть специальны лисп программки именно для электриков которые не используют други разделы?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 26.06.2008, 17:39
#48
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


Цитата:
Сообщение от VVA Посмотреть сообщение
0 - все остальное (ASDFGH и цифры)
Будь добр, подправь вот этот момент. А то получается косяк. Поясняю. Начинаю чертить линию. Задаю абсолютною величину удлинения. Тыкаю начальную точку, а следующую точку я тыкаю не руками, а ввожу с клавиатуры цифровое значение, и ничего не получается =((( Автокад воспринимает это как "Текущее удлинение = 0.0". Можно подкоректировать?
Seryj_Wolk вне форума  
 
Непрочитано 26.06.2008, 20:41
#49
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


*** Удалено ***
Вопрос понял. Буду думать.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 26.06.2008 в 21:27.
VVA вне форума  
 
Непрочитано 26.06.2008, 22:41
#50
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


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

Код:
[Выделить все]
;;;Теперь на запрос " Выберите: (+ - 0 RightMouth) [уДлинить/уКоротить/Ноль/Следующая точка] <выход>: "
;;;Можно набирать с клавиатуры:+ (удлинить); - (укоротить); 0 (сбросить на 0); RightMouth (переход к вводу точи); Enter - выйти, 
;;;без подтверждения опции вводом
;;;Минус - возросло в 2 раза число кликов мышью.
(defun C:LL ( / tn tk delta flag)
  (setvar "CMDECHO" 0)
  (if (null *LL_LENGTH*)(setq *LL_LENGTH* (getvar "USERR5")))
  (princ "\nАбсолютная величина удлинения линии < ")
  (princ *LL_LENGTH*)(princ " >: ")
  (initget "Удлинение Length _L L")
  (if (null(setq delta (getdist)))(setq delta *LL_LENGTH*))
  (setvar "USERR5" (setq *LL_LENGTH* delta))
  (initget 1)
  (setq tn (getpoint "\n Начальная точка линии : "))
  (setvar "USERR4" 0)
  (while
    (progn
      (princ "\nТекущее удлинение = ")(princ (getvar "USERR4"))(princ " ")
      (princ "\n Выберите: (+ - 0 RightMouth) [уДлинить/уКоротить/Ноль/Следующая точка] <выход>: ")
      (while
	(progn
	  (setq tk (grread t 4 0))
	  (redraw)
	  (cond
	    ((= (cadr tk) 13) (not (setq tk "enter")))
	    ((= (cadr tk) 43) (not (setq tk "+")))
	    ((= (cadr tk) 45) (not (setq tk "-")))
	    ((= (cadr tk) 48) (not (setq tk "0")))
	    ((= (car tk) 25) (not (setq tk (getpoint tn " Конечная точка линии: "))))
	    ((= (car tk) 5) (not (grdraw tn (cadr tk) 3 1)))
	    (t)
	  )
	)
      )
      (if (= "enter" tk) nil t)
    )
    (cond
      ((= tk "0")(setvar "USERR4" 0))
      ((or (= tk "+")(= tk "="))(setvar "USERR4" (abs(getvar "USERR5"))))
      ((= tk "-")(setvar "USERR4" (* -1.0 (abs(getvar "USERR5")))))
      ((listp tk)
       (setq tk (polar tn (angle tn tk)(+ (distance tn tk) (getvar "USERR4"))))
       (command "_.LINE" "_non" tn "_non" tk "")
       (setq tn tk)
       )
       (t nil)
      )
  (initget "уДлинить уКоротить Ноль + - 0 = _+ - 0 + - 0 +")
    )
  (princ)
)
P.S.
Исправил ошибку в прошлом коде - вылет программы при клике на панелях AutoCad.
Могут быть проблемы с правой кнопкой мыши. У меня она возвращает код 25, но в описании функции grread этот код не упомянут, может другие мыши другой код будут возвращать.
Если будет такой косяк, то можно заменить:
Код:
[Выделить все]
(= (car tk) 25)
на
Код:
[Выделить все]
(= (car tk) 3)
, будет переходить к вводу точки по левому клику.

Последний раз редактировалось Donhuan, 26.06.2008 в 22:44. Причина: Дополнение.
Donhuan вне форума  
 
Автор темы   Непрочитано 27.06.2008, 09:00
#51
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


2 VVA
ну как процесс? получилось чего нибудь?

2 Donhuan
Цитата:
Разбил запрос параметров и ввод точки на два этапа:
чего то я не понял, не мог бы поподробнее объяснить что за изменения
Seryj_Wolk вне форума  
 
Непрочитано 27.06.2008, 10:50
#52
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Цитата:
Сообщение от Seryj_Wolk Посмотреть сообщение
2 VVA
ну как процесс? получилось чего нибудь?
Что делать понятно было с самого начала. Вопрос КАК ДЕЛАТЬ?
Если оставить арбитражный ввод (initget 128 ...), то запрос точки будет возвращать ввиде строки все, что ввел на клавиатуре (типа "@100<45" и т.п.). Дальше сам расхлебывай, чего не хочется. Если его исключить, то будет длинный initget со всеми возможными клавишами. Наверное, сделаю так: уберу арбитражный ввод и сокращу набор клавиш.
Исходя из анатомии левой руки удобнее нажимать клавиши QWERT чем OP{}.
Т.е. оставлю WERTYUI, SDFGHJ, XCVBN в русской и английской раскладках. Initget должен это "съесть"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.06.2008 в 16:16. Причина: Орфография
VVA вне форума  
 
Автор темы   Непрочитано 27.06.2008, 11:09
#53
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


Цитата:
Сообщение от VVA Посмотреть сообщение
Что делать понятно было с самого начала. Вопрос КАК ДЕЛАТЬ?
Если отавить арбитражный ввод (initget 128 ...), то запрос точки будет возвращать ввиде строки все, что ввел на клавиатуре (типа "@100<45" и т.п.). Дальше сам расхлебывай, чего не хочется. Если его исключить, то будет длинный initget со всеми возможными клавишами. Наверное, сделаю так: уберу арбитражный ввод и сокращу набор клавиш.
Исходя из анатомии левой руки удобнее нажимать клавиши QWERT чем OP{}.
Т.е. оставлю WERTYUI, SDFGHJ, XCVBN в русской и английской раскладках. Initget должен это "съесть"
давай, ждем
Seryj_Wolk вне форума  
 
Непрочитано 27.06.2008, 14:18
#54
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Цитата:
Сообщение от Seryj_Wolk Посмотреть сообщение
2 Donhuan

чего то я не понял, не мог бы поподробнее объяснить что за изменения
Чего непонятного, вроде же все описал. Сначала определяешься хочешь ты удлинить, укоротить, выйти, потом жмешь правую кнопку мыши и переходишь к вводу точки (с клавиатуры или левой кнопкой мыши со всеми привязками). Запусти программу и посмотри.
Donhuan вне форума  
 
Непрочитано 27.06.2008, 23:10
#55
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Получилось пока так
Код:
[Выделить все]
;;;
;;;Теперь на запрос " Конечная точка линии или (+ - 0) [уДлинить/уКоротить/Ноль] <выход>: "
;;;Можно набирать с клавиатуры:+ (удлинить); - (укоротить); 0 (сбросить на 0)
(defun C:LL ( / tn tk delta)
  (setvar "CMDECHO" 0)
  (if (null *LL_LENGTH*)(setq *LL_LENGTH* (getvar "USERR5")))
  (princ "\nАбсолютная величина удлинения линии < ")
  (princ *LL_LENGTH*)(princ " >: ")
  (initget "Удлинение Length _L L")
  (if (null(setq delta (getdist)))(setq delta *LL_LENGTH*))
  (setvar "USERR5" (setq *LL_LENGTH* delta))
  (initget 1)
  (setq tn (getpoint "\n Начальная точка линии : "))
  (setvar "USERR4" 0)
  (initget "Удлинить укороТить нОль + - = 0 W E R T Y U I Ц У К Е Н Г Ш
                S D F G H J K Ы В А П Р О Л X C V B N M Ч С М И Т Ь
                _+ - 0 + - 0 + + + + + + + + + + + + + + +
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - - - - - - - - - - -")
  (while
    (progn
      (princ "\nТекущее удлинение = ")(princ (getvar "USERR4"))(princ " ")
    (setq tk (getpoint tn " Конечная точка линии или (+ - 0) [Удлинить/укороТить/нОль] <выход>: "))
    )
    (cond ((= tk "+")
	   (setvar "USERR4" (abs(getvar "USERR5")))
	   )
	  ((= tk "-")
	   (setvar "USERR4" (* -1.0 (abs(getvar "USERR5")))))
	  ((listp tk)
	   (setq tk (polar tn (angle tn tk)(+ (distance tn tk) (getvar "USERR4"))))
	   (command "_.LINE" "_non" tn "_non" tk "")
	   (setq tn tk)
	   )
	  (t (setvar "USERR4" 0)))
    (initget "Удлинить укороТить нОль + - = 0 W E R T Y U I Ц У К Е Н Г Ш
                S D F G H J L Ы В А П Р О Л X C V B N M Ч С М И Т Ь
                _+ - 0 + - 0 + + + + + + + + + + + + + + +
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - - - - - - - - - - -")

    )
  (princ)
  )
Немного сократил кол-во допустимых клавиш
увеличить: WERTYUIЦУКЕНГШ+=
уменьшить: XCVBNMЧСМИТЬ-
ноль: SDFGHJKЫВАПРОЛ0(ноль)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 28.06.2008, 15:16
#56
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


2 VVA
я тут немного пороботал и как кому удобней не знаю, может еще и привычка нужна. Но я привык работать на Enter и мне в принципе хватает 0, -, =. Но это кто как больше привык. Не тянутся что-то у меня руки к пробелы =))
Seryj_Wolk вне форума  
 
Непрочитано 28.06.2008, 16:20
#57
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


Seryj_Wolk, сегодня показал лисп электрику, сказали что это баловство, ведь обычно схематично показывают, ну пусть делают тапорную работу и дальше,

PS а у меня вопрос а нельзя рисовать полилинией и потом один раз офсетнуть?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.06.2008, 16:55
#58
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Цитата:
Не тянутся что-то у меня руки к пробелы =))
К пробелу должны тянуться пальцы , вернее один - большой левой руки.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.06.2008, 20:49
#59
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Seryj_Wolk, сегодня показал лисп электрику, сказали что это баловство, ведь обычно схематично показывают, ну пусть делают тапорную работу и дальше,

PS а у меня вопрос а нельзя рисовать полилинией и потом один раз офсетнуть?
некоторые ненужными считают и слои и привязки. лисп нужный и удобный, ваш электрик ошибается. бывают люди как чертили на кульмане - так и чертят на компе.

нельзя, офсетить нужно будет в разные стороны
zamtmn вне форума  
 
Автор темы   Непрочитано 30.06.2008, 08:44
#60
Seryj_Wolk

Инженер-электрик
 
Регистрация: 04.03.2008
Псков
Сообщений: 59


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Seryj_Wolk, сегодня показал лисп электрику, сказали что это баловство, ведь обычно схематично показывают, ну пусть делают тапорную работу и дальше,
Ну некоторые и руками до сих пор чертят и говорят что компьютер это баловство...
Seryj_Wolk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание более длинных линий

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
Армирование монолитных колонн Assol Железобетонные конструкции 38 08.09.2016 19:10
Виснет компьютер при обработке длинных списков mmax Программирование 17 28.10.2010 12:17
Создание типа линий для обозначения кабелей связи Geon AutoCAD 1 04.11.2007 10:02