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

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

Автоматический расчёт длинны кабеля

Ответ
Поиск в этой теме
Непрочитано 12.09.2009, 22:42 #1
Автоматический расчёт длинны кабеля
Дмитрий Брайт
 
инженер КИПиА
 
Регистрация: 12.09.2009
Сообщений: 63

...на "голом" 2006 акаде.

Имеется трёхмерный чертёж объекта, на котором я рисую кабели. Кабель - 3д полилиния (3dpoly).

Необходимо:
во-первых, выводить длинну кабеля в отдельное текстовое поле (желательно прибавлять к значению длинны 30% и округлять вверх до тысяч).
во-вторых, складывать длинны кабелей (тех полей, которые я укажу, тк марка кабеля может быть разной) и выводить получившееся значение в текстовое поле. С этой задачей раньше я справлялся используя надстройку над акадом, но от этого я хочу уйти (тк лицензий на это приложение у нас меньше, чем человек в отделе - очень надоело каждый раз просить добрую душу закрыть акад).

Это возможно сделать?
Я первый раз сталкиваюсь с подобной задачей и не знаю с какого бока к ней подступиться.


Вопрос номер два (задаю здесь же, потому что не хочу плодить темы).
Возможно ли в акаде создавать свои переменные?
Причём значение переменной должно вводиться с клавиатуры и в каждом чертеже быть своё.
В идеале, мне нужна такая переменная i, значение которой будет равно i+1
Это нужно для автоматической маркировки жил кабеля.

Последний раз редактировалось Дмитрий Брайт, 12.09.2009 в 23:19. Причина: очепятки
Просмотров: 5774
 
Непрочитано 12.09.2009, 22:45
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


1. См.поля (field)
2. Поиск -> "сумм*+длин*+лин*"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.09.2009, 22:53
#3
Дмитрий Брайт

инженер КИПиА
 
Регистрация: 12.09.2009
Сообщений: 63


2Кулик Алексей
Спасибо за ответ!
Цитата:
Поиск -> "сумм*+длин*+лин*"
А по английски это как будет?
У меня английская лицезия.
Дмитрий Брайт вне форума  
 
Непрочитано 12.09.2009, 23:26
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Поиск по форуму имелся в виду. А в качестве критерия - вбивать то, что в кавычках.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.09.2009, 23:31
#5
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Дмитрий Брайт Посмотреть сообщение
2Кулик Алексей
Спасибо за ответ!
А по английски это как будет?
У меня английская лицезия.
Имеется, наверное, в виду, что в поиске по данным словам на форуме найдется тема с лиспом, считающим длины линий/полилиний..
-"выводить длинну кабеля в отдельное текстовое поле" - это как? при выделении полилинии, при наведении на нее курсора или что?
-"...такая переменная i, значение которой будет равно i+1.." - тоже звучит как-то.. нелинейнологично..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 13.09.2009, 01:09
#6
Дмитрий Брайт

инженер КИПиА
 
Регистрация: 12.09.2009
Сообщений: 63


2Кулик Алексей
поиск по хэлпу по слову field ответил на мой вопрос (я просто не знал, с какого бока подступиться к проблеме и чего надо искать). По формулам и прочему там тоже написано.
Ещё раз спасибо!

2AlexV
Цитата:
-"выводить длинну кабеля в отдельное текстовое поле
имелось в виду следующее:
на моем чертеже рядом с каждым кабелем есть типа таблица следующего вида (пример):
кабель КА 112-82
тип КВВГзнг 4х1 20 м
труба 20х2.8 15 м
металлорукав РЗ-ЦХ-ПВХ-15 4 м

длинна кабеля, трубы и металлорукава определяется по плану расположения средств автоматизаци. Так как в процессе рисования чертежа план расположения кабеля может меняться, хотелось бы, чтобы эта таблица заполнялась автоматически.

этого я добился с помощью Insert Field и т.д. (сложение длинн кабелей для спецификации реализовано там же)

теперь возникла следующая проблема - округление.
допустим, у меня получается 337 мм кабеля. Надо округлить до метров (т.е. значение всегда должно быть не меньше 1000, и кратно 1000), причём округлять вверх (если получилась длинна 1127, то в поле таблицы должно вписаться 2000).

Цитата:
-"...такая переменная i, значение которой будет равно i+1.." - тоже звучит как-то.. нелинейнологично..
имелось в виду следущее:
На проектируемой площадке есть приборы.
На чертеже прибор - это блок, у которого есть поле позиция.
Количество и тип приборов выбирается в начале проектирования, но потом может неоднократно меняться (если на то будет воля ведущего инженера, нач.отдела, гипа, заказчика - начальников много).
Позицию прибора я прописываю вручную, поэтому каждый раз всё переделывать довольно нудно (обычно приборов 10+ штук)

вопрос: можно ли сделать так, чтобы каждому прибору позиция присваивалась автоматически, причём если я удаляю/добавляю новый прибор, нумерация соответствующим образом сдвигалась (примерно так реализован список в мультитексте)?

Последний раз редактировалось Дмитрий Брайт, 13.09.2009 в 01:18.
Дмитрий Брайт вне форума  
 
Непрочитано 13.09.2009, 02:14
#7
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
..можно ли сделать так, чтобы каждому прибору позиция присваивалась автоматически, причём если я удаляю/добавляю новый прибор, нумерация соответствующим образом сдвигалась (примерно так реализован список в мультитексте)?
Если позиция забивается в атрибут блока, то можно программно (VBA, Lisp...). То есть, нумеровать при вставке (подсчитать кол-во уже вставленных в чертеже блоков, и присвоить соотв. атрибуту нового блока это значение +1); ну и перенумеровывать тоже..
А "штатных" средств акада для таких целей я не знаю..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 13.09.2009, 20:20
#8
Дмитрий Брайт

инженер КИПиА
 
Регистрация: 12.09.2009
Сообщений: 63


С полями столкнулся с проблемой: если в поле прописать (код генерируется автоматически: диалог поля >> объект >> длинна)
Код:
[Выделить все]
%<\AcObjProp.16.2 Object(%<\_ObjId 2130082416>%).Length \f "%lu2%pr0%ct8[0.001]">%
то мне выводится нормальное значение (код выше берёт значение длинны из линии, умножает на 0.001 и округляет до целых).

Но если я изменяю код:
Код:
[Выделить все]
%<\AcObjProp.16.2 Object(%<\_ObjId 2130082416>%).Length \f "%lu2%pr0%ct8[0.001]+1">%
то получаю неверное значение - умножение на 0.001 и округление не происходит
В чём я ошибся?

2AlexV
Цитата:
Если позиция забивается в атрибут блока, то можно программно (VBA, Lisp...). То есть, нумеровать при вставке (подсчитать кол-во уже вставленных в чертеже блоков, и присвоить соотв. атрибуту нового блока это значение +1); ну и перенумеровывать тоже..
а что можно почитать про то, как это делать программно?
Дмитрий Брайт вне форума  
 
Непрочитано 13.09.2009, 20:35
#9
VVA

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


Цитата:
Сообщение от Дмитрий Брайт Посмотреть сообщение
а что можно почитать про то, как это делать программно?
Например здесь
можно ли автоматизировать нумерацию блоков
автоматическая нумерация в атрибутах блока
Автоматическая нумерация в AutoCad 2006

Цитата:
Сообщение от Дмитрий Брайт Посмотреть сообщение
то получаю неверное значение - умножение на 0.001 и округление не происходит
В чём я ошибся?
При вставке полей используй формулу
Еще почитай эту тему: Нужно посчитать кабель
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 13.09.2009, 21:09
#10
Дмитрий Брайт

инженер КИПиА
 
Регистрация: 12.09.2009
Сообщений: 63


2VVA
спасибо за ссылки, почитаю

Цитата:
При вставке полей используй формулу
формулу уже использовал, результат был тот же самый: умножение на 0.001 и округление не происходило.



Сейчас выяснил в чём было дело: нужно было задавать форматирование в формуле, а не только в поле (которое field которое вставляется в формулу) объекта. Теперь всё работает как надо.

Спасибо за помощь!
Дмитрий Брайт вне форума  
 
Непрочитано 24.09.2009, 12:03 Всем кто только въезжает в тему
#11
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 805
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


При сохранении чертежа с паролем - поля более обновляться не будут, будет выглядеть как поле но при регенерации значение не меняется, как вернуть как было - никак, Автокад считает раз запаролили - то выдали заказчику....
perpetule вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический расчёт длинны кабеля



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно посчитать кабель Shoorup Программирование 122 06.02.2020 14:09
Расчёт опорного узла пространственной фермы Mozgunov Конструкции зданий и сооружений 39 15.12.2014 10:07
Расчёт приямка, каким методом расчитывать такую схему Mr.Merlin Конструкции зданий и сооружений 5 06.06.2013 13:44
Прокладка кабеля 0,4 кВ Дмитрий 1982 Прочее. Архитектура и строительство 6 11.01.2012 15:23
Расчёт инверсионной кровли на всплытие Зяблик Конструкции зданий и сооружений 17 26.09.2008 07:46