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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)

Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)

Ответ
Поиск в этой теме
Непрочитано 26.01.2008, 13:15 #1
Расчет спецификаций из мтекстов
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,990

Я не пользуюсь таблицами AutoCADа, черчу ячейки, в них по мтексту. Вопрос как оперативно соcчитать сумму цифр их содержимого. Слышал есть такой калькулятор, по моему calcacad называется, но на 2008-й Cad не идет. Что делать?

Добавлено.
Постепенно форум перешел в разработку липа для расчета спецификаций из мтекстов, и расчет суммы из мтекстов стал просто полезной добавкой к расчету спецификации. Последний вариант программы находится тут

Последний раз редактировалось Red Nova, 13.03.2009 в 10:11.
Просмотров: 204551
 
Непрочитано 26.01.2008, 19:13
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Видишь - Щитать никто не хочет.
Если бы у тебя был не MText, а Text, то я бы предложил посмотреть сюда:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=19574jg
Profan вне форума  
 
Непрочитано 26.01.2008, 19:23
#3
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,827
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Я не пользуюсь таблицами AutoCADа, черчу ячейки, в них по мтексту. Вопрос как оперативно сощитать сумму цифр их содержимого. Слышал есть такой калькулятор, по моему calcacad называется, но на 2008-й Cad не идет. Что делать?
Блин, пора розги применять в школах. Народ совсем русского языка не знает. Может тогда начнёт считать, а не щитать
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Автор темы   Непрочитано 26.01.2008, 21:09
#4
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Да да, все верно , поправил. Я это, русский в школе не проходил. А как на счет по теме вопроса?
Red Nova вне форума  
 
Автор темы   Непрочитано 26.01.2008, 21:21
#5
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Profan По указанной ссылке есть и для мтекса вариант. Большое спасибо..
Код выглядит так

Цитата:
(defun c:z-calc-text-value (/ value ent obj ss)
(vl-load-com)
(princ
"\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
) ;_ princ
(setq ss (ssget '((0 . "TEXT,MTEXT"))))
(if (not ss)
(princ "Не выбраны объекты")
(progn
(setq
value (rtos
(apply
(function +)
(mapcar
(function
(lambda (a)
(atof
(vl-string-trim
"%Uu {\\Ll}"
(vl-string-subst
"."
","
(cdr (assoc 1 (entget a)))
) ;_ vl-string-subst
) ;_ vl-string-trim
) ;_ atof
) ;_ lambda
) ;_ function
(vl-remove-if
(function listp)
(mapcar (function cadr)
(ssnamex ss)
) ;_ mapcar
) ;_ vl-remove-if
) ;_ mapcar
) ;_ apply
) ;_ rtos
) ;_ setq
(if (vl-string-position (ascii ".") value)
(setq value (vl-string-right-trim ".0" value))
) ;_ if
(setq value (vl-string-subst "," "." value))
(princ (strcat "\n Сумма = " value))
(alert (strcat "Сумма = " value "\nУкажите точку вставки "))
(setvar "ERRNO" 0)
(if (and ent
(vlax-property-available-p
(setq obj (vlax-ename->vla-object ent))
'TextString
) ;_ vlax-property-available-p
) ;_ and
(progn
(vlax-put-property obj 'TextString value)
(vlax-release-object obj)
) ;_ progn
) ;_ if
) ;_ progn
) ;_ if


(setq pt2 (getpoint))
(setq r (* (getvar "DIMSCALE") (getvar "DIMTXT")))
(command "_text" pt2 r 0 value)

(princ)
) ;_ defun

Последний раз редактировалось Red Nova, 27.01.2008 в 00:27.
Red Nova вне форума  
 
Непрочитано 26.01.2008, 21:51
#6
Клякса

Инженер
 
Регистрация: 15.08.2007
Питер
Сообщений: 36
<phrase 1=


Попробуй следующий код:

Sub SummaMText()

Dim SelSetColl As AcadSelectionSets
Dim CirSet As AcadSelectionSet
Dim item As AcadMText
Dim Summa As Double

Set SelSetColl = ActiveDocument.SelectionSets
Set CirSet = SelSetColl.Add("Mt")
CirSet.Select acSelectionSetAll '

For Each item In CirSet
Summa = Summa + CDbl(item.TextString)
Next item

CirSet.Delete
Set CirSet = Nothing
Set SelSetColl = Nothing

MsgBox Summa ' выводит сумму в окне

End Sub



Эта прога тупо перебирает все входящие в активный чертеж МТексты и выдает в окне сумму входящих в них чисел.
Если нужна сумма не всех имеющихся МТекстов, а только по выбору, или сумму выводить не в окне, а в другом Мтексте, то код надо будет доработать.

ЗЫ: Гы, пока я писал код, сам нашел :-)
__________________
Ошибку нашел и исправил, но в чем она заключалась, так и не понял...
Клякса вне форума  
 
Автор темы   Непрочитано 27.01.2008, 11:46
#7
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


А как на счет того, чтоб проводить более сложные вычисления, отмечая цифры мтекста. Скажем отнять, умножить, вознести в квадрат. Для этих целей наверное программка посложнее нужна, с интерфейсом похожим на калькулятор. Никто не знает такой для 2008-го?
Red Nova вне форума  
 
Непрочитано 02.02.2008, 19:37
#8
Клякса

Инженер
 
Регистрация: 15.08.2007
Питер
Сообщений: 36
<phrase 1=


Теоретически можно все, и интерфейс в виде калькулятора и математические действия.
А чем тебя штатный калькулятор не устраивает?
__________________
Ошибку нашел и исправил, но в чем она заключалась, так и не понял...
Клякса вне форума  
 
Автор темы   Непрочитано 02.02.2008, 21:30
#9
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


штатный калькулятор не работает с цифрами из мтекста.
Red Nova вне форума  
 
Автор темы   Непрочитано 02.02.2008, 21:38
#10
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Лисп с поста 5 работает так. Выбираешь мтксты или тексты, enter выходит сообщение что сумма цифр равна ***. Далее указываешь точку где в последствии появляется мтекст с содержащейся искомой в нем суммой. Программа хорошая, но уж очень хочется чтоб в конце сумма не выводилась в новом мтексте, а записывалась в уже существующий мтекст по принципу оверрайт. Прошу помочь с переделкой лиспа.
Red Nova вне форума  
 
Непрочитано 03.02.2008, 06:19
#11
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Лисп с поста 5 работает так. Выбираешь мтксты или тексты, enter выходит сообщение что сумма цифр равна ***. Далее указываешь точку где в последствии появляется мтекст с содержащейся искомой в нем суммой. Программа хорошая, но уж очень хочется чтоб в конце сумма не выводилась в новом мтексте, а записывалась в уже существующий мтекст по принципу оверрайт. Прошу помочь с переделкой лиспа.
В Веткаде есть подобная штука. Хочешь вставит новый объект, хочешь вставит ответ в существующий примитив. Может суммировать или суммировать с умножением. Одно НО - работает только с текстом.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 03.02.2008, 09:43
#12
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


У меня в файлах только мтекст
Red Nova вне форума  
 
Непрочитано 03.02.2008, 17:33
#13
Клякса

Инженер
 
Регистрация: 15.08.2007
Питер
Сообщений: 36
<phrase 1=


С ЛИСПом не знаком, а на VBA попробовать можно.
Скинь небольшой файл, с которым можно работать. Укажи, какие МТЕксты складывать (или какие другие мат. вычисления), а в какой - вставлять результат... Может, там какие критерии есть для выделения или еще что... Без этого задача кажется совсем неопределенной...
__________________
Ошибку нашел и исправил, но в чем она заключалась, так и не понял...
Клякса вне форума  
 
Непрочитано 03.02.2008, 17:34
#14
Клякса

Инженер
 
Регистрация: 15.08.2007
Питер
Сообщений: 36
<phrase 1=


А штататный кальк вполне работает с цифрами из МТекста, если их туда скопипастить ;-)
__________________
Ошибку нашел и исправил, но в чем она заключалась, так и не понял...
Клякса вне форума  
 
Автор темы   Непрочитано 03.02.2008, 21:19
#15
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


В штатном калькуляторе цифры надо копировать поштучно, а используя лисп с поста 5 можно отметить разом нужные мтексты содержащиеся в которых цифры надо сложить, и результат выводится в новом мтексте, только мне удобнее чтоб результат вписывался в уже существующий мтекст.
>Критерий никаких при выделении нет, выделяешь нужные мтексты, те что рядом – рамкой, другие поштучно, enter, результат готов.
Попробуй попользоваться Лиспом с поста 5, думаю станет понятно.
А экспериментировать можешь с любым файлом где создано несколько мтекстов с содержащимися в них цифрами, скажем 2, 15, 56. Выделяешь их, складываешь, насколько я помню алгебру, результат равен 73, ну или возле того.
Red Nova вне форума  
 
Непрочитано 04.02.2008, 12:45
#16
a-alex

конструктор
 
Регистрация: 05.03.2007
Сообщений: 64


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Лисп с поста 5 работает так. Выбираешь мтксты или тексты, enter выходит сообщение что сумма цифр равна ***. Далее указываешь точку где в последствии появляется мтекст с содержащейся искомой в нем суммой. Программа хорошая, но уж очень хочется чтоб в конце сумма не выводилась в новом мтексте, а записывалась в уже существующий мтекст по принципу оверрайт. Прошу помочь с переделкой лиспа.
Этот лисп есть по этой ссылке
Цитата:
Сообщение от Profan Посмотреть сообщение
Код:
[Выделить все]
(defun c:z-calc-text-value (/ value ent obj ss)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
    ) ;_ princ
  (setq ss (ssget '((0 . "TEXT,MTEXT"))))
  (if (not ss)
    (princ "Не выбраны объекты")
    (progn
      (setq
  value (rtos
    (apply
      (function +)
      (mapcar
        (function
          (lambda (a)
      (atof
        (vl-string-trim
          "%Uu {\\Ll}"
          (vl-string-subst
            "."
            ","
            (cdr (assoc 1 (entget a)))
            ) ;_ vl-string-subst
          ) ;_ vl-string-trim
        ) ;_ atof
      ) ;_ lambda
          ) ;_ function
        (vl-remove-if
          (function listp)
          (mapcar (function cadr)
            (ssnamex ss)
            ) ;_ mapcar
          ) ;_ vl-remove-if
        ) ;_ mapcar
      ) ;_ apply
    ) ;_ rtos
  ) ;_ setq
      (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
      (princ (strcat "\n Сумма = " value))
      (alert (strcat "Сумма = " value))
      (setvar "ERRNO" 0)
      (while
  (and (not (setq  ent
       (car
         (nentsel
           (strcat
             "\n Выберите текстовый объект для записи значения <Выход>:"
             ) ;_ strcat
           ) ;_ entsel
         ) ;_ car
      ) ;_ setq
      ) ;_ not
       (equal (getvar "ERRNO") 7)
       ) ;_ and
   (setvar "ERRNO" 0)
   ) ;_ while
      (if (and ent
         (vlax-property-available-p
     (setq obj (vlax-ename->vla-object ent))
     'TextString
     ) ;_ vlax-property-available-p
         ) ;_ and
  (progn
    (vlax-put-property obj 'TextString value)
    (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
      ) ;_ progn
    ) ;_ if
  (princ)
  ) ;_ defun
a-alex вне форума  
 
Автор темы   Непрочитано 04.02.2008, 14:49
#17
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо, там и вправду все так как мне надо. Надо мне быть повнимательней.
Red Nova вне форума  
 
Непрочитано 05.02.2008, 12:06
#18
a-alex

конструктор
 
Регистрация: 05.03.2007
Сообщений: 64


Цитата:
Сообщение от Red Nova Посмотреть сообщение
используя лисп с поста 5 можно отметить разом нужные мтексты содержащиеся в которых цифры надо сложить, и результат выводится в новом мтексте, только мне удобнее чтоб результат вписывался в уже существующий мтекст.
Никто не видел лисп- тоже самое только с умножением.
a-alex вне форума  
 
Непрочитано 05.02.2008, 12:46
#19
Кулик Алексей aka kpblc
Moderator

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


Ну замени
Код:
[Выделить все]
(apply
      (function +)
на
Код:
[Выделить все]
(apply
      (function *)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.02.2008, 13:01
#20
a-alex

конструктор
 
Регистрация: 05.03.2007
Сообщений: 64


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ну замени
Код:
[Выделить все]
(apply
      (function +)
на
Код:
[Выделить все]
(apply
      (function *)
У меня были смутные догадки, но подумал что это слишком просто.
Спасибо Алексей!
a-alex вне форума  
 
Непрочитано 05.02.2008, 16:14
#21
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Где-то здесь уже выкладывал этот лисп, но даже сам найти не смог , поэтому повторюсь.
Программа написана без использования vla-функций, работает на 2002-м АвтоКАДе, по идее пойдет и на Brics/ZW/Proge CADах.

PS: Что за прикол с похожими темами? Это по какому критерию они похожи?
Вложения
Тип файла: lsp TextCalc-v4.1.LSP (11.0 Кб, 405 просмотров)
Олег К. вне форума  
 
Автор темы   Непрочитано 05.02.2008, 18:37
#22
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Олег К. Проверил на 2008-ом, не работает, выводит сообщение
Цитата:
Укажите текст или [ Число / Функция / Результат / Выход] <Выход>:
но дальше пишет прервано пользователем.
Red Nova вне форума  
 
Непрочитано 05.02.2008, 19:39
#23
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


>> Red Nova
Ну-у, собснно, в 2008-м я не тестировал, даже не видел .
Только что проверил этот же файл на седьмом - все работает.
После первого запроса Esc случайно не нажали? Если нет, тогда в коде убрать переопределение функции *error*, и посмотреть, какую ошибку выдает.

Это что-то: ни у кого из знакомых нет АвтоКАДа 2008! Так что сам никак проверить не смогу.
Олег К. вне форума  
 
Автор темы   Непрочитано 05.02.2008, 21:53
#24
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Дома прогнал на 2007-м, тоже самое, не работает, а на домашнем 2008-м (у меня и тот и другой стоят) работает, но как я понял не совсем корректно.
После запуска команды
1.Укажите текст или [ Число / Функция / Результат / Выход] <Выход>:
Дальше если нажать на кокой–либо текст выходит вот что
2.Выберите действие [ + / - / * //] <Отмена>:
Выбираешь Кокой–то знак, далее в ком. строке пишется идущее вычисление, если выбрать подменю, скажем
3.Результат
Тогда выходит послание
4.Вы хотите выйти без сохранения результата вычислений? [Да / Нет] <Нет>

По–моему после пунктов 1 и 3 идет неправильное действие. И почему это интересно программа так непостоянна, более менее заработала на одном компьютере из трех.
Red Nova вне форума  
 
Непрочитано 06.02.2008, 10:29
#25
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Странно, впервые с таким сталкиваюсь. Есть большой парк машин, когда-то проверял на 2002, 4, 6, 7 АвтоКАДах и на разных машинах - везде работало нормально. Может надстройки какие-то есть, вроде СПДСа? Хотя не должно бы влиять.
При правильной работе должно выглядеть так:
Код:
[Выделить все]
Command: textcalc enter

  ВЫЧИСЛЕНИЕ ТЕКСТА
 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>:  ткнул на текст с числом 2

 Выберите действие [ + / - / * //] <Отмена>: + enter

 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: ткнул на второй текст, число 9
   Результат:  2.000 + 9.000 = 11.000
 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: ф enter

 Выберите действие [ + / - / * //] <Отмена>: * enter

 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: ткнул на текст с числом 5
   Результат:  11.000 * 5.000 = 55.000
 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: ч enter
 Введите число <Отмена>: 12 enter

   Результат:  55.000 * 12.000 = 660.000
 Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: р enter
 Изменить существующий текст или создать новый? [Изменить / Создать]: и enter
 Выберите текст для изменения:
Select objects: ткнул на текст в который будет записан результат

 Сколько оставить цифр после запятой [0 - 5] <1>:enter

 Продолжить вычисления, начать новые или выход? [Продолжить / Новый / Выход]: в enter
 END
Command:
Курсивом действия не отображаемые в командной строке.
В начале выбираемых текстов обязательно должны быть какие-либо цифры, если что другое - такой текст не считается числом. Если в начале работы программы выбрано или введено с клавиатуры число автоматически появится запрос на выбор действия (+-*/); если в начале было задано это действие, то такого запроса не будет. Так что пункты 1 и 2 правильны. Есть возможность выбирать опции при любой раскладке клавиатуры, т.е. а(англ)=ф, d=в(рус), x(англ)=ч и т.д.
Цитата:
Выбираешь Кокой–то знак, далее в ком. строке пишется идущее вычисление
Да не может такого быть, по логике программы невозможно вычисление при отсутствии одного из чисел.
Если программа не работает по приведенному выше сценарию, выложите здесь пример файла с текстами (в формате 2004 или 7 КАДа) и листинг из комстроки с запросами программы и Вашими ответами.

Последний раз редактировалось Олег К., 06.02.2008 в 10:41.
Олег К. вне форума  
 
Автор темы   Непрочитано 06.02.2008, 12:40
#26
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


На работе вчера менял AutoCAD, сейчас программка тут работает. С одним из вопросов разобрался, остался вот кокой вопрос. После этой строки

Укажите текст или [ Число / Функция / Результат / Выход] <Выход>: р enter

какое подменю я б не выбрал, пишет

Вы хотите выйти без сохранения результата вычислений? [Да / Нет] <Нет>

Следовательно, не выходит никуда вписать результат.
Red Nova вне форума  
 
Непрочитано 06.02.2008, 13:02
#27
Кулик Алексей aka kpblc
Moderator

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


Попробуй выбирать через конт.меню.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.02.2008, 13:53
#28
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


"Ничё не понимаю" ©Колобки.

Хотя стоп. Вы же вводите опции по русски? Тогда возможно виновата русская кодировка. У меня ANSI 1251. Попробуйте вводить опции в английской раскладке (выше упоминал).
Остается только такое решение. Похоже при неопознанной опции сбрасывается в "пустой ввод", а он по умолчанию = выходу.

Последний раз редактировалось Олег К., 06.02.2008 в 14:00.
Олег К. вне форума  
 
Автор темы   Непрочитано 06.02.2008, 19:47
#29
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Олег К .Попробовал с клавы, заработало. Спасибо.

Товарищи программисты, есть вопрос по Лиспу с поста 16. С применением этого лиспа, после того как все нужные цифры выбраны, когда жмешь enter вылетает сообщение, что сумма мол такая–та. Жмешь на OK, после этого выбираешь мтекст в который надо все вписать.
Можно ли убрать из последовательности вылетающее окно с сообщением о результате? То–есть выбрал цифры которые надо сложить, enter, выбрал текст в который вписываешь результат, enter, конец.
Red Nova вне форума  
 
Непрочитано 07.02.2008, 09:36
#30
VVA

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


Находишь в тексте красную строчку
Код:
[Выделить все]
 
(princ (strcat "\n Сумма = " value))
(alert (strcat "Сумма = " value))
(setvar "ERRNO" 0)
И ставишь перед ней точку с запятой. Чтобы было так
Код:
[Выделить все]
 
(princ (strcat "\n Сумма = " value))
; (alert (strcat "Сумма = " value))
(setvar "ERRNO" 0)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 07.02.2008, 12:35
#31
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA Спасибо.
Red Nova вне форума  
 
Автор темы   Непрочитано 07.02.2008, 20:08
#32
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Еще один вопрос к программистам. Лисп отзывается только когда клавиатура на английском, если в этот момент печатаешь на русском, то приходится менять язык для вызова Лиспа. Подскажите пожалуйста как сделать так, чтоб лисп вызывался и в случае ввода русских букв соответственного расположения на клавиатуре?
Red Nova вне форума  
 
Непрочитано 08.02.2008, 09:26
#33
VVA

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


Это ты про какой лисп? Уточни. Тут их много
По поводу русских букв, ты имеешь ввиду вызов команды или опции?
Для команд:
для примера возьмем лисп из #16
Там определена команда:
(defun c:z-calc-text-value (/ value ent obj ss)
далее по тексту
И добавляем свои команды (например команду Z и Я)
Код:
[Выделить все]
 
(defun C:Z () (c:z-calc-text-value))
(defun C:Я () (c:z-calc-text-value))
Теперь от раскладки ничего не зависит

__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.02.2008, 09:58
#34
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


А можно просто сделать кнопку с таким макросом:
^C^C(load "D:/ACAD/LISP/z-calc-text-value.lsp");z-calc-text-value
Олег К. вне форума  
 
Автор темы   Непрочитано 08.02.2008, 11:16
#35
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA Еще раз спасибо, речь шла именно об этом лиспе.
Олег К. Для многих команд я именно так и делаю.
Red Nova вне форума  
 
Автор темы   Непрочитано 11.02.2008, 12:17
#36
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


C мтекстом разобрались, а как суммировать содержания размеров?
Red Nova вне форума  
 
Непрочитано 11.02.2008, 15:36
#37
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Для подсчета размеров, но только не переопределенных вручную.
Заменить соответствующие строки программы приведенными ниже:
Код:
[Выделить все]
;----- Действия программы при выборе текстового примитива
   (if (= (type oneobj) 'list)
     (progn ; _1
       (if (= (type (setq oneobj (car oneobj))) 'ename)
         (progn ; _2
	   (cond
	     ((equal (cdr (assoc 0 (entget oneobj))) "DIMENSION")
	      (setq numtext (cdr (assoc 42 (entget oneobj))))
	     ) ; oneobj - размер
	     ((vlax-property-available-p (vlax-ename->vla-object oneobj) 'textstring)
	      (setq numtext (_Cris-UnfTextStr (vla-get-TextString (vlax-ename->vla-object oneobj))))
	     ) ; oneobj - текст
	     (T (princ "\n Этот объект не текст. Выберите еще раз") (princ)
	     ) ; oneobj - любой другой объект AutoCAD'а
	   ) ; cond
	   (setq oneobj nil)
         ) ; progn_2
       ) ;  if(type)=ename
     ) ; progn_1
   ) ;  if(type)=list
    
;----- Действия программы при выборе опции ввода числа с клавиатуры
Редактировать файл в автокадовском Visual LISP Editore, либо в чём-то вроде Notepad++.

а, и еще изменить номер версии на 4.2
Олег К. вне форума  
 
Автор темы   Непрочитано 12.02.2008, 13:58
#38
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Олег К. Спасибо, работает. А можно так сделать, чтоб в конце можно было результат не в текст списать, а в размер вписать, по принципу text overwrite? И как с размерами, которые уже overwrite? Их тоже иногда сосчитать нужно бывает.
Red Nova вне форума  
 
Автор темы   Непрочитано 12.02.2008, 14:13
#39
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Нашел подобную команду в toolpac, есть возможность вписать результат в размер. хорошая вещ всем советую. Плохо там то что считает с несколькими цифрами после запятой (не округляет). И с overwrite тоже туго.
Red Nova вне форума  
 
Непрочитано 12.02.2008, 14:14
#40
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Сделаю, но быстро не обещаю, своей работы привалило.
Завтра к вечеру-послезавтра.

Для взятия переопределенных размеров строки 61-63 заменить на следующее:
Код:
[Выделить все]
((equal (cdr (assoc 0 (entget oneobj))) "DIMENSION")
	      (if (eq (cdr (assoc 1 (entget oneobj))) "")
		(setq numtext (cdr (assoc 42 (entget oneobj))))
		(setq numtext (atof (cdr (assoc 1 (entget oneobj)))))
	      ) ; if
	     ) ; oneobj - размер

Последний раз редактировалось Олег К., 12.02.2008 в 14:30.
Олег К. вне форума  
 
Непрочитано 13.02.2008, 14:09
#41
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Надо же, все оказалось проще, чем думал. Мог бы и вчера доделать.
Выкладываю последний вариант. Добавлена работа с размерами и вставка результата в размерный текст, вот только радиусы и диаметры не берет, и дуговые в радианах считает. Да так ли уж часто нужно такие размеры вычислять. Установка числа знаков после запятой снесена в пункт "Опции", по умолчанию =1 (самого этот запрос уже достал). Нельзя ввести ноль - так я от деления на ноль избавился. Обнаружилась интересная особенность: нельзя два раза подряд сделать вывод результата - логика программы не позволяет.

Еще просьба, кому не лень потестируйте программку в AutoCAD 2008, ZW/Proge/Brics CADах.
Вложения
Тип файла: lsp TextCalc-v4.3.LSP (11.5 Кб, 846 просмотров)
Олег К. вне форума  
 
Непрочитано 13.02.2008, 16:07
#42
VVA

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


Чуток подправил твой код. Теперь игнорирует угловые размеры, обрабатывает дуговой размер. Надеюсь ничего не испортил
Код:
[Выделить все]
;;;  TEXTCALC - TEXT CALCULATION  ver 4.3
;;;
;;; All rights reserved including right of reproduction in whole or in part in ang form.
;;; Данная программа производит вычисления значений взятых из текста. Запрашивает указание тестового
;;; примитива с числом или ввод числа с клавиатуры, выбор арифметического действия (+, -, * или /).
;;; Вывод результата:  в существующий текст (изменение содержания) или создание нового текста
;;; с результатом (ОБЯЗАТЕЛЬНО УКАЗАТЬ ОБРАЗЕЦ ТЕКСТОВОГО ПРИМИТИВА !!!).
;;; После каждого (кроме первого) задания чисел в командную строку выводится текущий результат
;;; По вопросам о работе программы просьба обращаться в отдел ТТОВ к Крылову О.В.
;;;
;;; 12.02.2008: добавлена возможность брать значения размеров и выводить результат в размерный текст.
;;;             не работает с радиусами и диаметрами, дуговые размеры берутся в радианах.
(defun C:TextCalc (/ *error* numerror ExitNumFun oneobj numtext numfuntext numresult resultvar 
                 changeobj textlayer textprecision bit1 bit7 bit8 bit10 bit40 bit67 bit410 
                 resultexit numout)
;;; ФУНКЦИЯ ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ ВЗЯТЫХ ИЗ ТЕКСТОВЫХ ПРИМИТИВОВ
  (gc)
  (setq p_cmdecho (getvar "CMDECHO") p_osmode (getvar "OSMODE") p_blipmode (getvar "BLIPMODE"))
; Переопределение функции *error*, вместо стандартной
 (defun *error* (msg)
   (princ "Программа прервана пользователем")
   (setvar "CMDECHO" p_cmdecho)
   (setvar "OSMODE" p_osmode)
   (setvar "BLIPMODE" p_blipmode)
   (setq p_cmdecho nil p_osmode nil p_blipmode nil)
   (setq numerror nil ExitNumFun nil oneobj nil numtext nil numfuntext nil numfunction nil numresult nil numout nil textprecision nil)
   ; (princ "\n ERREND")
   (princ)
 ) ; defun(*error*)
 (setvar "CMDECHO" 0)
 (setvar "OSMODE" 0)
 (setvar "BLIPMODE" 0)
 (setq oneobj nil numtext nil numfuntext nil numfunction nil number1 nil numresult nil number2 nil ExitNumFun nil textprecision 1) 
  
 (princ "\n\t ВЫЧИСЛЕНИЕ ТЕКСТА")
 (while (null ExitNumFun)
   (setvar "ERRNO" 0)
   (initget "Число Функция Результат Опции Выход X A H J D _X A H J D X A H J D")
   (setq oneobj (entsel "\n Укажите текст или [Число/Функция/Результат/Опции/Выход] <Выход>: "))
;----- Действия программы при пустом вводе
   (if (null oneobj)
     (progn
       (setq numerror (getvar "ERRNO"))
       (cond
  ((= numerror 7) (princ "\n Вы промахнулись, ничего не выбрано. Выберите еще раз. \n"))
  ((= numerror 52) (setq oneobj "D"))
       ) ; cond
       (setq numerror nil)
       (setvar "ERRNO" 0)
     ) ; progn
   ) ; if(null oneobj)
;----- Действия программы при выборе текстового примитива
   (if (= (type oneobj) 'list)
     (progn ; _1
       (if (= (type (setq oneobj (car oneobj))) 'ename)
         (progn ; _2
    (cond
      ((and            ;_ Modifyed VVA >
                (wcmatch (cdr (assoc 0 (entget oneobj))) "*DIMENSION") ;_ DIMENSION and ARC_DIMENSION
                (or
                (member '(100 . "AcDbAlignedDimension") (entget oneobj))  ;_Параллельный или линейный
                (member '(100 . "AcDbDiametricDimension") (entget oneobj));_Диаметр
                (member '(100 . "AcDbRadialDimension") (entget oneobj))   ;_Радиус
                (member '(100 . "AcDbArcDimension") (entget oneobj))      ;_Дуговой
                )
                )             ;_ Modifyed VVA <
       (if (eq (cdr (assoc 1 (entget oneobj))) "")
  (setq numtext (cdr (assoc 42 (entget oneobj))))
  (setq numtext (atof (cdr (assoc 1 (entget oneobj)))))
       ) ; if
      ) ; oneobj - размер
      ((vlax-property-available-p (vlax-ename->vla-object oneobj) 'textstring)
       (setq numtext (_Cris-UnfTextStr (vla-get-TextString (vlax-ename->vla-object oneobj))))
      ) ; oneobj - текст
      (T (princ "\n Этот объект не текст. Выберите еще раз") (princ)
      ) ; oneobj - любой другой объект AutoCAD'а
    ) ; cond
    (setq oneobj nil)
         ) ; progn_2
       ) ;  if(type)=ename
     ) ; progn_1
   ) ;  if(type)=list
    
;----- Действия программы при выборе опции ввода числа с клавиатуры
   (if (member oneobj '("Число" "X")) ; oneobj=Число
     (setq numtext (getreal "\n Введите число <Отмена>: ") oneobj nil)
   ) ; if(число)
; Проверка numtext на ноль (возникает если выбран MText или Text у которого
; первый символ не цифра, так же могут специально ввести 0) и запрет вычисления
   (if (eq numtext 0)
     (progn
       (princ "\n\t В выбранном тексте в начале не цифра, либо ВЫ специально ввели ноль.
               \n\t НЕ ПОЙДЁ-ОТ !!! Повторите ввод правильно!") (princ)
       (setq numtext nil)
     ) ; progn
   ) ; if(ноль)
;----- Действия программы при выборе опции ввода математической функции.
; Автоматический запрос выбора функции при наличии первого аргумента,
; выбранного в виде текстового примитива или введенного с клавиатуры
    (if (or (member oneobj '("Функция" "A")) ; oneobj=Функция
     (and (null numfuntext)
   (not (null numtext))
     ) ; and
 ) ; or
      (progn
 (initget 6 "+ - * /")
 (setq numfuntext (getkword "\n\n Выберите действие [ + / - / * //] <Отмена>: "))
 (setq numfunction (cond
         ((= numfuntext "+") +)
       ((= numfuntext "-") -)
       ((= numfuntext "*") *)
       ((= numfuntext "/") /)
     ) ; cond
 ) ; setq
 (setq oneobj nil)
      ) ; progn
    ) ; if(функция)
   
;----- Действия программы при выборе пункта "Опции"
   (if (member oneobj '("Опции" "J")) ; oneobj=Опции
     (progn
       (initget 4 "0 1 2 3 4 5 6 7 8 9")
       (setq textprecision (getint "\n Сколько оставить цифр после запятой [0 - 9] <1>: "))
       (if (null textprecision) (setq textprecision 1))
     ) ; progn
   ) ; if(опции)
   
;----- Действия программы при выборе опции вывода результата.
; Варианты вывода: изменить существующий текстовой примитив или создать новый
; по выбранному образцу. Действия при ошибочном выборе опции.
    (if (and (member oneobj '("Результат" "H")) (not (null numresult))) ; oneobj=Результат
      (progn ; _1
 (initget 15 "Изменить Создать B C _B C B C")
 (setq resultvar (getkword "\n Изменить существующий или создать новый текст? [Изменить/Создать]: "))
 (cond
   ((member resultvar '("Изменить" "B")) ; resultvar=Изменить
    (princ "\n Выберите объект для изменения: ")
    (setq changeobj (entget (ssname (ssget "_:S" '((0 . "*TEXT,DIMENSION"))) 0)) textlayer (cdr (assoc 8 changeobj)))
    (if (= (cdr (assoc 70 (tblsearch "LAYER" textlayer))) 4)  ; бит70 = 4 - слой заблокирован (проверять для каждой версии AutoCAD'a)
             (vl-cmdf "_.-layer" "_U" textlayer "")
    )
    (entmod (subst (cons 1 (rtos numresult 2 textprecision)) (assoc 1 changeobj) changeobj))
    (setq changeobj nil textlayer nil resultvar nil)
   ) ; resultvar=Изменить
   ((member resultvar '("Создать" "C")) ; resultvar=Создать
    (princ "\n Выберите образец для нового текста (укажите существующий текст): ")
    (setq changeobj (entget (ssname (ssget "_:S" '((0 . "*TEXT"))) 0)) textlayer (cdr (assoc 8 changeobj)))
    (if (= (cdr (assoc 70 (tblsearch "LAYER" textlayer))) 4)  ; бит 4 - слой заблокирован (проверять для каждой версии AutoCAD'a)
             (vl-cmdf "_.-layer" "_U" textlayer "")
    )
           (setq bit7 (assoc 7 changeobj)
                 bit8 (assoc 8 changeobj)
                 bit40 (assoc 40 changeobj)
                 bit67 (assoc 67 changeobj)
                 bit410 (assoc 410 changeobj))
           (initget 15)
           (setq bit10 (append '(10) (getpoint "\n Укажите точку вставки текста: ")))
    (setq bit1 (cons 1 (rtos numresult 2 textprecision)))
    (entmakex (list '(0 . "MTEXT") '(100 . "AcDbEntity") bit67 bit410 bit8 '(100 . "AcDbMText") bit10 bit40 '(41 . 0.0) '(71 . 5) bit1 bit7 '(210 0.0 0.0 1.0) '(50 . 0.0)))
    (setq bit1 nil bit7 nil bit8 nil bit10 nil bit40 nil bit67 nil bit410 nil
   changeobj nil textlayer nil resultvar nil)
   ) ; resultvar=Создать
 ) ; cond(resultvar)
 
   ; вывод запроса на продолжение расчетов
        (initget 15 "Продолжить Новый Выход G Y D _G Y D G Y D")
 (setq resultexit (getkword "\n Продолжить вычисления, начать новые или выход? [Продолжить/Новый/Выход]: "))
        (cond
   ((member resultexit '("Продолжить" "G")) (setq number1 numresult)) ; resultexit=Продолжить
   ((member resultexit '("Новый" "Y")) (setq numfunction nil numfuntext nil number1 nil)) ; resultexit=Новый
   ((member resultexit '("Выход" "D")) (setq numfunction nil numfuntext nil number1 nil ExitNumFun T textprecision nil)) ; resultexit=Выход
 ) ; cond(resultexit)
        (setq oneobj nil resultexit nil number2 nil numresult nil)
      ) ; progn_1
    ) ; if(numresult)=T
   
;----- Действия программы, когда выбрана опция вывода результата, но результат не вычислен
    (if (and (member oneobj '("Результат" "H")) (null numresult)) ; oneobj=Результат
      (progn
 (princ "\n Результат не может быть выведен, так как нет данных для вычислений")
 (princ) (setq oneobj nil)
      ) ; progn
    ) ; if(numresult)=nil
  
;----- Действия программы при выборе опции выхода.
; Если есть результат вычислений требуется дополнительное подтверждение.
    (cond
      ((and (member oneobj '("Выход" "D")) (not (null numresult))) ; oneobj=Выход
       (initget 6 "Да Нет L Y _L Y L Y")
 (setq numout (getkword "\n Вы хотите выйти без сохранения результата вычислений? [Да / Нет] <Нет> :"))
 (if (member numout '("Да" "L")) ; numout=Да
   (setq ExitNumFun T numout nil oneobj nil numtext nil number1 nil number2 nil numfunction nil numresult nil textprecision nil)
 ) ; if
      )
      ((and (member oneobj '("Выход" "D")) (null numresult)) ; oneobj=Выход
       (setq ExitNumFun T numout nil oneobj nil numtext nil number1 nil number2 nil numfunction nil textprecision nil)
      )
    ) ; cond(Выход)
; Назначение аргументов для вычислений.
   (if (null number1)
     (setq number1 numtext numtext nil) ; первый аргумент
     (setq number2 numtext numtext nil) ; второй аргумент
   ) ; if(number1)
; Функция выполнения вычислений.
  (if (and (not(null numfunction))
    (not(null number1))
    (not(null number2))
      ) ; and
    (progn
      (setq numresult (numfunction number1 number2))
      (princ (strcat "\n\t  Результат:  " (rtos number1 2 3) " " numfuntext " " (rtos number2 2 3) " = " (rtos numresult 2 3)))
      (princ)
      (setq number1 numresult number2 nil)
    ) ; progn
  ) ; if(вычисление)
  
) ; while(ExitNumFun)
  
   (setq ExitNumFun nil oneobj nil numtext nil numfuntext nil numfunction nil numresult nil numout nil textprecision nil)
        (setvar "CMDECHO" p_cmdecho)
        (setvar "OSMODE" p_osmode)
        (setvar "BLIPMODE" p_blipmode)
        (setq p_cmdecho nil p_osmode nil p_blipmode nil)
        (princ "\n END")
        (print)
  
) ; defun
;;; ---------------------------------  _Cris-UnfTextStr  ---------------------------------
;;; Функция снимает метки форматирования текстовой строки и возвращает вещественное число
;;; если в начале текста цифра(ы), либо число 0.0 если текст начинается с буквы.
;;; Пример:
;;; (_Cris-UnfTextStr "{\\fArial Narrow|b0|i0|c204|p34;321,456}")
;;; Возвращает: 321.456
;;; --------------------------------------------------------------------------------------
(defun _Cris-UnfTextStr (textstr / startfnum endfnum formatstr)
  (setq startfnum 0 endfnum 0)
  (while (not (null startfnum))
    (setq startfnum (vl-string-search "{\\" textstr))
    (if (not (null startfnum))
      (progn ; _1
        (setq endfnum (vl-string-search ";" textstr startfnum))
        (if (not (null endfnum))
   (progn ; _2
     (setq formatstr (substr textstr (1+ startfnum) (1+ (- endfnum startfnum)))
           textstr (vl-string-subst "" formatstr textstr startfnum)
           textstr (vl-string-subst "" "}" textstr startfnum))
     (setq endfnum 0 formatstr nil)
   ) ; progn_2
        ) ; if(endnum)
 (setq startfnum 0)
      ) ; progn_1
    ) ; if(startnum)
  ) ; while(not (null startnum)
  (atof (vl-string-translate "," "." textstr))
  ;(princ (strcat "\n Текст объекта: " (rtos numtext 2 3))) (princ)
) ; defun_Cris-UnfTextStr
;;; --------------------------------------------------------------------------------------
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.02.2008, 18:25
#43
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Сейчас АКАД заново загрузил, исходная версия v4.3 тоже нормально работает, разве что угловой размер не исключается. В #41 я малость дуговой и угловой размеры перепутал. Вообще, для углового размера можно сделать пересчет из радиан в единицы чертежа, но думаю не стоит мешать линейные и угловые величины.

Кстати, это может быть выложено в "Готовые программы"? Если да - нужно в некоторых местах до ума довести, нет - и так сойдет.
Олег К. вне форума  
 
Непрочитано 13.02.2008, 19:49
#44
VVA

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


Правь и выкладывай. Я в версию 4.3 как раз и добавил обработку дугового размера и исключил из обработки угловой
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 13.02.2008, 21:11
#45
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Благодарю. Хорошо сделано.
У меня есть предложение объединить хорошие стороны лиспов выложенных на этом форуме. Есть лисп выложенный Олегом (textcalc4.3) и лисп с поста 16, взятый с сайта caduser.
Перечислю положительные стороны каждого (ИМХО).

textcalc4.3 – есть возможность работать не только с текстом и мтекстом, но и с размерами используя одну команду. Есть возможность контроля количества цифр после запятой.

лисп с поста 16 – Процесс выполнения действий упрощен, можно минимальным затратами времени сосчитать сумму текстов (я еще более его упростил, избавившись от вылетающего окна с содержанием суммы вычисления). Еще тут радует возможность не поштучного выбора, а группового (рамкой).

Как бы я хотел чтоб выглядел финальный лисп.
При всех достоинствах лиспа от Олега должен сказать, что постоянная нужда выбора подкоманд сбивает с толку, и нет возможности выбрать насколько объектов рамкой. На данный момент я использую оба лиспа. Создал несколько копий Лиспа с поста 16, в них поменял команды вызова и каждому задал определенную функцию ( + - * / ). Фактически нужными для меня оказались команды складывания и умножения. Для работы с размерами я пользуюсь программой от Олега. Олег создал очень интересную программу, с возможностью в процессе вычислений менять функцию, но как показывает практика важнее чтоб команда работала быстро.
Предлагаю создать облегченную программу, состоящую из четырех команд (по команде на функцию), без запросов на подфункции. Знаю некоторые возможности созданные Олегом пропадают, но цель в убыстрении процесса вычислений.

То есть команда после вызова работает так. (пример для суммирование)
-выберите объекты,
выбираем размеры или тексты которые нужно просуммировать (выбор возможен и рамкой и поштучно), enter,
-выберите объект для записи значения,
выбираем размер или текст, enter, (здесь как альтернативу enter-у думаю уместно разместить подменю по поводу округления, после чего опять-таки выбираем объект для записи, enter,)
Процесс окончен. Если вы заметили количество действий сведено к минимуму.
При этом количество цифр после запятой (округление) предлагаю по умолчанию оставить 1, для других случаев можно оставить запрос от 0 до 9.
Надеюсь такой переделанный вариант программы приемлем для Олега, как для автора textcalc.

P.S. textcalc и без предложенных мною изменений рекомендую в “Готовые программы”

Последний раз редактировалось Red Nova, 14.02.2008 в 14:55.
Red Nova вне форума  
 
Непрочитано 14.02.2008, 10:14
#46
VVA

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


Вот мой аналог #16. Правда результат пишет в новый текст, но это поправимо. Из особенностей:
Разбирает Мтексты по параграфам,
Безразличен к . или , в разделителе
Остальное в коментариях
Код:
[Выделить все]
;|============= Команда SumT ================================== 
  Назначение:  Суммирование Тектса,Мтекста, Размеров указанием или рамкой.
               Угловые размеры игнорируются
  Особенности: Безразлична к разделителям точка или запятая. 
               Ввиду особенности работы atof стоки вида "22.3мама" 
               будут учтены как число 22.3
 
               При выводе результата число округляется в соответствии 
               с текущими установками переменной LUPREC. Команда _UNITS 
|; 
(defun c:sumT ( / res selset ins_pt txt_height blk obj ed *error*)
  (defun *error* (msg)
    (setvar "NOMUTT" 0)  ;_ Восстанавливаем NOMUTT
    (princ msg)
    )
 (vl-load-com)(setq res 0.)
 (princ "\nВыберите тексты или размеры: ")
  (setvar "NOMUTT" 1)  ;_ Отключаем NOMUTT
  (setq selset (ssget '((0 . "TEXT,MTEXT,*DIMENSION"))))
  (setvar "NOMUTT" 0)  ;_ Восстанавливаем NOMUTT
 (if  selset
    (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
     (setq obj (vlax-ename->vla-object ent)
           ed (entget ent)
           ) 
     (if (and (wcmatch (cdr(assoc 0 ed)) "*DIMENSION")
              (or
                (member '(100 . "AcDbAlignedDimension") ed)  ;_Параллельный или линейный
                (member '(100 . "AcDbDiametricDimension") ed);_Диаметр
                (member '(100 . "AcDbRadialDimension") ed)   ;_Радиус
                (member '(100 . "AcDbArcDimension") ed)      ;_Дуговой
                )
              )
       (progn
         (setq blk
             (vla-item (vla-get-blocks
                         (vla-get-activedocument (vlax-get-acad-object))
                       ) ;_ end of vla-get-Blocks
                       (cdr (assoc 2 ed))
             ) ;_ end of vla-item
      ) ;_ end of setq
      (vlax-for item blk
        (if (= (vla-get-objectname item) "AcDbMText")
          (setq obj item)
          )
         )
       )
       )
     (if (vlax-property-available-p obj 'Textstring)
       (progn
     (setq str (str-str-lst (vla-get-textstring obj) "\\P")
     str (mapcar '(lambda(x)(mip_mtext_unformat x)) str)
      str (mapcar '(lambda(x)(vl-string-translate "," "." (vl-string-trim  "%UuoOcC \t"   x))) str)
      str (mapcar '(lambda(x)(vl-string-trim  "%UuoOcC \t"   x)) str)
     res (+ res (apply '+ (mapcar 'atof str))))
     )
       )
      ) ;_ end of foreach 
    ) ;_ end of if 
  (princ "\nРезультат=")(princ (rtos res 2)) 
  (if (not (equal res 0. 1e-3)) 
    (progn 
      (if (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) 0.0) ;_ end of =
        (progn ;; нулевая высота текста
   (if (not (setq txt_height (getreal "\nВведите высоту текста <2.5> : ")))(setq txt_height 2.5)) 
          (vl-cmdf "_.TEXT" "0,0" txt_height 0 (rtos res 2))) ;_ end of progn
        (progn ;; фиксированнная высота
          (vl-cmdf "_.TEXT" "0,0" 0 txt (rtos res 2))) ;_ end of progn
         )
      (command "_.copybase" "0,0" (entlast) "" "_.erase" (entlast) "" "_.pasteclip" pause) 
      ) ;_ end of progn 
    ) ;_ end of if 
   (princ) 
  ) 
(princ "\nНаберите в командной строке SumT")
(defun mip_MTEXT_Unformat ( Mtext / text Str )
  (setq Text "")
   (while (/= Mtext "")
        (cond
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
    (setq Mtext (substr Mtext 3)))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
            (if (or(= " " (substr Text (strlen Text)))
     (= " " (substr Mtext 3 1)))
               (setq Mtext (substr Mtext 3))
               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
   ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                  Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
                  Mtext (substr Mtext (+ 4 (strlen Str)))))
   (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))
   ))
  Text
  )
;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 14.02.2008 в 19:17. Причина: Без запроса Select object:
VVA вне форума  
 
Непрочитано 14.02.2008, 10:36
#47
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


На самом деле textcalc может и быстрее работать. В начале выбираем Функция > + > enter и щелкаем подряд на текстах. Есть программа для суммирования, получена урезанием textcalc-v3.2, но там нет размеров и вывода в текст, только в комстроку.

Насчет доработок буду думать.
Выбор поштучно или рамкой. Если использовать ssget, то сразу после запроса "Выберите тексты:" вылазит "Select objects:" и от этого никак не избавиться. Мне такое не нравится. А вот при entsel'e пользователь более-менее точно знает в какой именно текст он ткнул. По некоторым причинам не хочу использовать vla-функции. Подумаю, что-нить изобрету.
Запрос на кол-во цифр после запятой: "Выберите объект для записи значения [Опции] <Назад>: ". В опциях выбор кол-ва цифр, не зашел в опции - по умолчанию =1.

Неплохо бы посмотреть как оформлять готовые программы. VVA или kpblc, ссылку на пример не дадите? Вы вроде собирались эти разделы (программы и функции) к единому виду приводить.

Добавлю. Да, можно сделать выбор объектов оптом. Все хорошо, когда используются операции сложения или умножения. А каким образом при "-" и "/" выбрать из набора из чего вычитается и что делится? По-любому первый элемент вычислений придется выбирать отдельно от последующих. Получается три разных программы надо: общая(???), + и *, - и /.

Последний раз редактировалось Олег К., 14.02.2008 в 14:27. Причина: думал
Олег К. вне форума  
 
Непрочитано 14.02.2008, 19:34
#48
VVA

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


>Олег К. Там в основном говорилось как оформлять готовые ф-ции. Пример- любая ф-ция в разделе "Программирование->Библиотека функций"
В преамбуле при оформлении готовых программ нужнро описать для чего применяется, какие-то нюансы и органисения. (типа округление чисел из переменной LUPREC, угловые размеры не обрабатываются и т.п.). Дать возможный вариант макроса на кнопочку.
Как пример см. здесь
Проблема с запросом "Select objects:" тоже решаема, см. новый вариант кода с #46. Там этого запроса нет. Думаю с тем как это сделано разберешься.
Так что, как говорится, "Даешь много хороших и разных программ"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.02.2008, 20:02
#49
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA Жду вариант с возможностью вписать в текст или размер полученный результат. А в этой программе тоже можно сделать из + скажем * при помощи замены кокой–то строчки? Еще очень хотелось бы возможность поиграть с округлением.

Олег.К Честно говоря умножение или отнятие мне ни разу не приходилось использовать (на случай если с ними не получится). Еще в твоей программе плохо то что на моем компьютере (и дома и на работе) не получается мышкой выбрать подменю, команда норовит закончить вычисление. Приходится Клавой работать.
Red Nova вне форума  
 
Непрочитано 18.02.2008, 09:55
#50
VVA

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
А в этой программе тоже можно сделать из + скажем * при помощи замены кокой–то строчки?
Так уже раньше где-то показывали. Рецепт не поменялся. Ищем строку
res (+ res (apply '+ (mapcar 'atof str)))) и (apply '+ меняем на (apply '*
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2008, 11:20
#51
dextron3

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


VVA, не могу понять для чего размеры суммировать, и где это может пригодиться
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 18.02.2008, 14:42
#52
VVA

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


> dextron3 Это спрашивай не у меня, а у Red Nova
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2008, 15:27
#53
dextron3

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


Red Nova, поделись где этот лисп суммирование размеров применять будешь,
я реально не могу найти ему применение...

Буду благодарен
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 18.02.2008, 16:03
#54
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Был у меня тут чертеж, где некоторые размеры переписаны (длинная цепочка), а сверху цепочки надо проставлять общий размер, равный сумме всех переписанных, вот и возникла идея, что если отметить сразу все размеры, суммировать их значения, можно результат вписать в общий размер.
Red Nova вне форума  
 
Непрочитано 18.02.2008, 16:22
#55
VVA

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


Пробуйте. Команды
SumTN - суммирование тестов в новый текст
sumTE - суммирование тестов в существующий текст
mulTN - умножение тестов в новый текст
mulTE - умножение тестов в существующий текст
Команды суммирования/умножения в существующий текст (sumTE, mulTE) могут вставлять полученный результат в текст, размер, атрибут блока, заполненную ячейку таблицы.
Вложения
Тип файла: lsp sumT.LSP (7.8 Кб, 842 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 18.02.2008, 22:21
#56
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Попал в точку, то что нужно. Быстро и удобно. Спасибо.
С вопросом разобрались.
Теперь хочу предложить кое что посложнее. Как насчет полноценного калькулятора, способного работать с содержанием мтекста, размеров, длин отрезков, площадей замкнутых линий и штриховок и т.п. (выбор объектов происходит как в лиспе с поста 55)?
Или уж совсем извращенная мысль. Я пользуюсь numlock калькулятором, может есть вариант его заставить видеть объекты AutoCAD-а?
Допускаю что может на этот раз меня занесло, и идеи абсурдные, но было–бы здорово.
Red Nova вне форума  
 
Непрочитано 18.02.2008, 22:33
#57
Кулик Алексей aka kpblc
Moderator

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


Red Nova, у тебя какой версии AutoCAD?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.02.2008, 23:25
#58
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


2008, если ты про встроенный калькулятор хочешь сказать, то у него возможности ограниченные.
Red Nova вне форума  
 
Непрочитано 19.02.2008, 09:52
#59
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


>> VVA Ну и программка! Куда уж мне теперь лезть!
>> Red Nova По #56. Эт конечно интересно когда надо посмотреть разницу реальной длины объекта и того, что на размере указано. Хотя не совсем понимаю зачем, это в свойствах размера посмотреть можно.
Для подсчета длин линий тут программок разных до фига было, ничего изобретать не надо.
Для площадей замкнутых фигур и штриховок есть команда AREA.
В общем, попробуете объяснить зачем это все в одну кучу сгребать. У меня фантазия не развитая.
Олег К. вне форума  
 
Автор темы   Непрочитано 19.02.2008, 10:15
#60
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Для площадей замкнутых фигур и штриховок есть команда AREA.
Я больше скажу, на этом сайте есть прога Geometrical Properties, с ней еще удобнее.
А смысл в том, чтоб иметь калькулятор, в который можно вместо цифр ввести любое значение меры длины или там еще чего из AutoCAD. Нечто похожее на встроенный калькулятор, но с расширенными возможностями выбора объектов (у встроенного только длина отрезка, угол и координаты). Я часто использую Numlock калькулятор, для спецификаций (с мтекстом правда благодаря Олег К. и VVA разобрались), и других целей, когда в калькулятор вводишь вместо цифр параметры объектов AutoCAD. Разве у вас такого не было?
Вопрос сейчас не в том чтоб узнать конкретный параметр (длина, площадь, сумма мтекстов…), для этой цели инструментов вроде как достаточно, а в том, чтоб значение этого параметра быстро ввести в калькулятор.
Red Nova вне форума  
 
Непрочитано 19.02.2008, 10:38
#61
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 311


Что интересно, в панельке свойств объекта около длины, площади и тп есть значок калькулятора, т.е. это значение можно ввести в калькулятор при его вызове. А вот из калькулятора указать нужное значение уже не получается (AutoCAD 2006). Недоработочка, однако.
А вообще, я никогда не пользовался этим калькулятором, еще с 14-го привык вычисления вести в комстроке через функции лиспа.
Олег К. вне форума  
 
Автор темы   Непрочитано 19.02.2008, 14:50
#62
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Что интересно, в панельке свойств объекта около длины, площади и тп есть значок калькулятора, т.е. это значение можно ввести в калькулятор при его вызове. А вот из калькулятора указать нужное значение уже не получается
Вот и я об этом. А может к встроенному калькулятору можно довеску сделать?
Red Nova вне форума  
 
Непрочитано 19.02.2008, 15:51
#63
VVA

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


Для внешних калькуляторов можно значение посылать в clipboard.
Код:
[Выделить все]
;  ! ***************************************************************************
;; !                           copyToclipboard
;; ! ***************************************************************************
;; ! Function : Copy text to clipboard
;; ! Argument : 'str'     - String
;; ! Returns  : nil
;; ! ****************************************************************************
(defun copyToclipboard ( str / ieobj cbrd)
  (setq ieobj (vlax-get-or-create-object
                      "InternetExplorer.Application"
                      )
             )
 (vlax-invoke ieobj 'navigate2 "about:blank")
 (vlax-invoke
(setq cbrd (vlax-get (vlax-get (vlax-get ieobj 'document) 'parentwindow)
'clipboarddata
))
'setdata
"text"
str
)
(vlax-release-object ieobj)  
)
Использование:
(copyToclipboard "12345")
Ну и соответсвенно в калькуляторе вставить из буфера. Подводные камни могут быть в том, что использует внешнее приложение в качестве разделителя дробной и целой части (. или ,)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 20.02.2008, 23:04
#64
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA – Как я понял копируется в буфер то что вводишь между кавычками, скажем написал (copyToclipboard "12345"), копируется 12345, если написал (copyToclipboard "gameover"), копируется gameover . Только не понял где это применять? Ведь если вводить что-то в ком строку, но легче это дело сразу в калькулятор ввести. Может я чего не понял?
Меня интересует как ввести в буфер какой–ни–будь параметр объекта AutoCAD. Скажем длину отрезка, или что еще. При этом надо избежать того чтоб сначала эта цифра выходила в ком строке, а-то в таком случае и copy paste сойдет.
Если на счет лиспа я что-то не верно понял прошу уточнить.
Red Nova вне форума  
 
Непрочитано 21.02.2008, 09:33
#65
VVA

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


Ну так это и имелось ввиду. Есть куча лиспов, считывающих длинну, площадь выбранных примитивов. В конец к ним добавляешь copyToclipboard, и полученный результат копируется в буфер
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.02.2008, 11:23
#66
dextron3

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


VVA, вопрос не в тему конечно, есть ли такой лисп который округляет текстовые приметивы: 3.1459873 было, 3.15 стало, выбор рамочкой все числа,
размеры исходных текстовых приметивово остаются теже, меняется только
содержание...

буду благодарен
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.02.2008, 12:09
#67
VVA

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


Выбирай
http://www.caduser.ru/forum/index.ph...#message223183
http://dwg.ru/f/showthread.php?t=3114
http://dwg.ru/dnl/28
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 13.05.2011 в 16:27.
VVA вне форума  
 
Непрочитано 21.02.2008, 19:22
#68
dextron3

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


VVA, спасибо за первую ссылку, там твой лисп TOKR!
(примеч. автора: используется для округления чисел полученных
в НумЛук калькуляторе, так как встроенный округлитель
работает не совсем так как нужно округляет нормально,
но когда большое число разделяет пробелами,
что для автокада не допустимо пример: 123 282 000.00,
потом с этим числом математические операции не возможно произвести)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.02.2008, 19:52
#69
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Tokr работает только для текса, VVA, может сделаешь вариант для мтекста, а еще лучше скрестить tokr + sumt, так, чтоб если после завершения выделения текстов нажать enter, то разницы никакой от стандартных действий sumt, но если вместо enter зайти в подменю, можно выбрать любое значение округления от 0 до 9. Да и еще, по умолчанию хорошо бы настроить sumt, чтоб он ответ выдавал округленным с одной цифрой после запятой. Смогём?
Red Nova вне форума  
 
Автор темы   Непрочитано 22.02.2008, 14:53
#70
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Пока VVA думает, у меня еще одна мысль возникла. У меня спецификации “нарисованы”. Часто в спецификациях надо бывает умножить все цифры одного столбца на все цифры второго, и ответ записать в третьем. Можно ли так модифицировать sumt, чтоб когда выбираешь два столбца с мтекстами, то цифры с одинаковой координатой У умножаются друг на друга, потом отмечаешь третий столбец с мтекстами, и результаты умножений вписываются в третий столб, при этом результат вычисления каждой строки вписывается в мтекст на против (у ответов та же координата Y что и у умножаемых цифр).
Red Nova вне форума  
 
Непрочитано 22.02.2008, 16:00
#71
VVA

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


1. По поводу tokr + sumt - думаю
2. По поводу хорошо бы настроить sumt, чтоб он ответ выдавал округленным с одной цифрой после запятой - уже все настроено. Просто мне нравятся 2 цифры.
Кто со мной не согласен, тот в коде из поста #55 ищет строчки, начинающиеся с
(operate_text ... [типа (operate_text '+ t 2) ], так вод 2 - это и есть количество знаков округления.
3. По поводу часто в спецификациях надо бывает умножить все цифры одного столбца на все цифры второго dextron3 такая мысль пришла раньше. Такой лисп есть, причешу - выложу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.02.2008, 17:57
1 | #72
VVA

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


Короче так. Всех защитников - с праздником, полузащитников - с полупраздником, нападающих пропускаем. В честь столь знаменательного события, а так же по причине окончания заседания нашего дружного коллектива, находясь в приподнятом настроении, в здравом уме и твердой памяти выкладываю на растерзание сей опус. Измененные и дополненные команды:
SumTN - суммирование тестов в новый текст
SumTE - суммирование тестов в существующий текст
MulTN - умножение тестов в новый текст
MulTE - умножение тестов в существующий текст
TOKR - округление текста
MulTC - перемножение текстов столбцами
Из всего самой большой модификации подверглась TOKR. Округляет тексты, мтексты. Причем мтексты разбирает по параграфам, округляет, потом обратно собирает, снося при этом форматирование. Если в тексте есть поле, то оно перепишется его округленным значением. Я заложил возможность пропустать тексты с полями (игнорировать их), но пока не активизировал. Для активизации нужно найти в коде сточку
(text-round item okr t) и заменить на (text-round item okr nil)
*** Добавлено
MulTCv2 - перемножение текстов столбцами вариант 2 (одной рамкой)
sumTSet - установки округления и высоты новых текстов
*** Добавлено 03.03.2008
Изменения в сортировке+Beta-версия команды SPEC
*** Добавлено 04.03.2008
Чуть подправленная версия SPEC + GRPSP по ТЗ #110
*** Добавлено 04.03.2008 №2
Ноль в массе всех деталей краснеет
*** Добавлено 04.03.2008 №3
Если в длине последний символ М (русское или английское), регистр значения не имеет, то значение длины умножается на 1000
***Добавлено 05.03.2008
Можно обрабатывать 4 или 5 столбцов в команде SPEC, если текст начинается с цифры, то считается что это лист
Вложения
Тип файла: rar SumT.rar (244.2 Кб, 438 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 05.03.2008 в 16:54. Причина: Изменения
VVA вне форума  
 
Автор темы   Непрочитано 22.02.2008, 20:53
#73
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Присоединяюсь к поздравлениям. За лисп спасибо, оценил. Вот тока теперь постоянно с начала идет запрос по поводу округления, а я люблю когда попроще. Попробовал пошарить в лиспе, поменял в некоторых строчках значения на 1 (по аналогии с твоим советом), но напортачил и делу не помог.
Прошу выложить версию с прежним параметром округления по умолчанию для всех функций (у тебя ведь 2 было). А вопрос округления оставить только у TOKR (ну там уж точно без этого никак).
По поводу MulTC, тоже оценил, правда ты пошел другим путем, как я понимаю акцент тут стоит не на координате, а на очередности, в результате надо сначала отметить первый столб, потом второй, потом третий, если же акцент стоял на координате, то можно бы было отметить первые два столбца сразу (а может и все 3 сразу, если глубоко подумать). Мелочь конечно и в общем несущественно два действия или три, но как-то всегда думаешь о самом кратком пути.
В остальном все путем. Спасибо за труд.
Red Nova вне форума  
 
Непрочитано 22.02.2008, 22:55
#74
dextron3

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


VVA, с днем защитника отечества тебя!
Предложения:
1. Не пойму для чего при вставвке текста нужно вводить размер (высоту букв),
почему не берется высота суммирующихся текстов? (или это кому то особо важно)
по аналогии с TextMath калькулятором

2. Последние две команды сверхнеобходимые и нужные, вдвойне спасибо

3. Твои лисп приложения самые рабочие
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 22.02.2008 в 23:13.
dextron3 вне форума  
 
Автор темы   Непрочитано 22.02.2008, 23:20
#75
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Мне в голову пришла развратная мысль . А как на счет создать лисп для расчета всей спецификации разом. Сказано конечно чересчур глобально, и может показаться на первый взгляд необдуманно, но давайте поподробнее.
Возьмем к дискуссии расчет веса одного лишь элемента, пусть это будит листовая сталь. В строке спецификации данные о элементе записываются так (в отдельных мтекстах).

Марка -5х350
Длина 500
Количество 5
Вес ?
Вес всех ?

Вариант не по госту, но рассмотрим его.
Чему равен вес одной детали
5*350*500*(7.85E-6)=6,9кг
Вес всех деталей
6,9*5=34,3 (если не учесть неокругленный вариант то 34,5, но мы ведь люди точные)

И так задача сводится к тому чтоб взять и помножить из первого текста 5 и 350, помножить их потом на второй текст, ответ вписать в четвертый текст, потом помножить его на количество, и вписать в последний текст, при этом предполагается что тексты веса уже существуют, надо их переписать.
Таким образом надо игнорировать и х из первого текста (не знаю возможно ли это). Прибавлю что x может быть как русской так и английской буквой.
В общем идейка вполне на грани бредового , но если с этой задачей справится, то не далеко и с арматурой и с профилем разобраться.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 07:42
#76
dextron3

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


Red Nova, лучше бы в ЕКСЕЛЕ все это сделать, но перенос в автокад почемуто не корректен, жду пока толковую программу выпустят для
правильного пренеоса в Екселл, существующие средства автокада не годятся,
не забывай там куча профилей а не только один лист

Сделай пока не придумали как я:

1. Создай спеку для всех толщин
2. Сделай последний дополнительный столбик с массой одного метра погонного или квадратного
3. И потом тупо перемножай, а в лайаутах эти цыфры не показывай как бы отрезай
4. я так для дерева сделал
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 23.02.2008, 10:49
#77
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, не очень понял, дай файл посмотреть. А про профили я пока молчу чтоб VVA не очень надоесть, про это я после скажу, тока ты ему пока не говори, секрет.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 15:47
#78
dextron3

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


тут секрета нет вот скриншот обычные цыфры и математика с ними:
а профили считаю на металлургическом калькуляторе
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 331
Размер:	73.5 Кб
ID:	3675  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 23.02.2008, 17:10
#79
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Понял, а не пробовал последний столбик в непечатаемый слой кинуть, так и думать как урезать на листе не надо.

Последний раз редактировалось Red Nova, 23.02.2008 в 17:22.
Red Nova вне форума  
 
Непрочитано 23.02.2008, 17:49
#80
dextron3

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


Red Nova, я в лайаутах черчу поэтому не видно данного столбца
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 25.02.2008, 07:46
#81
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Мне в голову пришла развратная мысль . А как на счет создать лисп для расчета всей спецификации разом.
Red Nova, мыслишь правильно, только зачем велосипед изобретать? Все уже придумано. И лучше других, ИМХО, в VetCADe.
Попобуй - может понравиться!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 25.02.2008, 18:59
#82
VVA

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


Внес изменения в код поста #72 . Постарался учесть все предложения.
Цитата:
По поводу MulTC, тоже оценил, правда ты пошел другим путем, как я понимаю акцент тут стоит не на координате, а на очередности, в результате надо сначала отметить первый столб, потом второй, потом третий, если же акцент стоял на координате, то можно бы было отметить первые два столбца сразу (а может и все 3 сразу, если глубоко подумать).
Глубоко подумал, сделал MulTCv2, оставил и вариант с выбором каждого из столбцов (MulTC). Чтобы отделить мух от котлет (текст количество от текста массы и теста итога ) используется сортировка по Y, а в пределах нее по X. Поэтому желательно чтобы Y текстов различных столбцов совпадали. Я предпринял некоторые шаги, чтобы исключить влияние несовпадания Y текстов в различных столбцах, но лучше (для надежности) этого избегать или пользоватьзя MulTC.
Еще я задал вопрос в #72 (сейчас выделил красным), ответ на который пока не получил
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.02.2008, 19:34
#83
dextron3

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


VVA, спасибо использую только 2 команды лучших аналогов в инете не встречал, особенно второй команды
TOKR - округление текста
MulTCv2 - перемножение текстов столбцами вариант 2 (одной рамкой)


1. MulTCv2 в каком диапазоне прыгать могут по Y тексты, чтобы программа выполнялась, или тут ведется подсчет по близлежащему по Y
боюсь совершить ошибки при выполнении, а то чреевато подзатыльник от прораба получить

2. Про поля: то я их не использую и не заморачиваюсь


3. MulTCv2 не корректно работает когда выделяешь два столбца по запарке, хотелось бы чтобы выдавалось окно с ошибкой,
а то принцип перемножения не понятен (имеется ввиду при выделении всего лишь двух столбцов)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 25.02.2008 в 19:48.
dextron3 вне форума  
 
Автор темы   Непрочитано 25.02.2008, 20:16
#84
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, пока лисп не смотрел, щас буду, на счет вопроса с поста 72, думаю содержание поля следует пропустить (если нет возможности округлить без того чтоб поле потеряло свои функции). А лучше скажи как эту возможность включить, а кому надо сам сделает.
А как насчет вопроса с поста 75

Wetr, сегодня вновь поставил VetCAD++ (AutoCAD2008), вариант интересный. Вот только у меня СПДС, не знаю как VetCAD с ним сработается, на первый взгляд не очень, и еще не знаешь как сделать так, чтоб мтекст открывался в Акадовском редакторе, А не в Веткадовском, раздражает очень?
VetCAD еще потыкаю, не исключаю что пригодится, но пока мне милее обычные мтексты а не блоки, вот бы еще наши программисты на счет автоматизации расчета спецификации с мтекстами программки написали, было бы блаженство.
Red Nova вне форума  
 
Автор темы   Непрочитано 25.02.2008, 21:49
#85
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Просмотрел программу, очень понравилась в sumTSet то что после перегрузки Акада последняя установленная цифра количества единиц после запятой сохраняется в памяти. Это очень полезно, я даже и не наделся на это.
На счет команды MulTCv2, нет слов, так как я в начале и представлял себе ее работу, радует то, что даже при несовпадении координат, программа “думает”, и при набольшем разбросе правильно выполняет действие, я хотел было на такую возможность намекнуть, но не успел, ты сделал все так как надо.
Red Nova вне форума  
 
Непрочитано 26.02.2008, 04:44
#86
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Wetr, сегодня вновь поставил VetCAD++ (AutoCAD2008), вариант интересный. Вот только у меня СПДС, не знаю как VetCAD с ним сработается, на первый взгляд не очень, и еще не знаешь как сделать так, чтоб мтекст открывался в Акадовском редакторе, А не в Веткадовском, раздражает очень?
VetCAD еще потыкаю, не исключаю что пригодится, но пока мне милее обычные мтексты а не блоки, вот бы еще наши программисты на счет автоматизации расчета спецификации с мтекстами программки написали, было бы блаженство.
В редакторе текста веткадовском открой настройки и убери соответствующую галочку.
А СПДС разве спецификации не умеет считать?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 26.02.2008, 10:27
#87
VVA

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


Цитата:
MulTCv2 не корректно работает когда выделяешь два столбца по запарке, хотелось бы чтобы выдавалось окно с ошибкой,
а то принцип перемножения не понятен (имеется ввиду при выделении всего лишь двух столбцов)
Там четко проверяется, чтобы было после сортировки 3 стобца. Поэтому неважно, выделяешь 1,2,4 или даже 3 столбца, но с не совпадающим количеством элементов в строках. Должно выдаваться окно с сообщением о несовпадении количества. Если не так, выкладывай или пришли по почте пример.
Цитата:
MulTCv2 в каком диапазоне прыгать могут по Y тексты, чтобы программа выполнялась, или тут ведется подсчет по близлежащему по Y
боюсь совершить ошибки при выполнении, а то чреевато подзатыльник от прораба получить
Там выщитывается средняя высота выбранных текстов, и сравнивается Y с точностью до этой средней высоты. Поэтому, думаю, невязка до 1/2 средней высоты в каждую сторону не должна влиять. Но лучше выравнивать тексты поточнее.
Цитата:
очень понравилась в sumTSet то что после перегрузки Акада последняя установленная цифра количества единиц после запятой сохраняется в памяти. Это очень полезно, я даже и не наделся на это
Настройки сохраняются в файле конфигурации acad.cfg. Поэтому перезагрузка не влияет, влияет только переустановка Автокада.
Цитата:
на счет вопроса с поста 72, думаю содержание поля следует пропустить (если нет возможности округлить без того чтоб поле потеряло свои функции). А лучше скажи как эту возможность включить, а кому надо сам сделает.
Так и сделал. Отредактировал пост #72
Цитата:
А как насчет вопроса с поста 75
Тоже особых проблем пока не вижу. Нужно более полное ТЗ (помимо листа могут быть швеллеры, двутавры, дерево и т.д.).
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 26.02.2008, 10:39
#88
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Wetr,
Цитата:
А СПДС разве спецификации не умеет считать?
Умеет, но мне не очень нравится.
Цитата:
В редакторе текста веткадовском открой настройки и убери соответствующую галочку.
Вечером попробую.

Последний раз редактировалось Red Nova, 26.02.2008 в 10:56.
Red Nova вне форума  
 
Автор темы   Непрочитано 26.02.2008, 10:56
#89
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
Тоже особых проблем пока не вижу. Нужно более полное ТЗ (помимо листа могут быть швеллеры, двутавры, дерево и т.д.).
Приготовлю полное ТЗ, но учти что обьем будет значительный.
Red Nova вне форума  
 
Непрочитано 26.02.2008, 13:45
#90
dextron3

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


VVA, вот скриншоты работы команды MulTCv2 для 2х столбцов,
алгоритм не могу сообразить, почему так получается, почему нет окошка об
ошибке, если сделать по запарке:
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 206
Размер:	18.6 Кб
ID:	3721  Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 231
Размер:	30.9 Кб
ID:	3722  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 26.02.2008, 17:27
#91
VVA

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


Было такое дело. Исправил код в посте #72. Так получалось потому, что общее количесво текстов кратно 3. Изменил алгоритм сортировки. Теперь такого быть не должно
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.02.2008 в 09:18.
VVA вне форума  
 
Непрочитано 26.02.2008, 20:03
#92
dextron3

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


VVA, а вот теперь работает
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 26.02.2008, 23:45
#93
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, ТЗ составил для основного каталога используемых мною профилей, если кто что хочет добавить, прошу.
Спецификация немного не по госту, но думаю это простительно. (В дальнейшем можем и для других видов спецификаций создать команды подсчета)
После завершения действия команды думаю будит уместно если в случае нераспознавания некоторых строк мтексты в графах масс этих строк станут красными. Таким образом можно будит избежать ошибок. (А еще может вылетать сообщение об ошибке.)
Цвет использован для того чтобы не путать переменные, в настоящих спецификациях цвет не имеет значения.
Надеюсь удастся избежать использования отдельных команд для разных профилей, и программа будет по первому символу мтекста распознавать какое действие тут нужно. (По первому, поскольку дальнейшее содержание не всегда идеально, иногда может быть пропущен или добавлен пробел, или точка, и.т.п.)
Отмечать мтексты для расчета следует как в MulTCv2 , то есть отмечаем разов все строчки, и столбцы от графы "Марка" до графы "Вес всех деталей".
Прилагаю фонты СПДС, без которых нельзя, в них имеются знаки обозначения профилей.
Надеюсь трудностей с исполнением не возникнет, хотя понимаю что труд предстоит значительный и довольно сложный.
Заранее благодарю.
Вложения
Тип файла: rar ТЗ для расчета спецификаций.rar (258.1 Кб, 244 просмотров)
Red Nova вне форума  
 
Непрочитано 27.02.2008, 01:44
#94
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


>> VVA
Программа TOKR для нижеследующего MTEXT выдает 0, а по идее должна выдавать 123.456.

(1 . "asd{\\Ftxt|c0;f
as123.45600\\fTimes New Roman|b0|i0|c0|p18;\\C1;d}f")
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 27.02.2008, 07:22
#95
dextron3

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


VVA

По мотивам предыдущего лиспа:

Предыстория:

Черчу последнее время чертежи КМД,
рисую косынки (обычный многоугольник если для автокада, из обычных линий или полилинии замкнутой)
образмеренные, все стенки и габариты листа.

Нужен лисп который находил бы самый большой размер по вертикали,
и самый большой размер по горизонтали и округлял бы в большую сторо-
ну с шагом по 50мм (было 373 стало 400, было 210 стало 250)

Есть предположение что можно высчитывать по габаритам самого элемента

Лисп в работе по приведенному скриншоту:

1. Выделите деталь с размерами
2. Размеры заготовки: x=750мм, y=900мм

Если уже сталкивался с такими задачами помоги

....
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 189
Размер:	42.5 Кб
ID:	3754  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 27.02.2008 в 07:29.
dextron3 вне форума  
 
Непрочитано 27.02.2008, 09:58
#96
VVA

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


>dextron3
Код:
[Выделить все]
(defun C:GAB ( / plSet pt_lst X Y Xr Yr gab round)
(defun round (value to)
  (cond
    ((= (* to (fix (/ value to))) value) value)
    (t
     (if (minusp value)
       (- (* to (fix (abs (/ value to)))))
       (* to (1+ (fix (abs (/ value to)))))
       ) ;_ end of if
     )
    )
  )
(if
  (and
    (princ"\n<<< Выберите полилинию >>> ")
      (setq plSet nil plSet
   (ssget "_:S" '((0 . "LWPOLYLINE"))))
       (setq pt_lst
        (mapcar
  '(lambda(x)(trans x 0 1))
  (mapcar 'cdr
    (vl-remove-if-not
     '(lambda(x)(= 10(car x)))
       (entget
         (ssname plSet 0))))))
      )
  (progn
  (setq gab (list (apply 'mapcar (cons 'min pt_lst))
 (apply 'mapcar (cons 'max pt_lst))
 )
 )
  (setq X (round (setq Xr (abs(- (caadr gab)(caar gab)))) 50))
  (setq Y (round (setq Yr (abs(- (cadadr gab)(cadar gab)))) 50))
  (princ (strcat "\nРазмеры заготовки: Реальные  X="
   (rtos Xr 2 3)
   " Y= "
   (rtos Yr 2 3)
   "\nОкругленные до 50:  X="
   (rtos X 2 0)
   " Y= "
   (rtos Y 2 0)
   )
  )
  )
  )
  (princ)
  )
>KAI
Программа TOKR округляет текст целиком. Поиск и округление чисел в тексте оставлю себе в качестве домашнего задания.
>Red Nova Скачал, но пока еще не вникал
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 27.02.2008 в 13:01. Причина: Округление в большую сторону
VVA вне форума  
 
Непрочитано 27.02.2008, 11:34
#97
dextron3

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


VVA, спасибо!

но хотелось бы чтобы округление было в большую сторону,
тоесть 210 то 250, 201 то 250, 251 то 300, то есть на завод лучше отправлять
с запасом когда будут нарезать, ведь лучше потом сточить чем наварить

у тебя 210 округляет 200, теряем сантиметр
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 27.02.2008, 11:40
#98
VVA

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


Исправил
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.02.2008, 11:45
#99
dextron3

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


не до конца 385-400, у тебя 385-350
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 27.02.2008, 13:02
#100
VVA

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


Пробуй снова
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.02.2008, 13:28
#101
dextron3

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


Цитата:
Сообщение от VVA Посмотреть сообщение
Пробуй снова

спасибо
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 29.02.2008, 19:36
#102
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ох не хочется чтобы темка надолго на вторую страницу уходила, уж очень жду лисп от VVA, так что думаю модератор меня простит за это сообщение.
Red Nova вне форума  
 
Непрочитано 03.03.2008, 10:39
#103
VVA

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


Посмотрел не выходных твое ТЗ. Кое-что накропал. Возникло пару вопросов, в основном касающихмя определения массы проката
1.
Для примера возьмем
Уголок равнополочный 100x100x10 по ГОСТ 8509-93
Расчет по твоей формуле

По таблице проката
ТО же для двутавров:
I10 по ГОСТ 8239-89 - 9,46 кг
I10Б1 по ГОСТ 26020-83 - 8,1 кг
2. Когда указано, что профиль состоит из 2-х двутавров (II), швеллеров ([];][), уголков, разве не надо массу умножать на 2?
По п.1 вопросы:
- насколько критична разность в массах для уголков?
- раз уж все равно нужно "прикручивать" сортамент, может взять за основу «Прокат» Василия Кондрата ?
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 03.03.2008 в 16:56.
VVA вне форума  
 
Непрочитано 03.03.2008, 10:49
#104
dextron3

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


VVA, в этой формуле не учтены скругления полок,
я что то не пойму как выгледеть будет лисп про который идет речь
как он будет функционировать если можно алгоритм написать?

да из программы прокат само то, так как перебивать профиля
из таблиц очень долго,...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 03.03.2008, 13:25
#105
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
1.Согласен, я не учел округления, подумал, что это маловажно, поскольку очень трудно вывести формулу. Влияние округления в для разных размеров разное, ни добавив определенный процент ни добавив определенную массу точно не получается. Можно вложить в память все гостовские массы для уголков (тот же “прокат”), тока это довольно трудоемко, я не хотел тебя очень загружать. Но так конечно же будет безоговорочно точно. Лично я буду только рад.
Для двутавров я формулу не писал, дал перечень из учебника (для двутавров с уклонными полками). Возможно я что-то не правильно дал, так что бери данные из программы “прокат”.
2. Подумал и решил что ты прав на счет сдвоенных профилей. Надо для них массу умножать на 2.
Red Nova вне форума  
 
Непрочитано 03.03.2008, 14:04
#106
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Насчет веса сортамента - ИМХО - логично не изобретать велосипеда и взять за основу базы из «Прокат» Василия Кондрата. Причем Базы 1-1 и из них уже вынимать. Имхо это даст возможность в будущем прицепить любой сортамент в базу спецификации, поскольку «Прокат» довольно популярен и базы под него пополняют многие.
Diman111 вне форума  
 
Непрочитано 03.03.2008, 16:35
#107
VVA

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


Бета-версия SPEC выложена в посте #72 (там еще некоторые шероховатости в сортировке mulTCv2 были устранены)
Пока-что без "прикручивания" сортамента, по ТЗ в #93. Тестовый пример: (недостающие шрифты CS_Gost2304 брать в #93) ниже. Формат 2004
Вложения
Тип файла: dwg
DWG 2004
Тест.dwg (100.1 Кб, 2325 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.03.2008, 19:42
#108
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Высший пилотаж.
Большое спасибо.

Теперь нюансы.
1.С символом диаметр какие-то багги, в одном месте работает, в другом нет. Возможно это связанно с тем что в шрифте есть два знака диаметр, а может еще с чем, чего я не понимаю. Смотри приложенный файл.
2.Фланцы.
Забыл сказать, что после фл. Может также стоять или не стоять знак диаметра, так что на него не обращаем внимания, если он не в начале текста.
3.Трубы.
Тр может быть написано также и английскими буквами (причем как заглавными так и прописными).
4. То что для нераспознанных формул массы краснеют очень удобно, но после внесения корректировки в неверно понятые строки думаю будет уместно если вновь просчитанные массы, которые уже считаются правильно становились цвета by layer. Иными словами после проведения вычислений предлагаю всем правильно просчитанным массам назначить цвет by layer.
5.Думаю ты прав и надо для сдвоенных профилей помножить массу на 2.
6.Я тут подумал, и думаю что для подсчета массы арматуры, для варианта где считаем не по штучно, а для всей длины (сигмаL=***) наверное правильнее в графе “масса одной позиции” вписывать “-“, а массу вписывать только в графу вес всех позиций. Сорри что с начала не сказал.

В остальном пока багов не выявил.
Есть идея добавить вариант программы, когда записываешь массу не в существующий мтекст, а в новый, при этом выходит запрос на указание координат х для граф “масса одной поз” и “масса всех поз”

С нетерпением жду вариант с профилями по госту.
Этот лисп сэкономит кучу моего времени. Хотя почему только моего. Кучу времени многих проектировщиков. Сколько я их знаю, кто работает по схеме рисованные спецификации + калькулятор. Пока внедрил в работу команды выложенные ранее в Sumt, и уже не могу представить свою работу без них, а что дальше будит, когда спецификации на полную заработают, просто блаженство. Как только раньше такого не придумали.
Вложения
Тип файла: dwg
DWG 2004
Спец. - нюансы.dwg (50.4 Кб, 2300 просмотров)
Red Nova вне форума  
 
Автор темы   Непрочитано 04.03.2008, 09:34
#109
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Есть идея добавить вариант программы, когда записываешь массу не в существующий мтекст, а в новый
Забыл сказать, созданные мтексты должны быть middle centre justified.
Red Nova вне форума  
 
Непрочитано 04.03.2008, 10:19
#110
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Уважаемый VVA нельзя ли пост #72 скорректировать с учетом пожеланий, изложенных в приложенном ТЗ.
Был бы очень благодарен.
Вложения
Тип файла: doc TZ po GOST.doc (60.0 Кб, 177 просмотров)
Diman111 вне форума  
 
Автор темы   Непрочитано 04.03.2008, 10:39
#111
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


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

По поводу
Цитата:
Уважаемый VVA нельзя ли пост #72 скорректировать с учетом пожеланий, изложенных в приложенном ТЗ.
Был бы очень благодарен.
Принимаю что надо и по госту вариант программы создать, только команда для этого отдельная должна быть. К стати там в графе количество может быть разное количество столбцов, и наверное надо будет отдельно указывать эти столбцы.
Diman111 Ты бы выложил спецификацию со всеми возможными профилями в формате dwg, тогда попонятнее станет как ее "склеить".
Вложения
Тип файла: dwg
DWG 2004
Drawing2.dwg (41.7 Кб, 2297 просмотров)
Red Nova вне форума  
 
Непрочитано 04.03.2008, 10:53
#112
cater


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


Ребята, не парьтесь, а поищите в Dwonloads есть прекрасная штука MyCalculator называется суммирует не только Мтекст и однострочный, но и размеры. Кстати, огроменное спасибо автору этой штукенции!
cater вне форума  
 
Автор темы   Непрочитано 04.03.2008, 10:59
#113
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


cater, Слегка припозднился, мы как–бы уже о другом.
Red Nova вне форума  
 
Непрочитано 04.03.2008, 11:53
#114
VVA

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


Выложил в #72 обновленную версию. В команде SPEC учтены "нюансы" из #108 + новая команда GRPSP (по ТЗ #110).
>Red Nova #108
>1,2,3 По поводу включения в обработку неких своих символов, инструкцию выложу, когда будет решен вопрос с профилями. Для умешьшеня вариантов анализа,строка приводится к верхнему регисту.
>1 До этоко арматура определялась по наличию знака диаметра %%C, в примере #108 знак диаметра вставлен как UNIKOD \U+E712. Добавил, инструкция будет позже
>2 См. 3выше. Теперь знак диаметра удаляется из середины текста
>3 см. выше Добавил не только TP английские, но и T анлийское Р-русское и наборот, Т-русское Р-английское
>4 сделал
>5 Будет учтено с профилями
>6Сделал
>Diman111 #110
Пробуй команду GRPSP
Для подсчета нужно выбирать столбцы количество+ масса. Массой считается последний столбец. Тескт дописывается ниже самого нижнего текста.Для анализа величины смещения берется:
- Если строк больше 1, то разность по Y 2 самых нижних текстов 1-го
столбца .
- Если одна строка, то, двойная высота текста 1-го столбца .
>Red Nova #111 Файл просмотрел, какую возможность нужно учесть, так и не понял
Кстати, объявляется конкурс на название команд GRPSP и SPEC. У меня творческий кризис. . Победителю разрешено будет 2 раза скачать код.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.03.2008 в 12:05.
VVA вне форума  
 
Непрочитано 04.03.2008, 11:58
#115
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Принимаю что надо и по госту вариант программы создать, только команда для этого отдельная должна быть.
Это логично
Цитата:
Сообщение от Red Nova Посмотреть сообщение
К стати там в графе количество может быть разное количество столбцов, и наверное надо будет отдельно указывать эти столбцы.
Количество столбцов может быть любым и я это описал. принцип подсчета их количества - это кол-во столбцов минус 1, т.к. последний всегда масса.
В общем технология ввода кол-ва столбцов - автоматическим вычислением или запрос у пользователя - это оставлю на усмотрение автора lispa - УВАЖАЕМОГО VVA
Diman111 вне форума  
 
Автор темы   Непрочитано 04.03.2008, 12:28
#116
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
>Red Nova #111 Файл просмотрел, какую возможность нужно учесть, так и не понял
1.Я имел в виду чтобы была возможность считать общую массу профиля, когда дается только общая длина, а количество считается 1, это тот же вариант, как и для арматуры (где вместо количества "-" а в графе длина пишется “сигмаL=***”).
2.Еще, только что понял, что сигмаL=20м надо принять равным сигмаL=20000, а-то бывает по разному. (м может быть в разных кодировках)

Последний раз редактировалось Red Nova, 04.03.2008 в 12:33.
Red Nova вне форума  
 
Автор темы   Непрочитано 04.03.2008, 12:43
#117
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


К стати в файле с поста 111 сумма не краснеет а пишет ноль, как я понял это связанно с тем, что в граве количество “–“, а может еще с чем. В результате не замечаешь что ошибка прошла.
Red Nova вне форума  
 
Автор темы   Непрочитано 04.03.2008, 12:53
#118
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Протестировал изменения, вроде как багов нет, только надо учесть заметки на постах 116 и 117.
А как на счет?

Цитата:
Есть идея добавить вариант программы, когда записываешь массу не в существующий мтекст, а в новый

Забыл сказать, созданные мтексты должны быть middle centre justified.
Red Nova вне форума  
 
Непрочитано 04.03.2008, 13:02
#119
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


VVA, Спасибо - все работает
Diman111 вне форума  
 
Непрочитано 04.03.2008, 13:34
#120
VVA

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


Обновил еще раз код в #72. Кое-какие очепятки в SPEC.
Цитата:
Еще, только что понял, что сигмаL=20м надо принять равным сигмаL=20000, а-то бывает по разному
Да, длинны должны быть в мм. Может позже и введется переводной коэффициент, но в любом случае микс из м и мм не допускается.
Цитата:
Я имел в виду чтобы была возможность считать общую массу профиля, когда дается только общая длина
Добавил для уголков
Цитата:
Есть идея добавить вариант программы, когда записываешь массу не в существующий мтекст, а в новый

Забыл сказать, созданные мтексты должны быть middle centre justified.
Не понятно пока как высчитывать точку вставки нового текста
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 04.03.2008, 14:32
#121
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, На счет точки вставки. Координата у берется как у остальной строчки конкретной позиции, а координата х указывается сначала для первого столбца, затем для второго.
То есть после указывания рамкой исходных данных в ком. строке пишется “укажите координату х для масс одной позиции”, мышкой указываем точку на чертеже, с этой точки берется координата х, затем в ком. строке пишется “ укажите координату х для масс всех позиций”. Все.
Red Nova вне форума  
 
Автор темы   Непрочитано 04.03.2008, 14:55
#122
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Пересчитывал свои спецификации новым лиспом, вот что обнаружил. Есть строчка в которой изначально заданы неверные данные, программа пытается ее посчитать, и в графу массы вписывает 0, при этом графа не краснеет. Предлагаю сделать так, чтобы, если в результате вычислений получалось ноль, то этот ноль краснел.
Вложения
Тип файла: dwg
DWG 2004
Drawing4.dwg (41.1 Кб, 2520 просмотров)
Red Nova вне форума  
 
Непрочитано 04.03.2008, 15:40
#123
VVA

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


Теперь 0 в графе массы очень стыдно, и он краснеет
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 04.03.2008, 16:11
#124
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Неа, не краснеет, то есть не во всех случаях. Смотри файл. Слушай а это трудно сделать чтобы когда после цифры стоит буква м, то воспринять ее как 000, если не очень сложно, добавь пожалуйста такую возможность.
Вложения
Тип файла: dwg
DWG 2004
Drawing5.dwg (43.1 Кб, 2523 просмотров)
Red Nova вне форума  
 
Непрочитано 04.03.2008, 16:31
#125
VVA

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


Он краснеет, когда была ошибка, в твоем случае поставь округление до 2 знаков и увидишь число, отличное от 0. Добавил аланиз метров, но только там, где может быть суммарная длина (арматура, уголки)
Пробуй снова с #72
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 04.03.2008, 19:39
#126
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо, теперь все то. Если будешь писать вариант с возможностью записи результатов в новые мтексты, то прошу учесть следующее.
Думаю отдельную команду создавать не стоит, можно в spec добавить следующую возможность. Если после вызова команды выбрать 5 столбцов, то работает первый вариант, а если выбрать 3 столбца, то создаются новые мтексты.
Теперь остаются только профили.
Red Nova вне форума  
 
Непрочитано 05.03.2008, 12:06
#127
dextron3

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


VVA, не могу понять почему так происходит?
скриншот и файл прилагается
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 216
Размер:	57.3 Кб
ID:	4014  
Вложения
Тип файла: rar КЖ БЛОК А.rar (232.4 Кб, 143 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 05.03.2008, 15:00
#128
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3Ты какой командой пробовал? SPEC?
SPEC разработан для пяти столбцов. Смотри к примеру чертеж с поста 122. Для гостовского же варианте VVA разработал GRPSR, (к стати предлагаю VVA переименовать ее в GSPEC). С GRPSR я пока не работал, сегодня попытался на твой файл применить, почему-то появляются новые мтексты ниже рассчитываемой строки.
Но в любом случае при расчете масс листа символ “-” перед размерами должен быть не нарисован а вписан в текст.
У нас в конторе спецификации не по госту, но как вижу у вас гост. Предлагаю выложить вариант такой спецификации для всех случаев. Там ведь не только лист, но и профили. На основе этого экземпляра можно разработать расширенную версию GRPSR. (Я такой спецификации выложить не могу, так как по госту ни разу не делал)

VVA В этой связи предлагаю внести некоторые корректировки в GRPSR и SPEC
1. Переименовать GRPSR на GSPEC.
2. Уточнить действия программы для случая когда в наличии только четыре столбца, причем в первом столбце заданы сразу все размеры плитки (типа 500х450х10).
3. Предлагаю как в GSPEC, так и в GRPSR внести возможность распознать строку для расчета массы листа и без символа “-”. То есть если строка начата сразу с цифр, то она подпадает под формулу для плитки (в GRPSR -500х450х10 равно 500х450х10, в SPEC -500х450 равно 500х450).

Последний раз редактировалось Red Nova, 05.03.2008 в 15:28.
Red Nova вне форума  
 
Непрочитано 05.03.2008, 16:41
#129
tuguz


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


я всю тему не читал, но ты знаешь про лисп "mycalc", он сумирует и текст и мтекст, и размерные линии....и вставляет новым новым мтекстом
tuguz вне форума  
 
Непрочитано 05.03.2008, 17:02
#130
VVA

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


> dextron3 Red Nova уже ответил.
Цитата:
С GRPSR я пока не работал, сегодня попытался на твой файл применить, почему-то появляются новые мтексты ниже рассчитываемой строки.
Во первых GRPSP - что-то типа групповая спецификация (можно и GSPEC). Тексты добавляются вниз не почему-то, а потому что так было задумано. см ТЗ пост #110
Обработку 4 или 5 столбцов добавил в SPEC, если текст начинается с цифры, то считается листом. Обновления выложил в #72. Сразу скажу, что рисованные уголки и другие профиля распознавать не буду.
В любом случае при расчете масс проката символ проката (уголок, швелер, двутавр, арматура) перед размерами должен быть не нарисован а вписан в текст. Пользуйтесь соответствующими шрифтами.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.03.2008, 17:05
#131
VVA

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


> tuguz Лисп из #72 может суммировать или перемножать текст, мтекст, размеры, округлять результат до нужной величины и вставлять полученное значение в новый текст или в существующий текст, мтекст, размер, атрибут блока, ячейку таблицы.
*** Добавлено
А тему прочитать уже сложно, за сотню постов уже накропали
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 05.03.2008, 17:06
#132
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Да, название то у топика осталось с прежних времен, а сейчас в этом смысле все тип топ.
tuguz, Посмотри лисп с поста 72, там шедевр от VVA, этот лисп еще много чего умеет делать чего mycalc не может, суммировать, умножать тексты и размеры, перемножать столбцы текстов друг на друга, задавать нужное округление и даже спецификации считать. А mycalc на 2008-ом не работает (по крайней мере у меня)
Red Nova вне форума  
 
Автор темы   Непрочитано 05.03.2008, 17:07
#133
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Ты меня все же опередил на пол минуты.
Red Nova вне форума  
 
Непрочитано 05.03.2008, 20:01
#134
dextron3

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


VVA, Red Nova, оказывается я использовал старую версию,
( lisp уже стал как роман "Война и мир", имеется ввиду размер =)))
обидело тем что я не использую м-тексты, а обычные не считает...
Из моих спецификаций считает только пластины.

Пришлось перечитать данную тему чтобы вновь уловить суть...
А это очень интересный лисп, оказывается...
Если его сделать универсальным, то половина примочек
окажуться лишними

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

Если есть возможность немного облегчить спецификацию:

1. Для точго чтобы не учитывать картинки, которые заменяются
специализированным шрифтом, я предлагаю в последней графе спецификации писать обычное название металлапроката,
по которому программа и поределит из какого сортамента какую
величину брать, в крайнем случае если такое конечно возможно
то брать из ГОСТА и определять марку металлопроката в
графе обозначение

2. (м.п.) , означает что в графе масса ед.цы, автоматом вставляется
масса 1погонного метра изделия

3. В данную спецификацию добавил частоиспользуемые
двутавры, а также профлист, и болты гайки шайбы.


4. Если потребуется какой-то сортамент для базы могу выслать
готовые калькуляторе (смотря в каком виде потребуется),
опять же можно позаимстовать у Веткада, или у Прокат.

5. Скриншот используемой спецификации с обычными текстами,
собрал самые распространенные металлопрокаты =)

6. В электронном виде в РАРе тоже самое что на скриншоте (для испытаний)

7. Получилось 6 столбцов, по другому не смог облегчить, длину вынес в отдельный столбец это
особо важная графа


Буду ждать замечаний...
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 180
Размер:	69.5 Кб
ID:	4032  
Вложения
Тип файла: rar КЖ БЛОК А.rar (150.3 Кб, 136 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 05.03.2008 в 20:18.
dextron3 вне форума  
 
Автор темы   Непрочитано 05.03.2008, 22:30
#135
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Кто-нидь может по госту спецификации выложить, а то и ты dextron3, м я похоже не очень по госту работаем. Ведь в последней графе по закону не пишется нечего такого.
Diman111, частично выложил пример по госту, но не до конца инфу дал. Придется самому покопаться.
Очень советую использовать шрифт СПДС, я загнал символы профилей в Simbols мтекст редактора, офигенно удобно. В моей канторе такого типа вопросы я решаю, какой софт юзать и какие шрифты, в этом смысле мне повезло, но думаю если очень захотеть любого можно уломать.

По пунктам.
1. Честно говоря мне не очень нравится идея, я все думаю к госту приблизится, и тебе советую, а это получается еще один “левый” вариант, хотя у меня самого тоже вариант “левый”, и не хочу чтобы создалось впечатление что для себя я этот вопрос решил, а твой вариант подвергаю критике. Предлагаю, SPEC так не меняем, если очень хочешь именно такой вариант, то может новую команду для этого сделать ?(спрашиваем у VVA). Придумай для нее название, у VVA творческий кризис. (пока условно назовем ее SPEC2)
2. Про погонные метры учесть надо, я и сам над этим думал. Если во второй графе написано (п.м) либо (м.п), либо п.м либо м.п, (для людей рассеянных все варианты), то умножаем цифру в графе количество на вес одного метра, и записываем в графу масса всего, в графе масса одной детали проставляем знак “-”.
3. Поясни что такое “часто используемые двутавры”, про болты – добавить можно. Для SPEC предлагаю в первом тексте обозначить это дело как “болт М12”, ни естественно М тут переменная. Во второй графе длина болта. К стати их как правильно считать? Может по тому же принципу что и арматуру? Для SPEC2, так как ты и предложил, болт в конце.
Еще интересен вариант для проф. листа, но честно говоря для проф. листа я считаю только площадь а не массу. Учесть массу будет трудно, хотя возможно, если все варианты с программу внести, но первым делом конечно же надо внести массы для профилей уголок, швеллер, кв. труба и двутавр, без них туго.

ГОСТ
Предлагаю осмыслить постановку задачи по госту, так как конечно–же хорошо иметь программу которая налажена под собственный стиль работы, но гост он везде пройдет, и программа станет действительно универсальной.
Далее следуют размышления а не предложения по конкретной программе, так как вариант спецификаций по госту я не на все 100 знаю.

По госту есть “СПЕЦИФИКАЦИЯ” и “ГРУППОВАЯ СПЕЦИФИКАЦИЯ” Этот гост (ГОСТ 21.101-97) скачать можно тут http://www.rmnt.ru/download.php?id=13.26.19259
“ГРУППОВАЯ СПЕЦИФИКАЦИЯ” – это то что выкладывал Diman111[/b],
“СПЕЦИФИКАЦИЯ” – Это тоже, когда в графе количество только один столбец.
В столбце наименование тут пишется полное название и длина профиля (смотри ТЗ с поста 110). Именно тут Ане в последнем столбце пишется швеллер, уголок и т.п.
Причем для швеллеров и двутавтов пишется так:

Швеллер 12В, L=***
Швеллер 12Y, L=***
Швеллер 12C, L=***
Швеллер 12Э, L=***

На счет В, У, С, Э не уверен на 100 процентов что именно так, но скорее всего, поскольку сортаментов на швеллеры несколько: Швеллер-B, Швеллер с уклонными полками, Швеллер с параллельными полками и Швеллер экономичный с параллельными полками.
Представляю каких трудов будит стоить все это (а это даже не все) внести в программу. Думаю можно ограничится наиболее часто используемыми, я например в основном использую Швеллер с уклонными полками (У).
VVA, Что ты думаешь на этот счет?

P,S.
- Люди работающие по госту, прошу просветить в нюансы обозначения наименования разных профилей по госту.
- Да, и объясните пожалуйста куда вписывается масса всех деталей? А то по госту там такой графы нету?
Red Nova вне форума  
 
Автор темы   Непрочитано 05.03.2008, 23:05
#136
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Опять про ГОСТ
VVA Как на счет варианта, чтобы ты создал один экземпляр для каждого профиля который принципом просчета отличается. Затем можно объяснить принцип добавления новых профилей, и все желающие тогда смогут добавлять профили? По-моему похожая идея уже была предложена тобой. Если одобряешь, то буду дальше мысль развивать, на счет того какие именно “принципиальные варианты” надо разработать.
Red Nova вне форума  
 
Непрочитано 06.03.2008, 02:40
#137
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Что-то притомили вы VVA, помойму
Вы идеи выплевываете быстрее чем их мона переварить
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 06.03.2008, 06:25
#138
dextron3

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


Red Nova, согласен про последнюю графу,
ведь хотелось какойто поределитель для таблиц,

Давай по Циферии ГОСТА будет определятся металлопрокат
это самое удобное, а те значки которые я рисую из линии
просто не учитывать, а читать только текст

Если потребуется могу выдать госты
И для двутавров нужно после марки обратить внимание на букву
Б1, Б2, это тоже различие

А так моя таблица как раз по госту
А если лиспу без разницы размеры тыблицы он ведь считает
по столюцам то особой разницы для регионов нет
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.03.2008, 11:04
#139
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67


Здравствуйте .
У меня почему-то Lisp из поста 72# не считает швеллера и двутавры даже в Test Spec.dwg .
У кого-нибудь это было ?
__________________
Andrey
Павлов Андрей вне форума  
 
Автор темы   Непрочитано 06.03.2008, 11:13
#140
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


wetr, dextron3, Наверное wetr прав, надо нам притормозить, и дать VVA сосредоточиться.
Павлов Андрей, Наверное VVA обновил, подождем его комментариев
Red Nova вне форума  
 
Непрочитано 06.03.2008, 12:17
#141
VVA

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


Цитата:
Что-то притомили вы VVA, помойму
Вы идеи выплевываете быстрее чем их мона переварить
Есть такое
> Павлов Андрей. Швеллера и двутавры не считает, т.к. не "прикручена" база проката. Не откуда брать вес погонного метра.
> ALL
Пошел в нормоконтроль, взял действующие у нас ГОСТы. Так вот, согласно ГОСТ 27772-88 "Прокат для строительных стальных конструкций" ПРИЛОЖЕНИЕ 2 Схемы и примеры условных обозначений, прокат пишется в графе наименование буквами - Уголок, Двутавр и т.д., далее текст в 2 строки.
Это я к тому, что надо решить, что есть спецификация по ГОСТ, прежде чем предлагать какие-то решения.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.03.2008, 13:16
#142
dextron3

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


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

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

2. На скриншоте вспомогательная графа...
(программа как бы находила определенное сочетание букв в графах и соответсвенно применяла для этого
значение из текстовых забитых масс)

Тогда алгоритм будет безошибочно:
1. Если в строке найдено Ugl, то иди к базе Уголков, или считай по формуле той то

Уголок или на англ Ugl
Швеллер.... Shvel

и тп.


3. Red Nova, а тебе мой вариант спецификации не понравился чтоли? Вроде учел все профиля
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 269
Размер:	72.0 Кб
ID:	4061  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 06.03.2008 в 13:23.
dextron3 вне форума  
 
Автор темы   Непрочитано 06.03.2008, 18:41
#143
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
Цитата:
Что-то притомили вы VVA, помойму
Вы идеи выплевываете быстрее чем их мона переварить
Есть такое
Обещаю следующее предложение по модификации дать после того как ты прицепишь к существующему SPEC профили, это вроде как у тебя первое на очереди, потом уже продолжим дебаты по поводу госта. Жду смиренно.
Хорошо что ты спросил у нормаконтроля, а-то у меня такой возможности нет. Появилась надежда в будущем действительно прийти к госту.
Цитата:
Это я к тому, что надо решить, что есть спецификация по ГОСТ, прежде чем предлагать какие-то решения.
Вот, вот, и я о том же, вот что я откопал (смотри приложенный файл).

dextron3, Поясню что в твоей версии не то.
Как сказал VVA по госту название профиля пишется буквами в строке наименование, и думаю в дальнейшем алгоритм будит различать именно это слово, которое в самом начале, таким образом пропадает нужда писать наименования в конце, а если очень надо именно показать символ швеллер, а не писать его буквами, то тут уж СПДС шрифты рулят. А против твоего варианта я нечего не имею, просто лично для меня он смысла не имеет, так как шрифт СПДП под рукой. А за учтенные профили которых у меня не было, спасибо, над этим можно подумать, думаю дойдем и до этого.
Вложения
Тип файла: doc ГОСТ 21.101—97–(вырезка).doc (75.5 Кб, 302 просмотров)

Последний раз редактировалось Red Nova, 06.03.2008 в 18:43. Причина: забыл кое-че
Red Nova вне форума  
 
Непрочитано 06.03.2008, 21:17
#144
dextron3

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


Red Nova, давай универсальную как VVA выложил в файле ТЕСТ,
аналогична моей....
Про обозначение и нечитабельность шрифтов я писал выше
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.03.2008, 21:28
#145
dextron3

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


VVA, а у Вас есть СПДС (надстройка для автокада) ?
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 06.03.2008 в 23:15.
dextron3 вне форума  
 
Автор темы   Непрочитано 06.03.2008, 21:28
#146
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Не очень понял, поясни пожалуйста что ты имеешь в виду. В тест таблце все с СПДС шрифтом.
Red Nova вне форума  
 
Непрочитано 06.03.2008, 23:13
#147
dextron3

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


Red Nova, я имел ввиду про саму форму таблицы, основную...
всмысле линии и столбики
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 07.03.2008, 09:22
#148
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Этим в дальнейшем займемся, только сначала VVAзакончит первый вариант SPEC, а то нас много а он один.
Red Nova вне форума  
 
Непрочитано 11.03.2008, 13:26
#149
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Хотелось бы внести свою ремарку в разбор полетов по поводу госта на оформление спецификаций.
ГОСТ 27772-88 "Прокат для строительных стальных конструкций" ПРИЛОЖЕНИЕ 2 Схемы и примеры условных обозначений - это гост не на оформление спецификации. Это гост на марки стали. Насчет того откуда брать наименование проката - замечу, что в спецификации присутствует графа обозначение, в которой пишется гост. По этому госту мы узнаем и прокат. Далее - насчет тонкостей проката - с уклоном, с паралельными гранями или колонный или балочный - то по госту на конкретный прокат мы должны писать буковку У П К Б ..... -
пример:
Код:
[Выделить все]
  
обозначение                наименование           кол-во  масса 
СТО АСЧМ 20-93        Двутавр 25К2, l=3000       5          100
Разбираемся - что имеем:


обозначение СТО АСЧМ 20-93 - дает нам базу
Слово 25К2 - нам дают конкретный прокат.

Если в строке с номером и наименованием проката стоит буква l или L - то строка кол-ва говорит нам о том, что надо для получения веса перемножить цифру после знака = на вес проката из базы.
Если нет буквы l или L то надо погонный вес из базы просто вписать в столбец масса.

Кстати насчет листовой стали - у нее тоже есть свой гост, который вы обязаны вписывать )
а то тут все спецификации почему то с пустой графой обозначение.

Повторюсь. В качестве готовых баз - предлагаю базы прокат василия.
Либо простой список вида
файл: сто асчм 20-93 (или просто 20-93) - это имя базы
внутри список вида
[к]
....
25К2=100
25К3=120
....
[Б]
...
20Б1=80
20Б2=90
....
и т.д.

Последний раз редактировалось Diman111, 11.03.2008 в 13:39.
Diman111 вне форума  
 
Непрочитано 11.03.2008, 14:11
#150
dextron3

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


Вот я госты выписал может кому пригодятся
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 209
Размер:	80.9 Кб
ID:	4180  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 14:14
#151
dextron3

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


Кстати профиля гнутые, а также трубы можно считать по формуле, так же как и пластины, тоесть база не нужна
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 15:44
#152
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Вот я госты выписал может кому пригодятся
На лист есть еще 2 госта - вернее они на полосовую сталь.
82-70 и 103-76
Diman111 вне форума  
 
Непрочитано 11.03.2008, 16:44
#153
VVA

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


Цитата:
Хотелось бы внести свою ремарку в разбор полетов по поводу госта на оформление спецификаций.
ГОСТ 27772-88 "Прокат для строительных стальных конструкций" ПРИЛОЖЕНИЕ 2 Схемы и примеры условных обозначений - это гост не на оформление спецификации
Именно на нее. По порядку
ГОСТ 2.106-96 п.3.17 Цитата, выделено мною
Цитата:
- в графе "Обозначение" указывают:
...
В разделах "Стандартные изделия", "Прочие изделия" и "Материалы" графу "Обозначение" не заполняют. Если для изготовления стандартного изделия выпущена конструкторская документация, в графе "Обозначение" указывают обозначение выпущенного основного контсрукторского документа.
- в графе "Наименование" указывают:
...
в разделе "Стандартные изделия" - наименование и обозначение изделий в соответсвии со стандартами на эти изделия
Берем к примеру ГОСТ 27772-88 "Прокат для строительных стальных конструкций" ПРИЛОЖЕНИЕ 2 Схемы и примеры условных обозначений (стандарт на изделие)

В приложении 2 видим пример условного обозначения

,

которое согласно п.3.17 ГОСТ 2.106-96 для "Стандартных изделий" нужно писать в графу "Наименование"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 11.03.2008, 17:36
#154
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA[quote]Пост 153QUOTE]
Похоже, что действительно так, и в СПДС и в VetCAD то же.
А как на счет добавить профили в SPEC так как в начале обговаривали (хоть и не по госту, но очень хочится этот простятский вариант). Надежда есть?

Diman111,
Цитата:
обозначение наименование кол-во масса
СТО АСЧМ 20-93 Двутавр 25К2, l=3000 5 100
Очень бы хотелоь чтобы это было разрешено по госту, ты можешь найти ссылку на соответствующую документацию?

Последний раз редактировалось Red Nova, 11.03.2008 в 17:51.
Red Nova вне форума  
 
Непрочитано 11.03.2008, 18:02
#155
VVA

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


В общем и целом надежда есть. Базу "Проката Василия Кондрата" в том виде, в котором она есть использовать нельзя. Обозначения марок (например для уголка записано как 55 x 55 x 3) записано с пробелами. Поэтому написал конвертер и сконвертировал в формат, удобный мне.
Там есть одна закавыка, которую пока не знаю как разрешить.
Касается гнутых швеллеров
Швеллеры гнутые по ГОСТ 8278-83 обыч. сталь: 120x80x4 - вес 9.49
Швеллеры гнутые по ГОСТ 8278-83 кач. сталь : 120x80x4 - вес 8.22
возникает вопрос
1. Как узнать, какая сталь
2. Вообше, что делать, когда в базе будет обнаружено 2 марки одного вида проката (например 2 описания двутавра 20Б1) с разными массами?
Базу, в том виде, в котором она пока существует, прикрепляю ввиде файла. Несмотря на то, что он имеет расширение lsp, содержание у него вполне текстовое
***Добавлено
Это текстовый файл, просто открыть в блокноте
Вложения
Тип файла: lsp prokat.lsp (27.0 Кб, 145 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 11.03.2008 в 19:07.
VVA вне форума  
 
Непрочитано 11.03.2008, 18:15
#156
dextron3

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


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

Предложенные варианты: мной, Red Nova, Diman111,
очень схожи, странно что только 3 человека заинтересовались,
этой лучшей и полезнейшей разработкой во всем форуме...

Вот если бы лет пять назад ктонибудь такое разработал
я бы где-то полгода жизни съэкономил...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 18:18
#157
dextron3

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


VVA, почему не сделать определение по марки стали С235, С245, С255 и т.п. у меня в столбце после ГОСТА указывается
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 18:20
#158
dextron3

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


Из поста #155
Command:
Command: (LOAD "C:/Documents and Settings/Admin/Рабочий стол/prokat.lsp") ;
error: bad function: "12Б1"

Command:
Command:
Command: _appload prokat.lsp successfully loaded.


Command: ; error: bad function: "12Б1"
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 19:05
#159
VVA

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


>dextron3
Цитата:
Базу, в том виде, в котором она пока существует, прикрепляю ввиде файла. Несмотря на то, что он имеет расширение lsp, содержание у него вполне текстовое
Просто открой в блокноте Это не лисп. Просто txt файл нельзя прикрепить
Цитата:
VVA, слишком сложно еще и дробные числа рисовать, я редко встречаю такие обозначения, очень не удобно, хочется чегото простого
Есть такое понятие как ГОСТ, и такая должность, как нормоконтроль. Так вот, если положено рисовать 2-х или 3-х этажные надписи, то надо их и рисовать. У нас, например, с этим строго, не пропустят.
*** Добавлено
Спецификации на КЖ и КМ разные, тут возможны нюансы
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.03.2008, 19:28
#160
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Есть ГОСТ 21,101-97 есть 21,501-93.

касаемо записи по ГОСТ 27772-88 - то я имею полное право в чертежах КМ писать марку стали в примечаниях.
Есть ведомость металлоконструкций а есть спецификация элементов. Мне кажется тут эти понятия попутались.
По гост 21,101-97 прил Ж даны примеры спецификаций элементов, которые я указал в своем ТЗ и расчет по котоых реализовал Уважаемый VVA. Я лишь немного изменил групповую спецификацию под стандарт используемый на нашем предприятии.
Также есть небезызвестное СПДС граф в котором реализовано заполнение спецификации по принципам, указаным мною. также в его состав входит справка по станфартам оформления - рекомендую ознакомиться.
Необходимо определиться что именно мы тут пытаемся автоматизировать? Ведомость или спецификации для КМ или КМД.
проще всего реализовать предлагаемое мною решение по спецификации, согласно приложению Ж.
в этом случае мы имеем вместо 2-х этажной записи из поста № 153
запись вида
Код:
[Выделить все]
обозначение                наименование           кол-во  масса

ГОСТ 8509-86            Уголок 75х75х6               ххх      ххх

Марку стали пишем в примечаниях чертежа. Собсно вес мы берем из сортамента а там он один на все марки стали - так что не вижу смысла тут в принципе затрагивать ГОСТ 27772-88.
поскольку его круг действий ограничивается:
Код:
[Выделить все]
2. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ

 

2.1. Прокат изготовляют в соответствии с требованиями настоящего стандарта по технологическому регламенту, утвержденному в установленном порядке.
и нет ни слова об оформление ПСД по этому стандарту.

Между тем по ГОСТ 21.101—93

Код:
[Выделить все]
1 Область применения 

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

Общие правила выполнения графической и текстовой документации, установленные в разделе 5 настоящего стандарта, распространяются также на отчетную техническую документацию по инженерным изысканиям для строительства.
Diman111 вне форума  
 
Автор темы   Непрочитано 11.03.2008, 22:14
#161
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
1. Как узнать, какая сталь
Вообще-то в первоначально поставленном вопросе, когда еще гост не затрагивали слов о гнутых профилях не было. В ТЗ были горячекатаные уголки, трубы, прямоугольные трубы, швеллеры с уклонными полками и двутавры с уклонными полками. Я это не к тому, что так и надо, а к тому что в большинстве случаев в моих проектах этим можно обойтись. По этому поводу прошу если не очень затруднит сделать для начала упрощенный вариант spec с вышеперечисленными профилями. Этого мне хватит для моей нынешней работы, и я буду очень благодарен. Другой вопрос, что этого естественно недостаточно, чтобы программа стала действительно общеприемлемой. Тут конечно надо думать и о гнутых профилях. И тут ответ на вопрос “как узнать какая сталь” должен прийти после того как мы решим как именно будит выглядеть спецификация (там ведь по госту где-то и про сталь есть).
Цитата:
2. Вообше, что делать, когда в базе будет обнаружено 2 марки одного вида проката (например 2 описания двутавра 20Б1) с разными массами?
Если кто-то сам добавит базу профилей и при этом повторится то конечно все возможно. Если такое случится, то думаю должно выйти сообщение, что в базе данных хаос, и т.п. А строка масс для данного профиля может принять кокой ни–будь цвет, ну к примеру синий.
Diman111,
Если можешь дай пожалуйста ссылки на все описанные тобой госты, если ссылок нет, но если вариант отсканируй пожалуйста пору нужных страниц и поделись с нами. Буду очень признателен.
Мне и самому не нравится двустрочный вариант описанный VVA, уж больно усложнено, но не хочется от госта отклонятся. Если по госту и вправду можно как ты описал, то думаю все согласятся на этот вариант (надеюсь что так).
Цитата:
Также есть небезызвестное СПДС граф в котором реализовано заполнение спецификации по принципам, указаным мною
У меня СПДС, и я там такого не видел, там как раз в базах есть двустрочный вариант. Может у нас версии разные? У меня 4, и вот что она дает
Вложения
Тип файла: dwg
DWG 2004
СПДС пример спец..dwg (45.7 Кб, 2438 просмотров)
Red Nova вне форума  
 
Непрочитано 11.03.2008, 22:22
#162
dextron3

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


VVA, я так понял это просто для ознакомления для нас
выложено, чтобы мы тебя проверили правильно ли сортаменты
забиты?

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

Хотьбы предупридили

А то я уже его во всю в автокад подргужать начал
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 11.03.2008, 22:28
#163
dextron3

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


Red Nova, может всетаки откажемся от двух строчного пока не сделали,
я все под одну спеку подгоняю что металл что арматура, что бетон, что КМД, что КЖИ.


PS СОКРАЩЕННЫЙ СОРТАМЕНТ МЕТАЛЛОПРОКАТА ДЛЯ ПРИМЕНЕНИЯ В СТРОИТЕЛЬНЫХ СТАЛЬНЫХ КОНСТРУКЦИЯХ
ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ КОМИТЕТ СССР
(Госстрой СССР)

если кому пригодится конечно, а нет так нет


я уже неделю не работаю жду окончания лиспа
Вложения
Тип файла: doc Сокращенный сортамент металла.DOC (38.0 Кб, 400 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.03.2008, 09:29
#164
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
я уже неделю не работаю жду окончания лиспа
Еще скорее всего долго ждать придется, ты же сам когда-то назвал этот лисп "Война и мир".
Red Nova вне форума  
 
Непрочитано 12.03.2008, 10:15
#165
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Все указанные мною госты выложены в интернете - поиск вам поможет.
По поводу оформления - если вписывать указанный вами 2-х этажный текст - скажите что вы впишите в столбец обозначение а что в столбец наименование.
Diman111 вне форума  
 
Непрочитано 12.03.2008, 12:23
#166
VVA

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


Цитата:
VVA, я так понял это просто для ознакомления для нас
выложено, чтобы мы тебя проверили правильно ли сортаменты
забиты?

Почему правдо все в одну строчку забито не удобно проверять
Зато удобно читать lisp'om, а для проверки читай примечания в начале файла. Скачай notepad++ и проверять станет удобней

Цитата:
Red Nova, может всетаки откажемся от двух строчного пока не сделали
Не пойму, чем так страшен двухстрочный? MTEXT решает все проблемы, для лиспа виден как однострочный? По хорошему, хотелось бы,чтобы в определении веса учавствовала только марка элемента (скажем двутавр 20 или швеллер 12).
Вложения
Тип файла: dwg
DWG 2004
Спецификация КЖ.dwg (38.4 Кб, 2436 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 12.03.2008, 12:24
#167
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Diman111, Не нашел прямого подтверждения твоей позиции по поводу госта, если что-то не правильно понял поправь.
Вот вырезки из гостов на которые ты ссылаешься. И там все либо очень мутно, либо про двустрочный вариант.
Вложения
Тип файла: doc ГОСТ 21, ГОСТ 27772-88 вырезки.doc (115.5 Кб, 352 просмотров)
Red Nova вне форума  
 
Непрочитано 12.03.2008, 13:21
#168
dextron3

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


VVA, не нашел гайки болтики и шайбочки в предложенном лиспе каталоге

вот гост
Вложения
Тип файла: doc БОЛТЫ ГАЙКИ.doc (152.0 Кб, 135 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.03.2008, 13:25
#169
dextron3

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


VVA, почему Вам не понравилось предложение Diman111,
чтобы лисп детектировал ключевые буквы металла проката:
Б1, Ш1, или цыфры госта самого проката, а не стали?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.03.2008, 13:56
#170
VVA

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


> Кто сказал, что мене не понравилось? Как раз таки и хочется, чтобы после определения типа проката, марка говорила однозначно о весе конструкции.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 12.03.2008, 14:37
#171
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
Red Nova, может всетаки откажемся от двух строчного пока не сделали,
Мне этого и самому хочется, но я все стараюсь найти для этого отмазку в виде некого допущения по госту, но пока найти не могу. Хоть и очень хочется. Одну строку куда быстрее редактировать чем две.
VVA Надеюсь ты не упустил из виду мою просьбу с поста 161.
Red Nova вне форума  
 
Непрочитано 12.03.2008, 15:06
#172
VVA

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


Прямое подтверждение:
ГОСТ 21.101-97 п. 6.2
Цитата:
6.2 Спецификации строительных изделий составляют по ГОСТ 21.501
а так же приложение В (обязательное)
Цитата:
ГОСТ 2.108—68 ЕСКД. Спецификация -
С учетом требований раздела 6 настоящего стандарта и ГОСТ 21.501
ГОСТ 2.108-68 ЕСКД заменен ГОСТ 2.106-96 ЕСКД

ГОСТ 21.501-93 п.4.10
Цитата:
4.10. Спецификации на изделия выполняют по ГОСТ 2.108 и ГОСТ 2.113 с учетом следую­щих дополнительных требований:
1) графы “Формат” и “Зона” исключают. Размер графы “Поз.” принимают равной 10 мм, графы “Наименование” — 73 мм;
<...>
Опять помним, что ГОСТ 2.108-68 ЕСКД заменен ГОСТ 2.106-96 ЕСКД.
И наконец ГОСТ 2.106-96 ЕСКД п.3.17 нам говорит, что (выделено цветом мной)
Цитата:
3.17 Графы спецификации заполняют следующим образом:
<...>
- в графе "Обозначение" указывают:
<...>
В разделах "Стандартные изделия", "Прочие изделия" и "Материалы" графу "Обозначение" не заполняют. Если для изготовления стандартного изделия выпущена конструкторская документация, в графе "Обозначение" указывают обозначение выпущенного основного конструкторского документа:

(Измененная редакция, Поправка 1997 г.)

- в графе "Наименование" указывают:
<...>
в разделе "Стандартные изделия" - наименования и обозначения изделий в соответствии со стандартами на эти изделия;
Так как ГОСТ 27772-88 - стандарт на "ПРОКАТ ДЛЯ СТРОИТЕЛЬНЫХ СТАЛЬНЫХ КОНСТРУКЦИЙ", то и писать обозначения проката в графу наименование надо по этому ГОСТУ
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.03.2008, 16:24
#173
dextron3

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


VVA, то что Вы говорили про мультитекст - ни в коем случае
может и госты указывают и заставляют писать в две строки
то в электронном виде страдает высота текста, позиции налазиют
друг на друга, очень тесная становится спецификация,
в глазах ребит если распечатываешь в мелком масштабе
ну очень не удобно
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.03.2008, 17:04
#174
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Касаемо поста №172.
Все что сказано Касается стандартов нашего предприятия, базирующихся на ГОСТах на оформление. Замечу группа нормоконтроля присутствует.
Насчет
Цитата:
В разделах "Стандартные изделия", "Прочие изделия" и "Материалы" графу "Обозначение" не заполняют. Если для изготовления стандартного изделия выпущена конструкторская документация, в графе "Обозначение" указывают обозначение выпущенного основного конструкторского документа:
смотри приложенный файл.
что касается металлопроката - о чем мы тут и ведем разговор - то все написанное мною базируется на моей практике и практике оформления документации. Пока проблем небыло.

В принципе - мы тут спорим о виде записи - но VVA прав в одном - ка кне запиши - анализировать то все равно какую строку. Проблема в том что искать при анализе.
а искать надо точное указание на базу сортамента, т.е. ГОСТ и номер проката.
Т.е. ищем базу по принципу совпадения

Код:
[Выделить все]
(WCMATCH "*СТО-АСЧМ 20-93*"); определили базу
(WCMATCH "*25К1*"); определили прокат
Саму базу СТО-АСЧМ 20-93 и прокат 25К1 - конечно надо подставлять поочередно из списка баз и прокатов - до первого совпадения.
Какова там сталь - на вес не влияет.
Так что дискуссию по поводу вида записи можно и прикрыть.
Предложенный мною вариант проще анализировать.
Предложенный VVA вариант сложнее анализировать.
НО НЕ БОЛЕЕ. Ибо алгаритм проанализирует любые строки.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 145
Размер:	30.4 Кб
ID:	4216  

Последний раз редактировалось Diman111, 12.03.2008 в 17:19.
Diman111 вне форума  
 
Непрочитано 12.03.2008, 18:09
#175
dextron3

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


Diman111, забыл
Код:
[Выделить все]
(WCMATCH "*(п.м.)*"); определили или масса еденицы или
(WCMATCH "*L=*"); определили длину
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 162
Размер:	77.9 Кб
ID:	4219  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.03.2008, 19:08
#176
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ух ты нас переместили, что интересно это произошло после 175-и сообщений
Red Nova вне форума  
 
Непрочитано 12.03.2008, 19:19
#177
dextron3

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


Red Nova, надо сообщить всем, а то заватра Diman111, VVA, не найдут тему
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.03.2008, 19:35
#178
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Предлагаю компромиссный вариант. А что если лисп будит считать массу профилей и когда они записаны в две строки и когда в одну строку как у Diman111, в итоге добавится больше возни для VVA (сорри), но все будут довольны. Ну как, Согласны? Кроме того лисп и в правду станет уникальным, так как двустрочный вариант есть в VetCAD. (Там к стати очень хорошая библиотека материалов. VVA советую посмотреть если еще не пользовался, многое можно перенять). Что мне не нравится в VetCAD это то что там строчки загнаны в блоки. Чтобы просуммировать массу нескольких строчек надо по очереди на них тыкать.
Red Nova вне форума  
 
Непрочитано 12.03.2008, 19:36
#179
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Diman111, забыл
Код:
[Выделить все]
(WCMATCH "*(п.м.)*"); определили или масса еденицы или
(WCMATCH "*L=*"); определили длину
Мне кажется будет достаточно определения
Код:
[Выделить все]
(WCMATCH "*L=*"); определили длину
Если есть обозначение конкретной длинны - то вес указанной длинны - иначе - п.м.
Но это VVA виднее

Последний раз редактировалось Diman111, 12.03.2008 в 19:46.
Diman111 вне форума  
 
Автор темы   Непрочитано 12.03.2008, 19:41
#180
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, На страничке форума AutoCAD мы все еще присутствуем, так что найдут. .
АУ Diman111, VVA, ВЫ НАС СЛЫШИТЕ, МЫ ТУТ. СКОРО ЗАЖГЕМ ФАКЕЛЫ И БУДИМ ВАМ МАХАТЬ, ТАК ЧТО ПЛЫВИТЕ НА МОЯК
Red Nova вне форума  
 
Непрочитано 12.03.2008, 20:36
#181
VVA

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


Черновой вариант готов пока для спецификации КЖ. Есть возможность выбирать или 4 столбца (Обозначение Наименование Кол. Масса ед.кг)
или 3 (Наименование Кол. Масса ед.кг). Причем если выбираются 4 столбца, то не все строчки могут быть заполнены в графе "Обозначение".
Принцип такой:
если в графе "Обозначение" есть текст, то ГОСТ профиля берется из графы "Обозначение", иначе из графы "Наименование".
В общем сейчас без разницы, кто и как трактует ГОСТ на спецификации.
У кого требуют, тот пишет двухэтажные тексты, не требют - разносит по графам "Обозначение" и "Наименование". Пока не доконца понял с погонными метрами. Но это завтра. Если успею причесать, то завтра выложу пробную версию.
PS При навигации буду ориентироваться на зажженные факелы
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.03.2008, 21:20
#182
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


2VVA
а каким образом должен быть записан 2-х этажный текст?
простыми текстами в 2 этажа или 1 мтекстом?
Diman111 вне форума  
 
Непрочитано 12.03.2008, 22:09
#183
dextron3

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


VVA,
если (м.п.) то считается для 1000мм или для одного метра,ъ
по идеи можно писать просто L=1000мм, тоесть одно и тоже

а п.м. это традиция, ....

PS, а про болтики, гаечки и шайбочки никто не забыл?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.03.2008, 22:20
#184
dextron3

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


Diman111, про М текст не напоминай,
м-текстами только бабушки проектировщицы пользуются

PS
ты пробовал в М-тексте лист общих данных набросать,
я пробовал поэтому М-текст вызывает оотварщение
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.03.2008, 22:24
#185
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 205


Лучше в качестве базы использовать файл MtlProfiles.mdb из ProjectStudio CS. А диалоги написать на VC++.??
nikе вне форума  
 
Непрочитано 12.03.2008, 22:27
#186
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 205


А текст спецификации удобнее оформить в виде блока с расширенными данными, для автоматизации составления ведомости расхода стали.И естественно текст-блок редактировать с помощью такой же программки.
nikе вне форума  
 
Непрочитано 13.03.2008, 11:13
#187
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Кроме того лисп и в правду станет уникальным, так как двустрочный вариант есть в VetCAD
В VetCAD++ возможен вариант и двустрочный и однострочный - все зависит от того как настроены базы. В инет я выложил вариант двустрочный, так как мы его пользуем. Перенастроить самому не проблема. Надо в папке DB в файле Прокат.txt заменить строки типа
/[№ПРОФИЛЯ]$ $[ГОСТ]
на
L$[№ПРОФИЛЯ]$ $[ГОСТ]
это вариант с префиксом для уголка
ширины столбцов тоже настраиваются

Цитата:
Сообщение от Red Nova Посмотреть сообщение
Что мне не нравится в VetCAD это то что там строчки загнаны в блоки. Чтобы просуммировать массу нескольких строчек надо по очереди на них тыкать.
а что мешает их (блоки) выделить рамкой?
VetalBY вне форума  
 
Непрочитано 13.03.2008, 11:42
#188
VVA

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


>nike Это уже сделано. Vetcad называется.
У кого есть ProjectStudio CS. Поделитесь здесь файликом MtlProfiles.mdb. Посмотреть хочется.
Цитата:
а каким образом должен быть записан 2-х этажный текст?
простыми текстами в 2 этажа или 1 мтекстом
1 мтекстом. как во вложении
По поводу погонных метров: там всегда есть строка L=ЧИСЛО п.м. (м.п.)?
Вложения
Тип файла: dwg
DWG 2004
Спецификация КЖ.dwg (38.4 Кб, 2415 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.03.2008, 11:46
#189
dextron3

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


Код:
[Выделить все]
По поводу погонных метров: там всегда есть строка L=ЧИСЛО п.м. (м.п.)?
нет просто (м.п.) без ничего
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.03.2008, 11:57
#190
dextron3

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


Вот файл из проджект студио
чтото я не понял как им пользоваться,
Вложения
Тип файла: rar MtlProfiles.rar (183.3 Кб, 146 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.03.2008, 14:06
#191
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 205


MtlProfiles.mdb из ProjectStudio CS это файл базы данных MS ACCESS. В ProjectStudio есть еще и др. файлы, например с арматурой. Где то на форумах встречал библиотеки lisp для работы с базами данных через ADO. Но диалог по чтению и выбору сортамента из баз данных наверно легче будет написать на VC++ используя классы ADO. Хочется самому такое написать, но я только учусь этому С++. Для Брикса давно писал на чистом лиспе программу по заполнению спецификаций, используя VetCADовские текстовые базы данных. Теперь хочется переделать немного, диалог переписать на arx, т.к. ребята из Bricsys полностью заменили движок DCL (теперь эти DCL диалоги стали растягивающимися).
nikе вне форума  
 
Автор темы   Непрочитано 13.03.2008, 19:36
#192
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VetalBY Надо-же сам автор мне ответил. Первый плюс от перемещения форума в раздел программирование . Мда признаюсь, что пробовал только "синий" выбор, тогда не получалось, а с "зеленным" получилось.
Цитата:
Перенастроить самому не проблема. Надо в папке DB в файле Прокат.txt заменить строки типа
/[№ПРОФИЛЯ]$ $[ГОСТ]
на
L$[№ПРОФИЛЯ]$ $[ГОСТ]
Хорошо, что настроить можно. За подсказку спасибо. А почему ты эту возможность не сделал более доступной. Было бы удобнее если бы эта возможность была в настройках. (ИМХО смо сбой)

Последний раз редактировалось Red Nova, 13.03.2008 в 20:22.
Red Nova вне форума  
 
Автор темы   Непрочитано 13.03.2008, 23:00
#193
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Гост это конечно нужно. Но не забывай пожалуйста что весь разговор начался с ТЗ с использованием СПДС шрифта, очень надеюсь что я и этот “неправильный” вариант спецификации дождусь с профилями. Напомню для работы на моем предприятии мне надо только уголки, трубы, да двутавры и швеллера с уклонными полками, все как в самом первом ТЗ, только вместо приближенных формул для труб и уголков можно прицепить сортамент. Может я и перейду на гост, но пока что мне очень хочется наконец попользоваться моим вариантом SPEC в полную силу. А то получается что арматуру и листы я моги считать а профили нет (прямо слюнки текут). Прошу не забудь про меня. А то форум плавно повернулся в сторону госта, а мой первоначальный вопрос так и не решился. Мда.
Red Nova вне форума  
 
Непрочитано 14.03.2008, 09:44
#194
VVA

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


При разборе "Наименования" используется следующий алгоритм:
1. Текст из "Наименования" разбивается на 2. Признактм разбития служит 1-я цифра.
2. Если текст начинается с UNIKOD символов (\U+), то п.1 выполняется с 8 символа, пропуская \U+XXXX
1-я часть текста (та что до цифры) и служит признаком профиля
Для строки "Двутавр 20Б1" это будет "ДВУТАВР"
Для строки "\U+E725" (швеллер по шрифту CS) - "\U+E725"
Вот пример "разбора"
Код:
[Выделить все]
 
;;;======= ШВЕЛЛЕР + 
                   ((vl-position (car WHAT) '("ШВЕЛЛЕР" "ШВЕЛЕР" "[" "\U+E725")) ;_Швеллер
Я даже добавил слово "ШВЕЛЕР", мало ли кто ошибется
Это я к тому, что признаком проката в тексте из столбца "Наименование" может быть и "Мама мыла раму". Нужно только ее добавить в список.
Сейчас очень большая загрузка по работе, поэтому ни вчера, ни сегодня продолжить ее не смогу. Попробую выкроить часик-другой на выходных, но не обещаю.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.03.2008, 09:54
#195
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67


Здравствуйте .
Задумки и реализация в пограмме очень понравились , хоть и не по ГОСТ , но позволяет считать спецификации . Только , я думаю , свести это в конечном счете в техническую спецификацию стали придется все-равно "ручками" . Или у кого-нибудь есть задумки ,как автоматизировать создание ТСС ? Пока сам пользуюсь вариантом вставки таблиц EXCEL в пространство модели (в модели тормозит меньше) , как OLE-объект , сохраняя связь с EXCEL . В excel подключаю внешний сортамент , сортирую данные по строкам и колонкам и в конечном итоге получаю полуавтоматически ТСС .
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 14.03.2008, 10:01
#196
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Хорошо, что настроить можно. За подсказку спасибо. А почему ты эту возможность не сделал более доступной. Было бы удобнее если бы эта возможность была в настройках. (ИМХО смо сбой)
То, что удобно, не всегда универсально к сожалению.
Сделал так и пока не пожалел. Эта строка отвечает за формирование "наименования". Пользователь сам может настроить так, как ему надо - с ГОСТом или без, в 2 строки или одну, префикс для профилей под используемый шрифт и т. д. И не так уж это сложно (в хелпе описано).
VetalBY вне форума  
 
Непрочитано 14.03.2008, 10:17
#197
dextron3

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


VVA, будем ждать, проектирование в городе остановилось
все ждем лиспа
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 14.03.2008, 11:06
#198
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Цитата:
Сообщение от Павлов Андрей Посмотреть сообщение
Или у кого-нибудь есть задумки ,как автоматизировать создание ТСС ?
В VetCAD++ будет ТСС. Уже кое-что сделано в этом направлении и работает. Пока делается для РБ (по СТБ 21.504-2005). Но в бесплатный пакет она полностью не войдет и когда выйдет в свет, сказать не могу пока...
VetalBY вне форума  
 
Непрочитано 19.03.2008, 12:54
#199
VVA

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


Ну вот я и объявился снова

Пример команд SpecKM и SpecKG.

Попытался сделать универсально. Для определения типа проката можно пользоваться шрифтами (типа CS_gost), можно писать буквами, можно писать двухэтажные тексты, можно однострочные, разнося обозначение и наименование по разным столбцам.

Обе команды требуют выбора 3-х столбцов, позиции Массы ед и Массы всего задаются рамкой любой ячейки.

Во вложении лисп, пример dwg и необходимые шрифты. Если двухэтажный текст вылезет за пределы - не обращать внимания, просто нет нужных шрифтов.

Файл prokat.ves должен находится в путях поиска автокада.
Вложения
Тип файла: rar sumTv2.rar (259.5 Кб, 163 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 19.03.2008 в 14:07.
VVA вне форума  
 
Непрочитано 19.03.2008, 16:25
#200
dextron3

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


с арматурой что то не в порядке
Миниатюры
Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 166
Размер:	27.2 Кб
ID:	4446  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 16:32
#201
dextron3

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


1. лисп считает почемуто вместо миллиметров метры, хотя стоит ММ
2. почему когда в графе наименование длинна дается отдельным текстом лисп не замечает
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 17:25
#202
VVA

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


> dextron 200,201
1. Если после L= есть буква м (м м.п. п.м.)б то длина считается как метры и умножается на 1000. Там идет проверка на wcmatch *М*. Если длина в мм, то их писать не нужно.
2. В любой графе текст должен быть ОДИН, текст, мтекст - без разницы, но один.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.03.2008, 17:46
#203
dextron3

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


А почему тогда цыфры как то блокируются,
что это означает и как потом от него избавиться
смотреть скриншот
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 152
Размер:	6.1 Кб
ID:	4447  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 17:55
#204
dextron3

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


вот еще не могу понять почему так работает:
Изображения
Тип файла: jpg Snap2.jpg (17.7 Кб, 712 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 18:15
#205
VVA

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


>203 Это называется гиперссылка. Туда записываются пояснения по расчету или ошибки. Для управления гиперссылкой см. команду
_HYPERLINKOPTIONS.
>204 По картинке и я не могу. Файлик приложи.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.03.2008, 18:32
#206
dextron3

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


Объясни алгоритм работы лиспа простыми словами, не могу понять суть...

вот файлик
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 19:12
#207
VVA

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


Файлика не вижу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.03.2008, 19:50
#208
dextron3

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


форум тормозит я на почту сбросил
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 19.03.2008, 20:09
#209
dextron3

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


вот загрузился наконец
Вложения
Тип файла: dwg
DWG 2004
Спецификация КЖ.dwg (58.5 Кб, 1949 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 19.03.2008, 21:55
#210
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну начнемс. Ух какие тут дебаты предстоят.

1. Во первых большое спасибо . Хочу отметить что с гиперссылками ты хорошо придумал, думаю будит интересно если и масса одной детали будит иметь гиперссылку, в ней можно записать пояснение про формулу расчета, если профиль, то про массу одного килограмма и длину. Было бы интересно.


SPECKM

2. Честно говоря вариант с выбором столбцов масс реализован не совсем удобно. Было бы легче просто указать точкой координату Х вставки масс. То есть вместо выбора рамкой двух углов указываем одну центральную точку столбца. А еще было бы хорошо добавить в команду вариант с оверрайт существующих мтекстов, как в SPEC, лично мне так больше нравится (я в основном работаю с аналогичными спецификациями, по этому создаю одну на основе другой). Причем отдельную команду для этого можно и не создавать, вместо этого можно добавить следующую возможность. Если выбираем три столбца, то далее задаем координаты ввода масс, а если выбрали пять столбцов, то будет оверрайт масс.

3. Можно ли вместо текста вставлять мтекст middle centre justified? (если это возможно то может есть смысл создать отдельную переменную для этого)

4. В выложенном примере по только по одному варианту от каждого профиля. Как различить разные швеллеры (с уклонными, параллельными полками и т.п.) Было бы хорошо иметь пример со всеми возможными комбинациями, так любому будет понятно, и если лисп попадет к кому то не имеющему отношения к нашему форуму то и он разберется.

5. Когда получается синий текст с ссылкой то при нажатии на текст+ctr пишется что система не может найти путь.

6. Не считает трубы (круглые)

7. При наличие профиля “Двутавр 20Б1” масса становится синей, пишется что найдено больше 1 в базе.


SPECKG

8. Считаются только лист, арматура и швеллер, причем швеллер только двустрочный.

9. Масса листа записанная в одну строчку сосчиталась в 1000 раз больше чем надо.

Последний раз редактировалось Red Nova, 19.03.2008 в 22:00.
Red Nova вне форума  
 
Непрочитано 20.03.2008, 06:43
#211
dextron3

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


Red Nova,
Код:
[Выделить все]
 9. Масса листа записанная в одну строчку сосчиталась в 1000 раз больше чем надо.
читай выше у меня был этот вопрос
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 20.03.2008, 08:01
#212
dextron3

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


Примечание:

1. Почему не удобно текст одной строкой, а не из двух: размеры и длина,
в спецификации легче потом быстро удалить размеры длинна, не подревожив габариты и заменить на метры погонные,
(из практики металлисты сначало выдают грубый вариант для строителей где все дается в П,М,)

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

3. Вчера сравнивал 1 вариант Spec, с последним первый гораздо понятнее считает и меньше выделять приходится тоесть за 1 раз

4. Про гиперссылки особо не понял не сипользую вовсе

5. Может я не прав, но почему алгоритм не такой:

1. Выделите 6 столбцов
2. (каждый текс является отдельной ячейкой)
3. Первый текст ГОСТ направляет в нужную сортамента область
4. Второй текст габариты (формулы или ссылка на сортамент выборку,
которую можно в ручную обновлять)
4.1 Если фигурирует буква Б1, Б2 и тп. идем в подсортамент в каталоге
5. Если если в третьем тексте МП или М но не мм, то количество равно =1, а в строку количество вводит прочерк "-"
6. Если L=x то считаем по формуле массу, взяв данные из сотрамента

вот скриншот:
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 167
Размер:	62.4 Кб
ID:	4465  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 20.03.2008, 08:09
#213
dextron3

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


Вот какие 6 отдельных текстов являются основными, а то я там говрил а забыл добавить это про пост #212
Изображения
Тип файла: jpg Снимок1.jpg (15.7 Кб, 685 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.03.2008, 17:03
#214
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
3. Первый текст ГОСТ направляет в нужную сортамента область
Зачем гост, в нужную область можно направить при помощи содержания текста наименования, к примеру "двутавр 20 Б1"
Red Nova вне форума  
 
Непрочитано 20.03.2008, 18:37
#215
VVA

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


Пояснения
SpecKM ищет в базе только тип профиля (например двутавр) и марку (20Б1) Там таких 2 (по ГОСТ 26020-83 и СТО АСЧМ 20-93) поэтому текст синий. Т.к. по ТЗ Red Nova вообще нет графы обозначения. Это не по ГОСТу, поэтому поддержку SpecKM в таком виде пока прекращаю, до полной отладки основного модуля. Тяжело одновременно править в нескольких версиях. Пока остается SpecKG. Все замеченные баги считает/не считает/считает не так или сюда вместе с файликом или мне на почту. После отладки выборки из базы будем думать о вариантах.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.03.2008, 18:46
#216
dextron3

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


Red Nova, нет давай гостом чтобы лишнюю инфу не писать,

я расписал текстом что написано в рамке
это наверно универсальный

Вот шести столбцовый вариант

Двутавр!

ГОСТ;20Б1;L=1919мм;18;0;0

или

ГОСТ;20Б1;(п.м.);18;0;0


Уголок

ГОСТ;40x40x5;L=1919мм;18;0;0

или

ГОСТ;80x40x5;L=1919мм;18;0;0

ГОСТ;40x40x5;(п.м.);18;0;0

Арматура
по пятистолбчатому выделению С%% является точкой
определения С%%- это всеми известный знак диаметра Ф
если даже есть гост то его лисп просто не замечает

С%%12A-III;L=1919мм;18;0;0


Пластины уже реализованы спасибо

или по четырехстрочному выделению гост выделять не нужно
если есть гост тоже не замечает если длинна не указана
считает как платину по формуле

80x40x5;18;0;0

Швеллер
ГОСТ основа Б1 направление на под основу

ГОСТ;20Б1;L=1919мм;18;0;0

или

ГОСТ;20Б1;(п.м.);18;0;0

Гнутый профиль
ГОСТ основа

ГОСТ;80x40x5;L=1919мм;18;0;0



Red Nova если я не прав брось в меня камень

VVA, будем ждать... спасибо


Для спаренных профилей я придумал идентификатор в графе примечания: 2шт. (если лисп обнаруживает буквы шт. , то
массу еденицы элемента умножает на 2, легко и просто)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 20.03.2008 в 18:53.
dextron3 вне форума  
 
Непрочитано 20.03.2008, 18:51
#217
dextron3

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


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

я вот сейчас пластины считаю с помощью первого лиспа и доволен
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.03.2008, 19:41
#218
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Цитата:
поддержку SpecKM в таком виде пока прекращаю, до полной отладки основного модуля
Готов подождать. Вот только у меня просьба, прежде чем прекратить доработку сделать смешанный вариант SPEC и SPECKM. Нововведений не надо, надо в уже существующий SPEC в таком виде как он есть добавить возможность SPECKM считать профили. После обещаю не тревожить до закрытия вопроса по госту. Надеюсь это не очень трудно.
Red Nova вне форума  
 
Автор темы   Непрочитано 20.03.2008, 19:52
#219
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Ты не прав. По госту к примеру для двутавра Б1 пишется
двутавр 20 Б1
на правда в две строки.
Так что это никак не лишняя инфа. Но камень бросать в тебя я не буду, не долетит по-моему, ему же лететь несколько тысяч километров.
Red Nova вне форума  
 
Непрочитано 20.03.2008, 21:24
#220
dextron3

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


Red Nova, ну если ты нарисуешь значок и напишешь Б1 ты не нарушишь гост по любому
см скриншот
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 157
Размер:	30.2 Кб
ID:	4510  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 10:57
#221
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Ты наверное где то в душе художник, все никак не откажешься от рисованных профилей.
Red Nova вне форума  
 
Непрочитано 21.03.2008, 12:26
#222
VVA

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
dextron3, Ты наверное где то в душе художник, все никак не откажешься от рисованных профилей.
+1
Чем рисовать двутавр, а потом для его распознавания рядом писать слово "Двутавр", на мой взляд проще сразу написать в наименовании "Двутавр" и далее по тексту.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.03.2008, 14:32
#223
dextron3

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


VVA, если писать слово двутавр то строчки может не хватить,
и зачем писать ведь определяющей составляющей является цыфирь госта?

Пусть кто на что горазд пусть то и пишет, лисп не учитывал бы надпись

Обычно пишут профиля с ошибкой
Двухтавр от слова Двух тавров
Швехлер от слова фахверк
Швеллер с двумя Л
Угалок от слова галочка
Плостина от слова плоский

Зачем нам нужны эти ошибки...

Чем рисовать двутавр, а потом для его распознавания рядом писать слово "Двутавр", на мой взляд проще сразу написать в наименовании "Двутавр" и далее по тексту.

VVA, язык конструктора - чертеж,

Интересно как ты будешь писать если будут 2 уголка по диаганали "Ласточкин хвост",
швеллера стенками внутрь
швеллера коробочка

Всетаки лучше нарисовать, проверено на пркатике
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.03.2008, 14:42
#224
dextron3

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


Вот пример из практики, даю самые распостраненные
Миниатюры
Нажмите на изображение для увеличения
Название: 2342.JPG
Просмотров: 130
Размер:	16.4 Кб
ID:	4524  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 14:56
#225
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
Обычно пишут профиля с ошибкой
Двухтавр от слова Двух тавров
Швехлер от слова фахверк
Швеллер с двумя Л
Угалок от слова галочка
Плостина от слова плоский
Вот как раз и поучатся.

Цитата:
Интересно как ты будешь писать если будут 2 уголка по диаганали "Ласточкин хвост",
швеллера стенками внутрь
швеллера коробочка
У кого нет аллергии на СПДС шрифт такой проблемы нету.
Red Nova вне форума  
 
Непрочитано 21.03.2008, 15:04
#226
Кулик Алексей aka kpblc
Moderator

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


Offtop: Честно говоря, всю жизнь думал, что швеллер пишется с двумя "л"...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2008, 15:20
#227
dextron3

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


Red Nova, вот реальные проблемы со шрифтом

СПДС не у всех есть, а у нас универсальный
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 155
Размер:	30.2 Кб
ID:	4529  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 15:35
#228
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Кулик Алексей aka kpblc, А ведь правильно думал, с двумя.
Red Nova вне форума  
 
Автор темы   Непрочитано 21.03.2008, 15:45
#229
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
СПДС не у всех есть, а у нас универсальный
Вот мы всем и даем нужные шрифты.

Последний раз редактировалось Red Nova, 21.03.2008 в 17:05.
Red Nova вне форума  
 
Непрочитано 21.03.2008, 16:27
#230
dextron3

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


Red Nova, да не надо мудрить, чтоб потом намже легче будет базы добавлять
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.03.2008, 16:29
#231
VVA

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


СПДС не обязательно иметь, достаточно просто шрифт забросить в папочку фонт. И всех делов. Для особо забывчивых сделали склерозник UNICOD кодов. Выложили сюда. Проблем с нашими партнерами в этом уже давно нет. Кстати этот шрифт в плане юникод кодов совместим с СПДС'овскими. Поэтому склерозник можно взять оттуда.
По поводу проблемы со шрифтом из #229, то это проблема не шрифта, а MtmdEdit Мансура Мамкина.
Цитата:
Я пробовал. И в 2007-м и в 2008-м. Вырубает Автокад при самых безобидных операциях. Жаль. В Автокаде есть операции, от которых у меня изжега, а есть такие, которые я выполняю с удовольствием. Редактирование в MtmdEdit относилось ко вторым
Цитата отсюда
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.03.2008, 16:57
#232
dextron3

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


VVA, я клоню к тому что всетаки ГОСТ 2384218937 является вашим знаком для определения сотрамента,

Код:
[Выделить все]
Цитата:Я пробовал. И в 2007-м и в 2008-м. Вырубает Автокад при самых безобидных операциях. Жаль. В Автокаде есть операции, от которых у меня изжега, а есть такие, которые я выполняю с удовольствием. Редактирование в MtmdEdit относилось ко вторым
Были по началу вылеты, приноровился тперь кайфую, ничего
проще и лучше я еще не встречал для работы с текстом
м-тексты забыл как пережиток прошлого

PS всетаки лисп SPEC мне более по душе, простой и понятный
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 17:08
#233
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
Были по началу вылеты, приноровился тперь кайфую, ничего
проще и лучше я еще не встречал для работы с текстом
м-тексты забыл как пережиток прошлого
Я не догоняю, это вы про что?
Цитата:
PS всетаки лисп SPEC мне более по душе, простой и понятный
Согласен, но так же понемаю что надо иметь и по госту вариант.
Red Nova вне форума  
 
Непрочитано 21.03.2008, 17:43
#234
VVA

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


Цитата:
VVA, я клоню к тому что всетаки ГОСТ 2384218937 является вашим знаком для определения сотрамента,
Уточняющим.
Пример
ДВУТАВРЫ ПО ГОСТ 19425-74 С УКЛОНОМ ВНУТРЕННИХ ГРАНЕЙ ПОЛОК
Марка двутавра 20С вес 27,9
ШВЕЛЛЕРЫ ПО ГОСТ 19425-74 С УКЛОНОМ ВНУТРЕННИХ ГРАНЕЙ ПОЛОК
Марка швеллера 20С вес 22,6
И какому знаку будем следовать?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.03.2008, 18:36
#235
dextron3

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


VVA, где вы такие редкие марки С нашли, еще не встречал
в природе, да и заводы такие не делают сейчас,

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


Если это единственное совпадение то можно и не делать а если много,
то скажи,...

у Василия Кондрата такого нету даже

PS VVA Могу сбросить металлургический калькулятор на емаил,
по которому работают все и сотаменты ушли в небытие....
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.03.2008, 18:39
#236
dextron3

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


Red Nova, это программка Мансура которая
непроизвольно отучает от
использования мультитекста,
посомтри в разделе download на данном сайте,

PS Она работает быстрее чем обычный текстовый
редактор автокада, проверено временем...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.03.2008, 19:00
#237
VVA

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


Цитата:
у Василия Кондрата такого нету даже
Оттуда и брал. Не ручками я же базу набивал. Но это единственные совпадание. И если дейсвительно сейчас ГОСТ или ЧТО-ТАМ-ЕЩЕ-ПРИДУМАЮТ однозначно определяет тип проката, то в принципе от поиска типа профиля в графе наименование можно уйти.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.03.2008, 19:22
#238
dextron3

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


VVA, вы не забыли про мое пожелание отдельный текст длина?

Полностью от наименования не уйти надо прописывать Б1 и Б2
чтобы в подсотамент сослаться
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 19:33
#239
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
VVA, вы не забыли про мое пожелание отдельный текст длина?
Не понемаю зачем это надо?
Red Nova вне форума  
 
Непрочитано 21.03.2008, 19:57
#240
dextron3

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


Red Nova, я сделал видеоролик формат mpeg4
он тебе объяснит почему длина отдельным текстом,
это быстрая корректировка спецификации,
а не выщелкивать сразу всю строку и потом удалять

как посомтришь отпишись...
Вложения
Тип файла: rar Untitled.rar (434.5 Кб, 147 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 21.03.2008 в 20:57.
dextron3 вне форума  
 
Непрочитано 21.03.2008, 19:59
#241
LSN


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


Спасибо большое VVA за данную программу!

Помоему алгоритм организован достаточно грамотно:
1. Программа считает как двухстрочные варианты записи в графе Наименование, так и однострочные.
2. Так же если в графе Обозначение записан номер ГОСТа то она обращается к нему, если нет, то по формулам.
3. Можно самому пополнять базу профилей.

Единственное конечно хотелось бы чтобы она перезаписывала в существующие МТексты массы, гораздо быстрее получается.

to VVA, не понял как добавить в базу Рифленые листы, там необходимо ориентироваться на массу квадратного метра, а в базе только по погонным метрам считается. Скорее всего надо добавлять код. Вид записи рифленых листов в Наименование такой, как я считаю Риф 962х4 L=2367, где 962 - ширина, 4 - толщина.
LSN вне форума  
 
Автор темы   Непрочитано 21.03.2008, 20:31
#242
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Поставил эту программу Мансура, меня не впечатлило. Мтекст куда лучше. Там ведь и символов не вставить. Хотя это конечно же off top

P.S. А ролик то забыл/
Red Nova вне форума  
 
Автор темы   Непрочитано 21.03.2008, 21:08
#243
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Испытал снова SPECKG, только что понял что надо и гост рамкой отмечать.
1.С расчетом листа так и не понял. Вот сам глянь файлик.
2.Почему текст масс то italic а то обычный? (глюки какие-то)
3.Вопрос снят
4.Так как на счет добавить вариант с оверрайт.
5.Разве предложенный мною алгоритм вычисления координаты Х для масс не более удобный?
6.Как на счет SPEC+ SPECKM?
7.Вопрос снят
8.Остальные вопросы в файле.
Вложения
Тип файла: dwg
DWG 2004
Спецификация КЖ вопросы.dwg (53.5 Кб, 1938 просмотров)

Последний раз редактировалось Red Nova, 23.03.2008 в 00:37.
Red Nova вне форума  
 
Непрочитано 21.03.2008, 21:17
#244
LSN


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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
7.Как добавляют профили в базу данных?
Открывакшь блокнотом файл prokat.ves и добавляешь новый сортамент. Синтаксис там описан, да и "примеры" есть.
LSN вне форума  
 
Непрочитано 21.03.2008, 21:25
#245
dextron3

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


как же всетаки сделать лисп универсальный....
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.03.2008, 21:49
#246
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


LSN,
Цитата:
Открывакшь блокнотом файл prokat.ves
Оказывается простым notaped открывается. Будем знать.

dextron3, Просмотрел ролик, скажу что для этих целей в нелюбимом тобой мтекст редакторе я делаю очень пригодный фокус. Есть лисп такой, его в свое время VVA откапал, так при помощи этого лиспа можно в simbols добавить свои (custom) символы, вот и можно добавить туда "L= мм" и "(м.п.)"
Хотя в общем признаю что так наверное удобнее.
Red Nova вне форума  
 
Непрочитано 22.03.2008, 11:58
#247
dextron3

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


Red Nova, я еще раз подумал и всетаки вот моя спецификация
удобноя функционабельная и без дполнительных
двухстрочных гемороев
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 177
Размер:	100.9 Кб
ID:	4543  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 22.03.2008, 19:56
#248
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, В твоем варианте мне понравилось только отделение длины в отдельные тексты. В остальном я с VVA солидарен.
Red Nova вне форума  
 
Непрочитано 23.03.2008, 23:17
#249
dextron3

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


Red Nova, а ты помнишь мою спецификацию по расчету дерева?


а то что длинна отдельно это уже традиция, это еще с EXELовских времен пошло,
(PS Раньше в 2004 автокаде все таблицы спек копирывались их Exela)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 24.03.2008, 12:44
#250
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Что то нас VVA подзабыл, ведь наши все разговоры без него безтолку. Вот ответит, тогда видно будит что да как, а пока я посплю. (Разбудите когда VVA придет).
Red Nova вне форума  
 
Непрочитано 25.03.2008, 14:42
#251
VVA

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


>LSN
Я сейчас переписываю "разбор" профилей.
Поиск типа профилей (двутавр, швеллер) будет искаться по ГОСТ, и только если не найден, то производиться "разбор" строк как делается теперь.
Про рифленые листы давай поговорим чуть позже, когда перепишу основное.

Так же будет восстановлен вариант и с заменой текстов.
Еще будет изменен подсчет веса в зависимости от округления.
Пример:
Округление до 2-х знаков после запятой
Арматура диаметром 8 А1 ГОСТ 5781-82 L=2800 Кол.- 72
Масса 1 метра, кг. -0.395
1. Как сейчас делается
Масса единицы: 0.395*2,8=1,078 (В ячейку пишем 1,08)
Масса всего:1,078*72=77,61
2. Как будет
Масса единицы: 0.395*2,8=1,078 (В ячейку пишем 1,08 и массу единицы изменяем на 1.08)
Масса всего:1,08*72=77,76
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.03.2008, 16:03
#252
dextron3

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


VVA, пожалуйста при написании кода не забудте про то что длина пишется отдельным текстом, мелочь но приятно...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 25.03.2008, 18:34
#253
LSN


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


Цитата:
Сообщение от dextron3 Посмотреть сообщение
VVA, пожалуйста при написании кода не забудте про то что длина пишется отдельным текстом, мелочь но приятно...
Но лучше всего это сделать опционально
LSN вне форума  
 
Автор темы   Непрочитано 25.03.2008, 21:23
#254
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
Так же будет восстановлен вариант и с заменой текстов.
Еще будет изменен подсчет веса в зависимости от округления.
А разве стоит? по моему теперешний вариант правильнее.
P.S. Посмотри файл с #243, там вопросы.
Red Nova вне форума  
 
Непрочитано 26.03.2008, 11:26
#255
VVA

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


Цитата:
А разве стоит? по моему теперешний вариант правильнее
Если это вопрос к
Цитата:
Так же будет восстановлен вариант и с заменой текстов
то он никуда не денется
Если это вопрос к
Цитата:
Еще будет изменен подсчет веса в зависимости от округления
то поясни. Пример я дал в #251
По поводе вопросов с #243 пока на все ответить не смогу, т.к. программу я уже "разобрал" и пока не собрал
Но на пару отвечу сразу:
Двутавр 25Б1 ГОСТ 26020-83 - нет такого в ГОСТе
Швеллер 32x20x2 ГОСТ 8278-83- нет такого швеллера Есть 32x25x3
По поводу разных марок сталей:
Какие марки используются и где они пишутся в спецификации? В твоем примере ничего этого нет
По остальным вопросам отвечу, когда соберу программу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 26.03.2008, 12:44
#256
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
Так же будет восстановлен вариант и с заменой текстов.
Еще будет изменен подсчет веса в зависимости от округления.
Сорри, тут только по второму пункту вопрос. По первому я только за.
В качестве аргумена могу привести то, что в предложенном тобой варианте мы в результате теряем точность.
Red Nova вне форума  
 
Непрочитано 26.03.2008, 15:28
#257
dextron3

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


VVA, а почему моим раположением марки стали не воспольщоваться, хотя оно вообще на вес конструкции не влияет,
можно вообще игнорировать
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 136
Размер:	50.2 Кб
ID:	4694  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 26.03.2008, 16:07
#258
VVA

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


Цитата:
В качестве аргумена могу привести то, что в предложенном тобой варианте мы в результате теряем точность
А как нормоконтролю объяснить, что 1.08*72=77,61 ? Разъяснения смотри #251
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.03.2008, 18:06
#259
dextron3

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


VVA, мы же не золото всетаки считаем...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 27.03.2008, 11:32
#260
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
А как нормоконтролю объяснить, что 1.08*72=77,61 ? Разъяснения смотри #251
А что нормаконтроль не знает что такое округление и точные формулы? Для особо привередливых можно и переменную на этот счет сделать. Хотя по моему и так и так сойдет.
Red Nova вне форума  
 
Непрочитано 27.03.2008, 21:00
#261
LSN


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


Надо округлять. Так правильнее.
LSN вне форума  
 
Автор темы   Непрочитано 27.03.2008, 22:15
#262
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


А если масса детали очень маленькая, а количество значительное, то что добовлять 30% просто так?
Red Nova вне форума  
 
Непрочитано 28.03.2008, 07:57
#263
dextron3

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


Red Nova, на универсальности надо заострить внимание
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 28.03.2008, 10:49
#264
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, По моему в этом плане все нормально.
Red Nova вне форума  
 
Непрочитано 28.03.2008, 11:15
#265
VVA

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


Можете не спорить, добавил в настройку округление массы единицы. Думаю сегодня успею выложить пробный вариант.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.03.2008, 12:47
#266
dextron3

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


VVA, вы мои пожелания учли в пробной версии...
про отдельный текст длинны, и т.п.
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.03.2008, 13:52
#267
VVA

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


про отдельный текст длинны учел, про и т.п - нет.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.03.2008, 14:34
#268
dextron3

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


VVA, и т.п.
это:
1. Замена чисел, а не прорисовка в пустых ячейках своих (удобно для проверки)
2. Легкий способ пополнения баз (т.е. открыл файл с расширением vec,
в новом обзаце указал номер госта и пошел перечень номер, вес),
это я для того потому что может не все учтено, чтобы сами пользователи
добавляли базу и дедлились результатами)
3. Поменьше выхода табличек вы выбрали не то количество столбцов
4. Выделялось все одной рамкой, а не несколькими
5. Не было разделения КМ и КЖ все в под одной гребенкой
6. Ну и как говорилось на базе лиспа SPEC, было (это самый первый
варинат) (вторые гораздо сложнее, цвета разные в результатах, текст
менялся, ну очень сложно)
7. Про (м.п.), и мм чтобы четко было разделение, без еденицы измерения обычно текст не пишется


PS. VVA снова пропал на неделю....
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 29.03.2008, 07:01
#269
LSN


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


Цитата:
Сообщение от dextron3 Посмотреть сообщение
7. Про (м.п.), и мм чтобы четко было разделение, без еденицы измерения обычно текст не пишется
Насколько помню единицы измерения пишуться только для п.м., а мм никто никогда не приписывает
LSN вне форума  
 
Непрочитано 29.03.2008, 08:46
#270
dextron3

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


LSN, в проджект студио прописывет, особенно когда арматуры касается, а так все сторонние надстройки для автокада для подсчета спецификаций используют мм, так как иногда, а скорее всего всегда,
прораб да и сметчик ошибается, потому что обычно не пишутся еденицы
измерения системы СИ, а метр является основной еденицей измерения длины
данной системы
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 30.03.2008, 12:34
#271
VVA

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


Согласен с LSN #269, но добавил, чтобы если есть мм, то считало как мм. За выходные оттестировал явные баги, 31 выложу пробную версию.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.03.2008, 18:57
#272
dextron3

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


VVA, выкладывайте лисп только не в начало темы, а в новых своих коментариях, а то потом не найти где окончательная версия...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 31.03.2008, 19:56
#273
VVA

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


Обещанный 3 вариант
Читать readme.txt, смотреть файл Спецификация Тест.dwg
Чтобы тексты в таблицах не разъезжалить, в архив добавлены shx шрифты. Достаточно скопировать их в папку Font.
PS Забыл сказать, что дополнилась каманда sumTSet. Добавилась установка на округление текста Массы_ед до умножения на количество

*** Добавлено 01.04.2008 (Не шутка)
В Spec3 - запрос изменен на запрос точки середины колонки
Добавлена обработка профилей по ГОСТ 24045-94
Мoи иконки к командам
Вложения
Тип файла: rar sumTV3.rar (329.5 Кб, 151 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 01.04.2008 в 17:58. Причина: Изменения SumT
VVA вне форума  
 
Непрочитано 31.03.2008, 20:17
#274
dextron3

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


А земной шар со скрепкой появляется, это так и должно, есть
обнулитель для этого?
Изображения
 
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 31.03.2008, 20:29
#275
VVA

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


Это гиперссылка. По ней ходить никуда не надо. Ее нужно читать. Туда записываются коментарии. Команду для управления гиперссылками я тебе уже давал: _HYPERLINKOPTIONS. Сейчас за достоверность написания не ручаюсь, нет када под рукой
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.03.2008, 20:31
#276
dextron3

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


Спасибо что и те спецификации которыми я пользуюсь учли,

У меня почемуто не считает уголки,
а гнутый профиль синим цветом считает
Б2 не видит

см. скриншот
использовал команду Spec5D
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 146
Размер:	70.2 Кб
ID:	4827  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 31.03.2008 в 20:47.
dextron3 вне форума  
 
Непрочитано 31.03.2008, 20:46
#277
dextron3

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


А вот для данной записи пластин почемуто не корректно считает,

первый лисп SPEC считал
если можно откорректировать, я понял что надо L= прописывать, буду переучиваться


PS Нет всетаки в первый лисп удобнее именно для пластин
Изображения
Тип файла: jpg Snap4.jpg (6.1 Кб, 645 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 31.03.2008 в 21:43.
dextron3 вне форума  
 
Непрочитано 31.03.2008, 22:45
#278
dextron3

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


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

PS всетаки бы узнать что сделать чтобы ссылкой цыфры не выводились...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 01.04.2008, 15:25
#279
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо.
В spec3. вычисление координаты Х для вставки масс осталось по старому алгоритму. Не лучше ли сделать указанием двух точек, координата Х которых будет браться как координата Х масс.
Red Nova вне форума  
 
Непрочитано 01.04.2008, 15:47
#280
dextron3

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


А вот кнопочку сообразил для лиспа, так сказать соеденил из двух,
в архиве специально формат БМП, для автокада, форум не позволяет открыто выкладывать...

естественно каждый свой вид команды вписывает

Буду рад замечаниям
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 126
Размер:	2.5 Кб
ID:	4877  
Вложения
Тип файла: rar sumTV3.rar (210 байт, 122 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 01.04.2008, 17:23
#281
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Переименуй архив, а-то при закачке я к примеру случайно переписал вместо архива с поста #273, название тоже, не хорошо получается.
Раз уж начал, то давай и менюшку делай, с разными иконками, на все команды.
Red Nova вне форума  
 
Непрочитано 01.04.2008, 18:00
#282
VVA

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


Обновил код в #273
1.Подумал, подумал и согласился с предложением Red Nova #279
(в Spec3 запрос изменен на запрос точки середины колонки)
2. Добавлена обработка профилей по ГОСТ 24045-94
3. Мoи варианты кнопок к командам
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.04.2008, 19:52
#283
dextron3

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


Добавил в базу весь спектр равнополочных уголков, а также дополнительные ТУ в для гнутых прямоугольных и квадратных профилей,


PS оказывается базы пополнять настолько нудная работа...

из предыдущего поста скопировать только ГОСТ 24045-94


VVA, а профлист в метрах квадратных считает (м.кв.) или как отдельные листы???
Вложения
Тип файла: rar prokat.rar (8.2 Кб, 130 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 01.04.2008 в 19:58.
dextron3 вне форума  
 
Непрочитано 01.04.2008, 20:16
#284
dextron3

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


VVA, у Вас профлист в погонных метрах,
хотя часто его считают в квадратных.
Вот для м.кв. :

Код:
[Выделить все]
;;;ПРОФИЛИ СТАЛЬНЫЕ ЛИСТОВЫЕ ГНУТЫЕ С ТРАПЕЦИЕВИДНЫМИ ГОФРАМИ ДЛЯ СТРОИТЕЛЬСТВА ГОСТ 24045-94
("ПЛИСТ" 25 "ГОСТ 24045-94;ГОСТ24045-94" "Профили стальные листовые гнутые с трапециевидными гофрами для строительства ГОСТ 24045-94" (("Н57-750-0.6" 7.5)("Н57-750-0.7" 8.7)("Н57-750-0.8" 9.8)("Н60-845-0.7" 8.8)("Н60-845-0.8" 9.9)("Н60-845-0.9" 11.1)("Н75-750-0.7" 9.8)("Н75-750-0.8" 11.2)("Н75-750-0.9" 12.5)("Н114-600-0.8" 14.0)("Н114-600-0.9" 15.6)("Н114-600-1.0" 17.2)("Н114-750-0.8" 12.5)("Н114-750-0.9" 14.0)("Н114-750-1.0" 15.4)("НС35-1000-0.6" 6.4)("НС35-1000-0.7" 7.4)("НС35-1000-0.8" 8.4)("НС44-1000-0.7" 8.3)("НС44-1000-0.8" 9.4)("С10-899-0.6" 5.7)("С10-899-0.7" 6.6)("С10-1000-0.6" 5.6)("С10-1000-0.7" 6.5)("С18-1000-0.6" 6.4)("С18-1000-0.7" 7.4)("С15-800-0.6" 6.0)("С15-800-0.7" 6.9)("С15-1000-0.6" 6.4)("С15-1000-0.7" 7.4)("С21-1000-0.6" 6.4)("С21-1000-0.7" 7.4)("С44-1000-0.7" 7.4)))
PS Хотел болты и гайки забить в сортамент, не могу сообразить как болты забить ведь у них по мимо диаметра и длинна разная
тоесть около 1000 разновидностей получается, тут формулу нужно выводить...
гайки с шайбами то понятно...
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 01.04.2008 в 20:23.
dextron3 вне форума  
 
Непрочитано 01.04.2008, 20:40
#285
VVA

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


Я предполагал, что профлист ситается по погонным метрам
Запись должна быть типа: ГОСТ 24045-94 Н75-750-0.8 L=1000
Алгоритм программы составлен так, что найденный вес в базе умножается на длину, если длина не определена, то она считается 1000 мм.
Можно изменить вес в базе на м.кв и изменить алгоритм расчета профлиста, где кол-во будет обозначать м.кв, но тогда по профнаслил будет считаться только по погонным метрам.
Короче нужно определиться с профнастилом:
или погонные метры или квадратные метры?
>dextron3
Приведи пример строки спецификации для болтов.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.04.2008, 21:25
#286
LSN


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


VVA, ты правильно считаешь. У тех листов, которые у тебя в базе (проф. листов) идет стандартная ширина. Но есть листы рифленые, с ромбическим и чечевичным рифлением, может и другие есть. Так вот у них вес в сортаменте в кв. м. ГОСТ 8568-77*.
Сам попробывал переделать твой старый код. Может и для нового пойдет, не пробывал пока:
1. LISP:
;;;======= ЛИСТЫ СТАЛЬНЫЕ С РОМБИЧЕСКИМ РИФЛЕНИЕМ ГОСТ 8568-77* (ЛИСТ или ПОЛОСА) +
((vl-position (car WHAT) '("РИФ" "РИФ.")) ;_Сталь листовая
(setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем английское X на русское Х на у первых символов до пробела
(setq L (str-str-lst L "Х"))

;;;Диаметр - большее число, толщина - меньнее
(setq L (mapcar 'atof L))
(setq Sh (apply 'max L) ;_ ширина
kF (apply 'min L) ;_ толщина
)
(setq L (find-prokat-ves "Р" (itoa (fix kF)) obz))
(if (= (length L) 1)
;;;Нашли вес по базе
(setq ves_det_1 (* (car L) Sh Dlina 0.000001)
ves_det_all (* col ves_det_1))
;;;Вес арматуры определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
(setq ves_det_1 5 ves_det_all 5 ))


)


2. Prokat
("Р" 16 "ГОСТ 8568-77" "ЛИСТЫ СТАЛЬНЫЕ С РОМБИЧЕСКИМ РИФЛЕНИЕМ ГОСТ 8568-77*" (("3" 25.1) ("4" 33.5) ("5" 41.8) ("6" 50) ("8" 66.6) ("10" 83) ("12" 99.3)))
LSN вне форума  
 
Непрочитано 01.04.2008, 21:26
#287
dextron3

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


поз. 16 у нас так обычно профлист в квадратах считается, ну как бы укрупненно, как раньше в СССР чтобы считали я не встречал.

поз. 17
- болт (самый приметивный способ обозначения, буква М это типа для резьбы, ее можно не учитывать)
поз. 18 - соотвественно гайка, (столбцов меньше)
поз. 19 - шайба (столбцов меньше)

PS то что я картинки люблю пририсовывать, перед обозначением,
на это не обращай внимания, это моя слабость


это я дал для Spec5D, которую используют у нас частенько
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 140
Размер:	21.0 Кб
ID:	4888  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.04.2008, 21:31
#288
dextron3

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


LSN, покажите как это будет в спецификации выглядеть, уже в автокаде скриншотом, не могу сообразить для чего лисп еще добавлять, если по марке можно вес найти..
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 02.04.2008, 11:47
#289
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, А можно меню добавить к кнопкам. Я бы сам сделал, но как-то пробовал сделать custom и сохранить, и нечего толкового не вышло (загружаю меню, а там пусто)?
Можно сделать две панели инструментов. Одну полную, со всеми кнопками, а другую тоже со всеми кнопками, только загнанными под flyout.
Red Nova вне форума  
 
Непрочитано 02.04.2008, 13:15
#290
VVA

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


>Я с этими куями не заморачиваюсь, делаю панели в блокноте в mns файле и через _menuload импортирую. Будет время сделаю панель.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.04.2008, 13:40
#291
dextron3

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


VVA, помнишь лисп Spec который считал пластины
обозначенные типа: 200x150x5, соответсвтенно длина отсутствовала,
можно ли его внедрить в основной лисп к команде Spec5D, чтобы
при обнаружении госта пластины считался по формулам лиспа Spec,
ГОСТ19903-74 - этот гост,

PS Объясню почему, обычно при обозначении пластины затрагиваем сразу
две переменные, длинна и ширина, в отличие от всех других элементов
сортамента, когда это в одном тексте написано легче перебить,
а так как щас я должен сначало вбить ширину, закрыть текст,
открыть другой с длинной L= и вбить длину, время тратиться уйма.
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 02.04.2008, 14:33
#292
VVA

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


Я уже это исправил. Чуть позже выложе новую версию
Думаю над чечевичным и ромбическим рифлением.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.04.2008, 15:29
#293
dextron3

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


VVA, я нашел баг в просчитывании пог. метров. в арматуре,
не могу понять что делаю не так, или что то в самом алгоритме,
тоесть когда погонные метры считает нужно в массе 1ед, вбивать
массу 1 п.м. арматуры, напрямую, а у вас две одинаковые цыфры
получаются, смотрите скриншо:

ЗЫ Команда Spec5D
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 145
Размер:	29.1 Кб
ID:	4921  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 02.04.2008, 19:18
#294
LSN


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


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

Там просто от толщины зависит. Обозначение Риф. может быть не совсем правильное, т.к. в ГОСТе два наименования таких листов.
Изображения
Тип файла: png Untitled.png (2.4 Кб, 798 просмотров)

Последний раз редактировалось LSN, 03.04.2008 в 19:18.
LSN вне форума  
 
Непрочитано 02.04.2008, 19:58
#295
dextron3

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


LSN, нажми расширенный режим управление вложениями и загрузи картинку, а не напрямую через тег
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 02.04.2008, 21:54
#296
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Если кто-то будет добавлять в базу данных профили, то прошу выкладывать и сопровождающий файл пример (добавленные строчки к файлу от VVA), Так больше шансов что про это узнают.
dextron3, Это я по поводу твоей добавки вспомнил.
VVA, Прошу полезные добавки в сортамент от других пользователей добавлять в свой файл, чтобы при следующем обновлении ничего не потерять. (И файл примера тоже прошу пополнять этими возможностями, ведь про возможные функции пользователь в первую очередь именно из файла примера узнает)
Red Nova вне форума  
 
Непрочитано 03.04.2008, 01:27
#297
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Цитата:
Я с этими куями не заморачиваюсь
Классно! И по (бело)русски!
А еще лучше не в mns а в mnu.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 03.04.2008, 09:40
#298
VVA

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


> Red Nova #296 Я так и делаю. Пока добавки dextrona не смотрел, но уголки равнополочные и не равнополочные добавил тоже. Потом сравню.
Придумал как различать ромбическое и чечевичное рифление по ГОСТ 8568-77, а заодно листы просечно-вытяжные по ТУ 36.26.11.-5.89, Дюбели-шпильки распорные строительно-монтажные ГОСТ 28457-90. Пока беру паузу на отладку кода.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.04.2008, 09:45
#299
dextron3

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


VVA, а для болтов, гаек и шайб, чтонибудь придумали?

дюбели шпильки особо не применяются если как гвозди то в кг считают, но я не раз не видел
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 03.04.2008, 19:26
#300
VVA

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


Следующая версия. Про кое-какие улучшения рассказал в redme.txt.
Распознает листы по ГОСТ 8568-77 с ромбическим или чечевичным рифлением, для ГОСТ 24045-94 распознает погонные или квадратные метры, для ГОСТ 19425-74 отличает Швеллер 20С от Двутавра 20С
Придумал как распознавать БОЛТЫ по ГОСТ 7798-70. Пару примеров внес в базу, окончательное наполнение по образу и подобию за dextron3
Вложения
Тип файла: rar sumTV4.rar (337.0 Кб, 163 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.04.2008, 19:38
#301
VVA

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


>LSN #294 В твоей записи посчитает как ромбическое рифление. Можно писать как в ГОСТе, распознает. Принцип поиска такой: если в названии есть *чечев*, то чечевичное рифление, иначе ромбическое.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.04.2008, 21:20
#302
dextron3

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


VVA, спасибо!!!
Буду завтра с утра пополнять базу, постараюсь самые ходовые, а то около 1000 разновидностей

Для гаек и шайбочек строчку, забыли добавить...(там не как у всех профилей там 4 текста, поэтому)
так сказать с примером для того чтобы самостоятельно пополнить,
а то я только со Spec5D работаю


PS Сделайте кнопочку обнулятор гипрессылок, а то как то не привычно когда текст со значками, не по себе как-то
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 03.04.2008 в 21:29.
dextron3 вне форума  
 
Непрочитано 03.04.2008, 21:38
#303
LSN


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


Спасибо большое VVA. Завтра буду тестировать.
LSN вне форума  
 
Непрочитано 03.04.2008, 22:15
#304
dextron3

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


VVA, хотел спросить, вы ничего не подумайте конечно,
можно ли с помощью данного лиспа делать выборку однотипных элементов,
и суммировать их, одновременно с просчетом спецификации, т.е.
уже не по гостам а по схожести элементов допустим всю арматуру
Ф8 с Ф8 суммирует, а уголок 63x63x6 суммирует с уголком 63x63x6,


И в итоге мы получаем такой расклад, даже можно просто
в командной строке:

***Перечень и общая масса элементов. Выборка.***


"Д" 1 "ГОСТ 26020-83;ГОСТ26020-83" "Двутавры по ГОСТ 26020-83 с параллельными гранями полок"

"12Б1" Итого: 605 кг.
"30Б1" Итого: 126 кг.



"ШВЕЛЛЕРЫ ПО ГОСТ 8240-97 С УКЛОНОМ ВНТРЕННИХ ГРАНЕЙ ПОЛОК"


"18А" Итого: 5675 кг.


"Арматура по ГОСТ 5781-82"

"8" Итого: 46456 кг.
"14" Итого: 45432 кг.
"16" Итого: 909 кг.
"25" Итого: 13445 кг.
"28" Итого: 24575 кг.
"32" Итого: 46322 кг.

***Ведомость расхода стали готова!***
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 04.04.2008, 09:29
#305
VVA

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


Цитата:
Для гаек и шайбочек строчку, забыли добавить
Над этим буду еще думать. По поводу #304 в пределах ГОСТА ничего сложного нет.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.04.2008 в 09:43.
VVA вне форума  
 
Непрочитано 04.04.2008, 10:25
#306
dextron3

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


VVA, а можно базу буду для массы 1000болтов делать, а вы в лиспе коэфициент впишите 0.001, и наче сума можно сойти?

PS В сотраменте дается для тысячи болтов, тоесть мне надо все цыфры перебить
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 04.04.2008, 12:09
#307
VVA

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


>#306 Набирай
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.04.2008, 12:27
#308
dextron3

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


VVA, нашел баг в лиспе не считает эту разновидность:
хотя в базе есть

Код:
[Выделить все]
("Д" 3 "ГОСТ 8239-89;ГОСТ8239-89&ДВУТ" "ДВУТАВРЫ ПО ГОСТ 8239-89 С УКЛОНОМ ВНУТРЕННИХ ГРАНЕЙ ПОЛОК" (("10" 9.46)("12" 11.5)("14" 13.7)("16" 15.9)("18" 18.4)("18А" 19.9)("20" 21.0)("20А" 22.7)("22" 24.0)("22А" 25.8)("24" 27.3)("24А" 29.4)("27" 31.5)("27А" 33.9)("30" 36.5)("30А" 39.2)("33" 42.2)("36" 48.6)("40" 57.0)("45" 66.5)("50" 78.5)("55" 92.6)("60" 108.0)))

см. скриншот из твоего файла Спецификация.dwg
Изображения
Тип файла: jpg Snap1.jpg (11.1 Кб, 650 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 04.04.2008, 12:33
#309
dextron3

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


VVA, Набрал, только не спрашивайте сколько это нервных клеток истратил, и как я это сделал:


Только это все для 1000 болтов, как я и обещал
Вложения
Тип файла: rar База.rar (2.5 Кб, 120 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 04.04.2008, 14:44
#310
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Можно вернуться к посту #16 данной темы? Этот лисп у меня не работает с мтекстами с измененными свойствами (курсив, жирный, другой стиль текста). Такие измененные мтексты он принимает за ноль. Подскажите пожалуйста, что же делать? И еще как сделать, чтоб он писал в ответе два знака после запятой? У меня 2008 КАД
skkkk вне форума  
 
Непрочитано 04.04.2008, 19:23
#311
VVA

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


Цитата:
Подскажите пожалуйста, что же делать? И еще как сделать, чтоб он писал в ответе два знака после запятой?
У нас сначала "Кто виноват", а уже потом "Что делать"
Вариант 1:
Скачать код с поста #300. Задать округление до 2 знаков командой SumTSet, для суммирования воспользоваться SumTE или SumTN, для округления существующих текстов воспользоваться TOKR
Вариант 2:
дополнить код из #16 функцией, убирающей форматирование mtext'a
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.04.2008, 19:37
#312
LSN


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


Вот набил в базу болты с массой единицы.
Может понадобится?
Вложения
Тип файла: rar prokatSBoltami.rar (12.4 Кб, 112 просмотров)
LSN вне форума  
 
Непрочитано 04.04.2008, 19:54
#313
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


VVA, дополнить код из #16 функцией, убирающей форматирование mtext'a ....можно поподробнее на этом моменте?? И хотелось бы лисп на №16 дополнить округлением до двух знаков - очень уж он хорош и подходит для моих действий
skkkk вне форума  
 
Непрочитано 04.04.2008, 20:09
#314
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


VVA, если я правильно понял, Вы предлагаете вариант возвращения текста к стандартным параметрам??(дополнить код из #16 функцией, убирающей форматирование mtext'a) Но ведь мне же нужно, чтоб он был курсивом, т. е. хотелось бы чтоб лисп с #16 видел любой формат....Надеюсь, Вы это имели ввиду??
skkkk вне форума  
 
Автор темы   Непрочитано 05.04.2008, 10:56
#315
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Цитата:
VVA, хотел спросить, вы ничего не подумайте конечно,
можно ли с помощью данного лиспа делать выборку однотипных элементов,
и суммировать их, одновременно с просчетом спецификации, т.е.
уже не по гостам а по схожести элементов допустим всю арматуру
Ф8 с Ф8 суммирует, а уголок 63x63x6 суммирует с уголком 63x63x6,
Читаешь мои мысли. Только я ждал чтобы с одним делом закончили, и потом начали с этим. А называется это ведомость стали.

P.S. А форум то разогнался. У меня один день не было доступа к инету, и столько новых сообщений. Трудно поспеть.
Red Nova вне форума  
 
Автор темы   Непрочитано 06.04.2008, 22:56
#316
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Кто нибудь знает по какому госту арматура А500с и Ас1?
Red Nova вне форума  
 
Непрочитано 07.04.2008, 10:38
#317
VVA

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
VVA, если я правильно понял, Вы предлагаете вариант возвращения текста к стандартным параметрам??(дополнить код из #16 функцией, убирающей форматирование mtext'a) Но ведь мне же нужно, чтоб он был курсивом, т. е. хотелось бы чтоб лисп с #16 видел любой формат....Надеюсь, Вы это имели ввиду??
Нет, я предлагаю прежде, чем перевести из текста в число, очистить его от форматирования.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 07.04.2008, 14:46
#318
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Наконец нашел время и опроборовал 4-ую версию. Работал только с Spec5d. Все вопросы выкладываю в файле.
Вложения
Тип файла: dwg
DWG 2004
Вопросы.dwg (59.3 Кб, 2279 просмотров)
Red Nova вне форума  
 
Непрочитано 07.04.2008, 16:08
#319
dextron3

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


Red Nova,

1. Что такое фланец? не могу сообразить
2. На второй вопрос используй Spec5 без D
3. Про прочерк пришлось тоже его использовать или Spec5 используй
4. Про рифленый и просечной VVA выложит специально HELP,...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 07.04.2008, 16:22
#320
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Фланец это круглый лист. В принципе по госту такого нету. По старинке привык обозначать.

Цитата:
используй Spec5 без D
Ну так нам же надо чтобы все в одном было. Не считать ведь одну спеку двумя прогами. По моему добавить эту возможность вполне реально (хотя я конечно же в программировании 0 и могу ошибаться). А пользу от этого трудно переоценить.
Red Nova вне форума  
 
Непрочитано 07.04.2008, 16:32
#321
dextron3

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
dextron3,
Фланец это круглый лист. В принципе по госту такого нету. По старинке привык обозначать.


Ну так нам же надо чтобы все в одном было. Не считать ведь одну спеку двумя прогами. По моему добавить эту возможность вполне реально (хотя я конечно же в программировании 0 и могу ошибаться). А пользу от этого трудно переоценить.
уже спрашивал сам от этого страдаю, но это ничто по сравнению с теми
радостями которые получаешь
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 07.04.2008, 16:37
#322
VVA

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


>Red Nova
1. Фланец, трубу добавил
2. Про прочерк. Он нужен обязательно, т.к. индекс в команде D (Spec5D, говорит, что в спецификации есть 5 ОСНОВНЫХ столбцов (Обозначение, Наименование, Кол-во, Масса_ед, Масса_всего) и ОТДЕЛЬНЫЙ текст Длины. Поэтому там должно что-то быть. Или для этих граф использовать Spec5. Почитай внимательнее readme.txt
3. Про рифление тоже ничего сложного нет, если в наименовании есть подстрока *чечев*, То считается чечевичное, иначе ромбовое.
Т.е. запись
ГОСТ 8568-77 Лист ромб В-К-ПУ-3.0х1000х1000
и
ГОСТ 8568-77 - В-К-ПУ-3.0х1000х1000
воспримется как лист с ромбовым рифлением (т.к. там нет построки *чечев*)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2008, 16:52
#323
dextron3

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


VVA, а про обнуление гиперссылок не забыли?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 07.04.2008, 17:14
#324
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну если только так то сойдет конечно–же. Но давай я логику объясню.
Итак должно быть обязательно 5 столбцов.
В чем тут принцип?
По какому алгоритму разделяются столбцы. Насколько я знаю в основе координаты У и Х. Если так, то можно четко понять где закончилась одна строка и началась другая. Я не против ограничения на количество столбцов. Но разве нельзя добавить исключение?
Скажем так.
Если количество столбцов не 5 а 4, то программа анализирует строку и дальше действует как указанно в следующем файле.

P.S. У меня у другие интересные предложения были, надеюсь не обойдешь их.
Вложения
Тип файла: dwg
DWG 2004
Вопросы2.dwg (50.2 Кб, 2023 просмотров)
Red Nova вне форума  
 
Непрочитано 07.04.2008, 18:25
#325
VVA

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


Дело в том, что столбец "Обозначение" может отсутствовать. Поэтому если не выбрано не 5 а 4 столбца, то программа считает, что отсутсвует столбец Обозначение и добавляет его в начало массива. Если у тебя длина пропущена, то в "Обозначение" добавляется "", твое Обозначение вдвигается в графу Наименование, Наименование в Кол-во, ну и т.п. Поэтому из-за сдвижки найти ничего не удается.
И еще одна немаловажная деталь: Основной код разрабатывается для заполнения спецификаций по ГОСТ, т.е.
Гост проката может быть в "Обозначении" или "Наименовании", длина элемента задается как L= в графе "Наименование". Команды и индексом D (Spec5D и Spec3D) - производные и поддерживаться будут ровно настолько, насколько они вписываются в основной алгоритм.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2008, 18:36
#326
VVA

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


По поводу вопроса из #324 нереализуемо.
Алгоритм построен следующим образом:
1. Из выбранныз текстов сортировкой по Y, а в пределах каждого Y по X формируются массивы текстов по столбцам "Обозначение" , "Наименование" "Количество" "Масса_ед" "Масса всего".
2.Если выбрано меньше меньше столбцов, чем заказывали (например в Spec5D вместо 6 - 5) то считается, что столбец "Обозначение" имеет значение пусто, но его значение "" добавляется в начало списка элементов строки.
3. Массив длин формируется из графы "Наименование" если это не Spec5D или Spec3D. В этом случае берется из 3 элемента строки.
4. Уже потом стобцы передаются на анализ, где по столбцу "Наименавание" осуществляется поиск типа проката. (т.е. распознается лист, двутавр и т.п.)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2008, 18:46
#327
VVA

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


Следующий вариант.
Добавлена команда HYPD (удаление гиперссылок), хотя не понимаю, чем не устраивает команда _HYPERLINKOPTIONS.
Добавлены болты, которые подготовил Dextron3.
Добавлена сортировка по ГОСТ'у и марке проката с подсчетом массы. Вывод осуществляется в командную строку.
Вложения
Тип файла: rar sumTV5.rar (340.5 Кб, 128 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2008, 19:05
#328
dextron3

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


А в каком виде должна быть запись болта для Spec5D, а то что то не считает...

мне бы из 5 строк + длина


скриншот это мое обозначение
Изображения
Тип файла: jpg Snap1.jpg (5.7 Кб, 631 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 07.04.2008 в 19:21.
dextron3 вне форума  
 
Непрочитано 07.04.2008, 19:58
#329
VVA

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


Там длина болта используется для поиска массы. Писать нужно так ка в ГОСТе
Болт М6-6g Х 8.58
Маска для поиска в базе - "М6*[ Х]8."
* - любой символ
[ Х] - или пробел или Х
Т.е можно и так
Болт М6 Х 8.
Болт М6Х8.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.04.2008, 20:05
#330
dextron3

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


Болт М6 Х 8 для этого выдает прочерки я понял наверно потому что масса при округленни до 2х чисел равна 0

PS Почему этот пяти текстовый алгоритм не применить для нахождения массы пластины, без дополнительного прочерка
или еденицы в непечатаемомо слое?
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 07.04.2008 в 20:10.
dextron3 вне форума  
 
Непрочитано 07.04.2008, 20:13
#331
dextron3

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


Почему для шайбочек такой сложный алгоритм хотя толщина, зависит от диаметра отверстия и постоянна для каждого
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 139
Размер:	23.6 Кб
ID:	5128  Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 131
Размер:	23.8 Кб
ID:	5129  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 07.04.2008, 23:22
#332
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


>VVA.

A) Ты уж прости, но я понастырничаю.
По #326.
Сейчас по графам "Обозначение" , "Наименование", "Длина", "Количество", "Масса_ед", "Масса всего" cортировка идет только в зависимости от количества столбцов.
А если сделать сортировку умнее.
Столбец "Обозначение" должен определятся не по принципу количества строк. А по первым буквам содержания. Я пока насчитал только три вида нидписей для этой графы. Они начинаются с "ГОСТ", "ТУ" или "СТО" (можно и добавить.
Дальше легче.
Отделяем "Обозначение" (если оно есть) и рассматриваем остальные строки. Если дальше есть 5 строк, то все по старинке. Если дальше только четыре строки, то возможно два пути.
1. Когда отсутствует строка "Количество"
2. Когда отсутствует строка "Длина"
Остается различить эти строки. Это можно сделать так.
Если во второй графе есть "ΣL", "Lобщ" , "пн", или "мп" (по моему я перечислил все варианты обозначения погонных метров, если нет, то вы добавте), то это первый вариант. Если нет, то это второй вариант.
Помоему все реально. Только нужно поколдовать немного с лиспом.

B) Теперь об одном пункте, который ты не учел ранее. Цитирую из файла выложенного ранее.

По госту разрешено писать ГОСТ только один раз, а дальше для похожих элементов его можно и не писать. Можно ли бобавить возможность, чтобы при отсутствии Госта для конкретного элемента, программа искала похожие элементы, и найдя элемент с гостом, брала его? Если найдутся похожие элементы с разным гостом, то в ход идет поочередность. Так написав один гост, все элементы идущие ниже приравниваются к нему, до тих пор как в спецификацие (в N-ной строке ниже) находится другой гост, строкам идущем после N-ной строки дается он.

С) Скоро буду просить адаптировать SPEC5D к Армянскому (надо приравнять некоторые слова из русского к армянским кодам). Как на это смотришь? Возможно ли в лиспе в отдельном месте (чтобы не разыскивать слова по всему файлу) задать таблица перевола нужных терминов?


>dextron3, это что за скрин такой? В смысле что за прогамма.
Red Nova вне форума  
 
Непрочитано 08.04.2008, 00:02
#333
dextron3

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


Red Nova, а что армянские ГОСТЫ и обозначения не как в бывшем
СССР, или Двутавр по армянски не Двутавр?
у нас как есть по казахски тоже самое

это калькулятор металлиста
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.04.2008, 11:03
#334
VVA

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


>Red Nova
A. Ты не учел РСТ, СТБ, не_знаю_что_на_Украине, серии предприятий (мы, например, такие используем)
В длиннах есть Lср и т.п.
B. по ГОСТ нужно писать обозначение каждый раз, но для одинаковых можно не писать. Это было сделано для более быстрого ручного заполнения. Т.к. делаешь все на компьютере,то не пиши, а копируй. Алгоритм и так усложнился до такой степени, что вскоре я сам перестану понимать что и где делается.
С. В принципе можно. Что нужно переводить - "Двутавр" по русски на "двутавр" по армянски? Т.е. в смысле слова по русски на аналогичные по армянски?
> dextron3
Вот [FONT=Arial]ГОСТ 11371-78. Там масса шайб зависит от диаметра резьбы, типа исполнения (1 или 2) и класса точности (C или A)[/FONT]
Вложения
Тип файла: doc ГОСТ 11371-78.doc (70.0 Кб, 158 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.04.2008, 11:38
#335
dextron3

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


Учтем, просто я по калькулятору считал, он не спрашивал,
но мне более важнее ГАЙКИ скажите, форму чтобы я пока
базу забивал...

PS Болт М6-6g Х 8.58, что означает 6g не согу понять, но кажется что 6 граней, но ведь 5гранных не бывает же
PS VVA, спасибо за выборку, теперь в автокаде с удовольствием работаю
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 08.04.2008 в 11:46.
dextron3 вне форума  
 
Автор темы   Непрочитано 08.04.2008, 11:49
#336
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
А Ну я не против указанных добавок. Как я понимаю мое предложение в общем одобрено?

B Сдаюсь и не буду настаивать. В конечном итоге и в правду скопировать не трудно.

С. Ты правильно понял. Надо перевести слова типа ГОСТ, Уголок, и.т.п

dextron3,
Цитата:
Red Nova, а что армянские ГОСТЫ и обозначения не как в бывшем
СССР, или Двутавр по армянски не Двутавр?
А что в казахском вы так и пишите казахскими буквами "Двутавр"?
В основном конечно термины схожи. К примеру "Двутавр" по армянски звучит "Ерктавр", но в любом случае кодировка разная (буквы то армянские).

Цитата:
это калькулятор металлиста
А ссылка есть? Больно интересно стало.

Цитата:
VVA, спасибо за выборку, теперь в автокаде с удовольствием работаю
О какой выборке речь?
Red Nova вне форума  
 
Непрочитано 08.04.2008, 13:06
#337
VVA

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


>Dextron3
Цитата:
Пример условного обозначения болта исполнения 1 с
диаметром резьбы d=12 мм, с размером «под ключ» S=18 мм, длиной
l=60 мм, с крупным шагом резьбы с полем допуска 6g, класса
прочности 5.8, без покрытия:
Болт М12 - 6g×60.58 (S18) ГОСТ 7798-70
То же, исполнения 2, с размером «под ключ» S=19 мм, с мелким шагом резьбы с полем допуска 6g, класса прочности 10.9, из стали марки 40Х, с покрытием 01
толщиной 6 мкм:
Болт 2М12×1,25 - 6g×60.109.40Х.016 ГОСТ 7798-70
>Red Nova
A. Буду думать
С. Это лучше сделать отдельной командой
Цитата:
О какой выборке речь?
Почитай внимательнее #327
Цитата:
Добавлена сортировка по ГОСТ'у и марке проката с подсчетом массы. Вывод осуществляется в командную строку.
Нажми F2 и посмотри в командную строчку
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 08.04.2008, 15:10
#338
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
A. Буду думать
Это хорошо.
Цитата:
С. Это лучше сделать отдельной командой
А это не очень хорошо. Дело вот в чем. Ведь наш лисп постоянно изменяется. Очень нежелательно, чтобы каждый раз приходилось приспосабливать его к армянскому. Если бы можно было отдельно задать слова для перевода, было бы куда удобнее.

Цитата:
Нажми F2 и посмотри в командную строчку
Ах вот оно что. Интересно сделал, очень и очень полезно. Только в конечном итоге это дело должно быть не чертеже, в ведомости расхода стали. Я планировал на этот счет позже начать разговор и куда глубже, но раз уже начали, то и я буду готовить ТЗ на этот счет. (Надеюсь ты не против)
Red Nova вне форума  
 
Непрочитано 08.04.2008, 15:57
#339
dextron3

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


VVA, мне только шайбы и гайки осталось, остальное все устравивает, и можно к деревяшкам переходить...
Вложения
Тип файла: dwg
DWG 2004
ТЗ для дерева.dwg (269.7 Кб, 2055 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.04.2008, 18:05
#340
VVA

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


Версия 6
Добавлены Болты, Гайки, Шайбы
Новая команда SpecW (Spec Wood) - спецификация деревянных изделий
Пример в файле Спецификация.dwg
Настройки по SumTSet
Вложения
Тип файла: rar sumTV6.rar (350.4 Кб, 129 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.04.2008, 19:18
#341
dextron3

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


вот картинка для кнопочки команды SpecW,

PS VVA, спасибо!!!!
Вложения
Тип файла: rar SpecW.rar (214 байт, 113 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 08.04.2008, 19:38
#342
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


>VVA.
Я так понемаю, что изменения связанные с прочерком ожидаются где-то в седьмой версие?
На счет файла примера. Пока вижу в нем полную информацию только для SPEC5. Скажу чесно, пока и сам не знаю про все функции SPEC5D, (где-то невнемательность, где-то не очень понял), а если я не очень понимаю, то представь что поймет человек к которому лисп поподет не из этого форума. По этому прошу в примере дать все возможные варианты, которые учитываются в лиспе. (Хотябы для SPEC5D).
Red Nova вне форума  
 
Непрочитано 08.04.2008, 19:48
#343
dextron3

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


Red Nova, вот про болты гайки шайбы,
взял из Spec5, аналогично...
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 140
Размер:	37.2 Кб
ID:	5187  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.04.2008, 19:51
#344
LSN


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


VVA, а нельзя ли сделать, чтобы в выборке для пластин (листов) считалась общая масса пластин одной толщины.
например:
Лист 8 - 167,77 кг
Лист 10 - 170,59 кг
Лист 20 - 5555555 кг
и т.п.
мне кажется так правильнее
или это просто ошибка?
Миниатюры
Нажмите на изображение для увеличения
Название: Untitled.png
Просмотров: 130
Размер:	21.5 Кб
ID:	5188  
LSN вне форума  
 
Непрочитано 08.04.2008, 19:55
#345
dextron3

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


VVA, я тоже не могу сообразить как будет выглядеть пример записи в из скриншота для Spec5D, а не могу выделить длинну, и как ее обозначать?


PS А то приходится использовать Spec5, хотя он для меня не приемлем,
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 119
Размер:	37.7 Кб
ID:	5189  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.04.2008, 19:57
#346
dextron3

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


LSN, спасибо что заметил, действительно нужно, остальное считает правильно
Миниатюры
Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 124
Размер:	8.4 Кб
ID:	5190  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 08.04.2008 в 20:03.
dextron3 вне форума  
 
Непрочитано 09.04.2008, 09:41
#347
VVA

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


По порядку
>LSN #344 Да, наверное так правильнее. Постараюсь сделать
>dextron #343 Гайки, шайбы писать не обязательно. Первоначально тип проката определяется по ГОСТ. Пришли мне свои изображения проката (двутавры, швеллеры, болты и т.д.), сделаю пример для Spec5D. Самому лень рисовать.
>По поводу #345, #342 и пропадающих длин и количеств. Пока еще кое-сто наклевывается, необходимы кое-какие уточнения:
Для графы длин: там не могут быть только одни цифры. Т.е если текст из графы длин, то там либо L=123, либо Lср=123, либо Еще_что_нибудь=123, либо м.п., но не просто 123.
Т.е. правило таково
Если текст длины есть, то там обязательно должны быть не числовые символы
Если текст количества есть, то там должны быть только числовые символы (запятая и точка в расчет не принимаются)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.04.2008, 11:18
#348
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
1.
Цитата:
Если текст длины есть, то там обязательно должны быть не числовые символы
Если текст количества есть, то там должны быть только числовые символы (запятая и точка в расчет не принимаются)
Согласен.
2.А как на счет перевода терминов на другой язык. Идеи есть? Очень на это надеюсь.
3.Как на счет более подробного файла примера?
Red Nova вне форума  
 
Непрочитано 09.04.2008, 11:59
#349
dextron3

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


VVA, вот...
просто и со вкусом и не надо заморачиваться про головки, грани,
резьбы...

Два обозначения встретил впервые,

хотел еще сетку "рабицца" включить, тоже чтобы по площади считало,
хотябы одной марки если есть желание могу поискать...


PS Руки чешуться проект поделать, а проектов то никто не дает
Вложения
Тип файла: dwg
DWG 2004
ТЗ для Spec5D.dwg (258.6 Кб, 1922 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 09.04.2008, 12:36
#350
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3,
Поделись пожалуйста гостом на сетку "рабицца". Очень надо.

P.S. А у меня вот есть проект, но он на армянском, пока не трогаю спеку. Жду и надеюсь.

Последний раз редактировалось Red Nova, 09.04.2008 в 12:50.
Red Nova вне форума  
 
Непрочитано 09.04.2008, 14:20
#351
VVA

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


Говоря про отдельную команду перевода я имел ввиду следующее. Та работаешь на русском, а потом за один раз переводишь на нужный тебе язык.
Если лезть в SpecXX, то действительно возникнут проблемы с новыми версиями, нужно будет переводить базу и т.п.
Команда-то получается небольшая и ни от чего не зависящая.
Вот как пример. Перевожу на траслит. Вместо траслита подставь свои слова. Чувствительна к регисту, т.е. ГОСТ и ГОСт - два разных слова, оба нужно указать в таблице перевода.
Код:
[Выделить все]
(defun transAR ( Kuda / nab lst table str from to)
;; Kuda - t русский - латинский
;; Kuda - nil латинский - русский
;;Таблица соответсвия
;;Соответсвия буквальное !!!!
;; Русская подстрока - латинская (а в твоем случае - армянская
   (setq table '(
               ("Двутавр" "Dvutabr")
               ("Швеллер" "Shveller")
               ("Дюбель-шпилька" "Dubel")
               ("Уголок" "Ugolok")
               ("Труба" "TRUBA")
               ("Болт" "BOLT")
               ("ГОСТ" "Gost")
               ("ГОСт" "Gost")
               )
       )
(if (setq nab (ssget "_:L" '((0 . "*TEXT"))))
  (foreach item (_dwgru-conv-pickset-to-list nab)
    (setq item (_dwgru-conv-ent-to-vla item))
    (setq str (vla-get-TextString item))
    (foreach rul table
      (if Kuda (setq from (car rul) to (cadr rul))
               (setq from (cadr rul) to (car rul))
        )
      (setq str (dwgru-string-replace str from to)))
    (vla-put-TextString item str)
    )
  )
  (princ)
  )
(defun C:EREVAN ()(transAR t))
(defun C:MOSKOW ()(transAR nil))
Можешь попробовать на файле Спецификация.dwg в архиве sumTv6
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 09.04.2008 в 14:26.
VVA вне форума  
 
Непрочитано 09.04.2008, 14:27
#352
VVA

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


Цитата:
P.S. А у меня вот есть проект, но он на армянском, пока не трогаю спеку
Изменил код #351 сделал двунаправленным
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.04.2008, 15:09
#353
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Двунаправленный по моему очень пригодится. Спасибо. В принципе при помощи этого лиспа довольно не плохо работать с армянским. Но конечно же если бы получилось как я предполагал, то было бы просто супер. Это не реалезуемо?
Red Nova вне форума  
 
Автор темы   Непрочитано 09.04.2008, 15:26
#354
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Я обнаружил что во время перевода знаки диаметр, уголок, ... переводятся как вопросы. Можно ли сделать так, чтобы если не найдено перевода, то все бы оставалось на как в русском?
Red Nova вне форума  
 
Непрочитано 09.04.2008, 15:54
#355
VVA

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


Программа не трогает знаки диаметра или уголкаЮ она тупо ищет слово слева и заменяет словом справа или наоборот. Я тестировал для ракладки русский-латиница и знаки диаметра оставались на месте. Может дело в шрифтах, кодовой странице или еще в чем либо?
По поводу перевода я уже сказал, что это реализуемо, по нужно:
1. Переводить код и базу, что ограничивает быстроту появления новых версий
2. Транслировать на момент рассчета с армянского на русский вначале и обратно в конце.
Код для варианта 2 я выложил в #351. Не проблема вставить в Spec5D трансляцию, но нужно решить проблемы #354
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.04.2008, 16:06
#356
dextron3

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


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

Выделение рамкой в силе


База вида:

арматура;armature
двутавр;dvutavr
ГИП;GIP

и т.п.


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

Вот про сетку "рабица":

НАЗНАЧЕНИЕ:
Сетка рабица применяется для ограждений, теплоизоляционных работ, крепления горных выработок на шахтах и рудниках, просеивания.
МАТЕРИАЛ ДЛЯ РАБИЦЫ:
низкоуглеродистая сталь Ст1кп, Ст2кп. Без покрытия или оцинкованная.

Поверхностная плотность цинка, в зависимости от диаметра проволоки, 50-80 г/м2.

Сетка рабица поставляется в рулонах массой до 80 кг, торцы рулона обернуты бумагой или упаковочной тканью, или тарным холстопрошивным полотном, или клееным полотном.
Значения, указанные в скобках, распространяются на сетки с квадратной ячейкой.
Р - ромбическая ячейка; Р или К - ромбическая или квадратная; К - квадратная.
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 120
Размер:	9.8 Кб
ID:	5207  Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 141
Размер:	33.0 Кб
ID:	5208  
Вложения
Тип файла: doc МАТЕРИАЛ ДЛЯ РАБИЦЫ.doc (48.0 Кб, 137 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 09.04.2008 в 16:14.
dextron3 вне форума  
 
Автор темы   Непрочитано 09.04.2008, 16:08
#357
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Не проблема вставить в Spec5D трансляцию
Так это же именно то что надо.
А проблема вот смотри. Шрифт SPDS, я все пока оставил в лиспе как было. Не добавлял армянского.
Вложения
Тип файла: dwg
DWG 2004
Баг.dwg (42.0 Кб, 1904 просмотров)
Red Nova вне форума  
 
Непрочитано 09.04.2008, 16:43
#358
dextron3

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


Вот ТЗ для рабицы, пригодится по любому, на этом использующиеся мной
элементы в сортаменте заканчиваются, буду ждать, конечный вариант,
если что то забыл, просьба напомнить, сегодня был в институте, сказали
что дюбеля, саморезы, гвозди в спеках особо не пишут, так как сметная программа автоматически их считает...
Вложения
Тип файла: dwg
DWG 2004
ТЗ для Spec5D для сетки рабица.dwg (259.8 Кб, 1920 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 10.04.2008, 00:27
#359
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Вот очередное ТЗ. На этот раз для ведомости расхода стали.
Вложения
Тип файла: rar ТЗ для ведомости расхода стали.rar (92.4 Кб, 130 просмотров)
Red Nova вне форума  
 
Непрочитано 10.04.2008, 08:22
#360
dextron3

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


Red Nova, если честно я сам не понял, как должен алгоритм, срабатывать, может полегче предложить:

Представь себе что есть команда Vedom она отдельная:
а также к ней идет спека (со всеми элементами которые считает лисп), но только в ней нет 2х столбцов
количество и масса еденицы, а только есть столбец ИТОГО,

Сначало лиспом выделяем нашу обычную спецификацию,
просчитываем, потом этой командой Vedom, выделяем вспомогательную
такблицу, где в Итого указана общая масса, ( к примеру подсветить красным, а где нули оставить как есть чтобы не запутаться),
и потом просто переносим в твою заготовку цыфры, а для подсчета
общей массы ведомости используем лисп Summ,

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

PS Это только мое предложение, если дальше развиваться лисп будет,
а то что выдает лисп на данный момент в командной строке меня устравиает
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 10.04.2008, 12:43
#361
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Подождем пока комменария от VVA.
По поводу #356. Спасибо, что выложил.
В файле word, там в последнем столбе это что, длина рулона? (1000,1500...)?
У тебя есть ссылка на калькулятор, которую я просил ранее?
Red Nova вне форума  
 
Непрочитано 12.04.2008, 17:54
#362
dextron3

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


Вот разобрался вид записи листов для чечевичного и ромбического рифления, для Spec5D

см. скриншот

PS я тут подумал может и рабицу таким же образом забить,
вот сижу жду от VVA указаний...
Изображения
Тип файла: jpg Snap1.jpg (14.9 Кб, 721 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.04.2008, 20:33
#363
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Вот цитата из ГОСТА

Цитата:
Лист горячекатаный из стали марки ВСт3сп по ГОСТ 380—71 с односторонним ромбическим рифлением размером 3,0х1000х Х2000 мм, улучшенной плоскостности с катаной кромкой:

Лист ромб К-ПУ-3,0х1000х2000 БСтЗсп ГОСТ 8508—77

То же, с чечевичным односторонним рифлением:

Лист чечевица К-ПУ-3,0х1000х2000 БСтЗсп ГОСТ 8568—77

Рулонная горячекатаная сталь марки БСтЗсп по ГОСТ 380—71 с односторонним ромбическим рифлением размером 3,0х1000 мм, с катаной кроткой:

Рулон ромб К—3,0Х1000 БСтЗсп ГОСТ 8568—77

То же, с чечевичным односторонним рифлением:

Рулон чечевица К—3,0х1000 БСтЗсп ГОСТ 8568—77.
Вложения
Тип файла: rar gost_8568_77.rar (8.0 Кб, 154 просмотров)
Red Nova вне форума  
 
Непрочитано 12.04.2008, 20:41
#364
dextron3

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


Вот сетка рабица для базы но почемуто лисп не считает,

;;; =============== Сетка "Рабица" ГОСТ 5336-80 ====================

("Ромб." 40 "ГОСТ 5336-80;ГОСТ 5336-80&Ромб." "Сетка Рабица ГОСТ 5336-80" (("5х5%%c1.4" 4.52) ("6х6%%c1.4" 3.73) ("8х8%%c1.4" 2.78) ("8х8%%c1.6" 3.8) ("8х8%%c1.8" 3.8) ("10х10%%c1.4" 2.2) ("10х10%%c1.6" 3.0) ("10х10%%c1.8" 3.0) ("12х12%%c1.6" 2.48) ("12х12%%c1.8" 3.24) ("15х15%%c1.8" 2.57) ("15х15%%c2" 3.25)))

("Квадр." 41 "ГОСТ 5336-80;ГОСТ 5336-80&Квадр." "Сетка Рабица ГОСТ 5336-80" (("15х15%%c2.5" 3.6) ("25х25%%c2.5" 2.15) ("25х25%%c3" 3.36) ("35х35%%c2.5" 1.56) ("35х35%%c3" 2.44) ("45х45%%c3" 1.87) ("45х45%%c4" 2.7) ("50х50%%c4" 2.42) ("60х60%%c4" 2.0) ("80х80%%c5" 2.76) ("100х100%%c6" 3.4)))
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 12.04.2008 в 20:53.
dextron3 вне форума  
 
Непрочитано 13.04.2008, 22:36
#365
dextron3

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


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

спасибо
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 14.04.2008, 11:50
#366
VVA

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


Цитата:
Вот разобрался вид записи листов для чечевичного и ромбического рифления, для Spec5D
Для всех команд SPECXX выполняется один и тот же код. Разница только в формировании для этого кода массивов Обозначение, Наименований, Длин, Количеств и т.д. Поэтому примеры для команды Spec5 справедливы для всех команд. В файле Спецификация.dwg пример записи приведен.
Добавлен ГОСТ на сетку рабицу. Пример записи приведен в файле, см. также сам ГОСТ СЕТКИ СТАЛЬНЫЕ ПЛЕТЕНЫЕ ОДИНАРНЫЕ (ГОСТ 5336-80)
По поводу обнуления гиперссылок набери в командной строке _all или сделай кнопку ^C^CHYPD;_all;
Позже отключения гиперссылок добавлю в настройку.
Добавлена сортировка по классам арматуры. Классы арматуры описываются в базе (prokat.ves) здесь
Цитата:
("КЛАССАРМАТУРЫ" 37 "NOPATTERN" "Классы арматуры" ("А240" "А300" "АС300" "А400" "А600" "А800" "А1000" "А-III" "АIII" "А-II" "АII" "А-IV" "А-I" "АI" "Вр-I" "S240" "S400" "S500" "S800"))
Прокат сотритуется по ГОСТУ проката (не стали). Листы объединяются по их толщине.
*** Обновление от 15.04.2008
Изменения в коде, касающиеся выборки болтов, анализ выбранных столбцов в Spec5D, изменения в базе записи классов арматуры
Вложения
Тип файла: rar sumTV7.rar (370.4 Кб, 161 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 15.04.2008 в 18:41.
VVA вне форума  
 
Непрочитано 14.04.2008, 14:25
#367
dextron3

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


VVA, а для Spec5D как выглядить обозначение болта гайки и шайбы?

большое спасибо
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 14.04.2008 в 14:39.
dextron3 вне форума  
 
Непрочитано 14.04.2008, 16:48
#368
VVA

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


Цитата:
Поэтому примеры для команды Spec5 справедливы для всех команд. В файле Спецификация.dwg пример записи приведен.
Открой Спецификация.dwg и посмотри запись для SPEC5
Забыл совсем сказать, для Spec5D добавил обработку пропущенных количества, длины, но только чего-то одного. Пример в файле Спецификация.dwg для Spec5D
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 14.04.2008, 17:36
#369
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ура! VVA вернулся.
Прокомментируй пожалуйста #357 и #359.
Red Nova вне форума  
 
Непрочитано 14.04.2008, 18:35
#370
VVA

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


> Red Nova
по поводу #357 у меня таких багов нет, хотел анимированный gif сделать, но пока времени нет
по поводу #359 посмотри то, что уже есть. Выполни Spec5D для любой из таблицы своего ТЗ, нажми F2 и посмотри что есть. Учти только, что классов арматуры AI и AIII в базе нет, в базе они описаны как A-I и A-III
Нужно или поменять в спецификации или добавить описание в базу
Короче выполни Spec5D с учетом #366 #368. Вот мой листинг
Цитата:
============= ИТОГ РАБОТЫ ==============
Класс : Прокат
СТО АСЧМ 20-93
Двутавр 20К2 - 83.82 кг.
-------------------------------------------------
ГОСТ 10704-91
Труба круглая 60х4 - 48.76 кг.
Труба круглая 50х2 - 9.48 кг.
-------------------------------------------------
ГОСТ 8509-93
Уголок 75Х75Х6 - 66.0 кг.
Уголок 50Х50Х5 - 113.12 кг.
-------------------------------------------------
ГОСТ 19903-74
Лист 8 - 75.34 кг.
Лист 10 - 106.78 кг.
-------------------------------------------------
Класс : Арматура АI
ГОСТ 5781-82
Арматура 10 - 17.3 кг.
Арматура 6 - 10.55 кг.
Арматура 12 - 52.44 кг.
Арматура 8 - 0.89 кг.
Арматура 16 - 64.78 кг.
Арматура 20 - 67.2 кг.
-------------------------------------------------
Класс : Арматура ВР-I
ГОСТ 5781-82
Арматура 10 - 1.55 кг.
Арматура 8 - 11.4 кг.
Арматура 6 - 2.96 кг.
-------------------------------------------------
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.04.2008, 19:29
#371
dextron3

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


VVA, все равно с болтами не получается, может что то делаю не так?

Red Nova, а как ты записываешь болты для Spec5D?
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 126
Размер:	31.5 Кб
ID:	5403  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 14.04.2008, 19:45
#372
dextron3

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


VVA, почему А-III не считает? приписывает к А-I
Миниатюры
Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 146
Размер:	10.7 Кб
ID:	5405  
Вложения
Тип файла: dwg
DWG 2004
Пример.dwg (257.1 Кб, 2097 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 14.04.2008, 20:43
#373
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, А я пока болты не считал
Red Nova вне форума  
 
Автор темы   Непрочитано 14.04.2008, 22:35
#374
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
1. По поводу Erevan-Moscow (к стати по английский Yerevan).
Про баг на рабочем компе я уже говорил.
Пробую дома, вообще не работает.

Цитата:
Command:
Command: erevan

Select objects: Specify opposite corner: 2 found

Select objects:
; error: no function definition: VLAX-ENAME->VLA-OBJECT

Command:
Вот.
А текст простой. И лисп без изменений, как ты выложил.

2. По поводу V7
Возникли некоторые вопросы. Поскольку примера нету, я сам попытался из примера для SPEC5D, переделать в SPEC5. Получилось вот что. (На чертеже А, В)

3. Спасибо за добавленную возможность избежать текста с прочерком.
Единственный вопрос тут в том, что для этого варианта обязателен ГОСТ, хотя для обычного варианта считает и так. Можно ли это добавить и без ГОСТА вариант?

4. По поводу ведомости расхода стали.
Конечно же это очень хорошая функция, когда в командной строке виден вес, но это в конечном итоге должно быть на чертеже. Предложенный мною вариант конечно же сложный, но если бы что-то подобное работало, то польза неоценимая. Если я чересчур усложнил задачу, то может подумаем про корректировку?
Вложения
Тип файла: rar Questions.rar (39.1 Кб, 118 просмотров)

Последний раз редактировалось Red Nova, 14.04.2008 в 22:56.
Red Nova вне форума  
 
Автор темы   Непрочитано 14.04.2008, 22:55
#375
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Off Top.
У тебя в размерном стиле текст имеет маску.
Поделись пожалста где надо настройку дернуть.
Red Nova вне форума  
 
Непрочитано 15.04.2008, 11:43
#376
Рин

Проектируем
 
Регистрация: 03.04.2008
Sever Kavkaza
Сообщений: 122


У меня почемуто требует установки Express Tolls
Рин вне форума  
 
Непрочитано 15.04.2008, 15:49
#377
dextron3

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


я кажется понял в чем ошибка, в лиспе

тоесть когда A-III, лисп доходит до A-I и дальше не проверят, так как сразу перессылка идет,
соответсвенно и с A-II такая же ситуация

(но это только мои догадки, но все остальные марки определяет)

проблему решил поменяв базе строчку на эту

Код:
[Выделить все]
("КЛАССАРМАТУРЫ" 37 "NOPATTERN" "Классы арматуры" ("А240" "А300" "АС300" "А400" "А600" "А-III" "А-II" "А-IV" "А800" "А1000" "А-I" "Вр-I" "S240" "S400" "S500" "S800"))
обратите внимание на расположение классов А-III, А-II, А-I теперь они в обратном порядке,....


PS Жду обозначения болтов для Spec5D
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 15.04.2008 в 16:07.
dextron3 вне форума  
 
Непрочитано 15.04.2008, 16:54
#378
VVA

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


>Red Nova #374
1. Добавь в начало (vl-load-com)
2. Пока не смотрел
3. Думаю как сделать
4. Если то, что выводит в командную строчку правильно, то вывести в таблицу это дело техники.

>Рин Да, установи сейчас, не пожалеешь в будущем. Там используются некоторые функции Express Tools
>dextron #377 Молодца, проблема именно в этом. В программе идет поиск на вхождение подстроки в строку, естественно A-I как часть входит в A-III. Решается так, как ты и сделал. Вообще у нас (в Белоруссии) уже перешли на классы A240, A400,S240,S400
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2008, 17:00
#379
dextron3

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


VVA, пока вы не ушли дайте мне правильное согласно
правилам обозначения для Spec5D: болтов, гаек и шайб,
с длинной L=? для болтов.

PS Вы получили в личку задачку по сортировке?

PS2
тоесть:
A240----A-I
A400----A-II
S240----A-III
S400----A-IV

Объясните для чего был сдлеан переход,
и какую функциаональность он несет,...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 15.04.2008, 17:19
#380
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
1. Добавил (vl-load-com), лисп заработал, но на домашнем компьютере тоже спец символы СПДС переводятся как вопросы
2. --------
3. --------
4. Я особо не проверял, (тут больше dextron3 в курсе) но вроде как все делом, если вывести это в таблицу и в правду дело техники, то жду с нетерпением.

Прокомментируй пожалуйста #375.
Red Nova вне форума  
 
Непрочитано 15.04.2008, 17:47
#381
VVA

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


Это что-ли?
Про перевод пришли на почту мне свой файлик с СПДС спецсимволами
Миниатюры
Нажмите на изображение для увеличения
Название: DimMask.jpg
Просмотров: 163
Размер:	52.8 Кб
ID:	5441  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.04.2008, 18:42
#382
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Про размеры спасибо.
Файл высылаю.
Red Nova вне форума  
 
Непрочитано 15.04.2008, 18:48
#383
VVA

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


Кстати в мтекстах тоже такая фишка есть. Называется "Скрытие заднего плана"
Обновил sumtV7 в #366 посте.
  • вроде бы учел возможность отсутсвия более 1 столбца в Spec5D
  • исправил ошибку в выборке болтов, гаек и шайб
  • пример для болтов, гаек и шайб для Spec5D привел в файле Спецификация.dwg
  • изменена база для классов арматуры
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.04.2008, 18:52
#384
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


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

Про маску мтекста я знал и давно использовал, а про размеры не знал.
Вложения
Тип файла: dwg
DWG 2004
Drawing1.dwg (40.8 Кб, 2189 просмотров)

Последний раз редактировалось Red Nova, 15.04.2008 в 19:02.
Red Nova вне форума  
 
Автор темы   Непрочитано 15.04.2008, 18:56
#385
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Я конечно же дико извеняюсь, но ты кажется удалил sumtV7 c #366

Еще одна просьба. Можно в файле примера, в отдельном месте привести список Гостов, которые охватывает лисп? Было бы очень полезно.

Последний раз редактировалось Red Nova, 15.04.2008 в 19:01.
Red Nova вне форума  
 
Непрочитано 15.04.2008, 19:04
#386
VVA

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


Ты наверное смотришь быстрее, чем я выкладываю Архив на месте. Про почту: Ткни в жирные синие буковки VVA, там есть почта
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.04.2008, 22:52
#387
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Сорри, но я никак не могу там найти твой мейл, смотри файл с #384
Red Nova вне форума  
 
Непрочитано 16.04.2008, 13:15
#388
Рин

Проектируем
 
Регистрация: 03.04.2008
Sever Kavkaza
Сообщений: 122


Сегодня скачал последнюю версию sumtV7 с #366. При первой попытке выдает сообщение в командной строке (_speckg неверно сформирванный список на входе). Во второй раз уже нормально, но арматуру считает по формуле, т.е. веса в базе не находит
Рин вне форума  
 
Непрочитано 16.04.2008, 15:30
#389
VVA

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


>Red Nova #384 Вот что у меня
>Рин Файлик пришли или выложи
Изображения
Тип файла: gif zzz.gif (83.5 Кб, 650 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 16.04.2008, 16:03
#390
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Облом. Непойму в чем межет быть причина. А у тебя точно тот же лисп работает, что и выложенный?

dextron3 Испытай пожалуйста лисп перевода с поста 351. Нужно постороннее мнение. Как у тебя поведет себя файл с поста 384?
Red Nova вне форума  
 
Непрочитано 16.04.2008, 16:42
#391
Рин

Проектируем
 
Регистрация: 03.04.2008
Sever Kavkaza
Сообщений: 122


Цитата:
Сообщение от VVA Посмотреть сообщение
>Red Nova #384 Вот что у меня
>Рин Файлик пришли или выложи
Ругается даже на тестовом файле... Поменял файл с базой на более ранний и все нормально.
Рин вне форума  
 
Непрочитано 16.04.2008, 17:15
#392
VVA

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


>RedNova #390 Тот же лисп. А себе его не сохранял. Заново скопировал с поста, и файл с #384, только строчку скопировал ниже.
>Рин Я это не могу объяснить, у меня тоже работает. Здесь как и с Red Nova нужен третий.
> Red Nova или Dextron Новая редакция sumTV7 с #366 на тестовом файле работет? В базе поменялся только порядок описания классов арматуры, и все
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.04.2008, 18:51
#393
dextron3

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


VVA, все работает претензий пока нет жду обновления по порядку подсчета выборки,
Red Nova, ну во первых у тебя м-текстом написано, лисп вообще не работает для м-текста, но для обычного текста ведет неккоректно
прилагаю свой пример в видеоролике,

я сразу сказал что эти дополнительные шрифты ведут себя некорректно,
поэтому откажись от их использования, потом начнешь работать с другими конторами тебя реально запарят, не у всех шрифты эти корректно отображаются....
Вложения
Тип файла: rar Untitled.rar (12.0 Кб, 172 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 16.04.2008 в 19:04.
dextron3 вне форума  
 
Автор темы   Непрочитано 16.04.2008, 20:04
#394
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, спасибо.
VVA, Как только протестирую новую версию дам знать.
Erevan-Moscow глючит и у dextron3. Так что проблема в лиспе, а не у моего када. Нет мыслей как исправить? (может можно написать то-же но чуть подругому, глядишь и глюки пропадут) А-то с армянским мне будет туго.
Рин, А ты прописал путь к папке с лиспом в AutoCAD?
Red Nova вне форума  
 
Непрочитано 16.04.2008, 21:00
#395
dextron3

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


Рин, в папку support забрось базу prokat
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 17.04.2008, 00:14
#396
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Протестировал последнюю версию.
SPES5D
1. Не считает болты и гайки (ранье SPES5 считал, а теперь заглох и он).
2. Прошу дать пример расчета на лист чечевицу и ромб.

SPES5 и SPES5D
3. Обнаружил что-то очень странное. Беру один и тот же файл примера выложенного тобой. Один экземпляр оставляю в папке Sum7V7, (там и лисп) путь к этой папке прописан в каде, для этого экземпляра все команды работаю нормально (кроме болтов и шайб, но это другой вопрос). Теперь копирую файл примера в другое место. Некоторые строчки теперь отказываются считаться и краснеют (сетки гайки шайбы).
В чем дело? Файл тот же. Смотри в приложенном файле пункт три. Лисп в обоих вариантах в автозагрузке.
Вложения
Тип файла: dwg
DWG 2004
Спецификация вопрос.dwg (82.2 Кб, 2151 просмотров)
Red Nova вне форума  
 
Непрочитано 17.04.2008, 10:22
#397
Рин

Проектируем
 
Регистрация: 03.04.2008
Sever Kavkaza
Сообщений: 122


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Рин, в папку support забрось базу prokat
Спасибо, но она уменя она уже там. Работает со старой базой. С обновленной не работает.
Рин вне форума  
 
Непрочитано 17.04.2008, 10:24
#398
dextron3

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


Red Nova, погляди видео
Вложения
Тип файла: rar Untitled.rar (1.31 Мб, 145 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 17.04.2008, 10:26
#399
dextron3

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


Рин, хоть бы скриншот показал, как понять не работает?
от базы не зависит, это же простой текстовый документ
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 17.04.2008, 10:27
#400
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Рин, А файл старой базы удалил?
Red Nova вне форума  
 
Автор темы   Непрочитано 17.04.2008, 11:21
#401
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


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

VVA,
1.У меня есть такое предложение.
Сейчас когда округление настроено на одну цифру после запетой, то если масса одной детали меньше чем 0,04 то масса одной детали записывается как 0. А масса всех деталей уже ощутимая цифра. Так случается к примеру с болтами. Можно ли сделать так, чтобы в случае когда масса одной детали очень мала, то вместо нуля записывалась скажем 0,006, то есть охватывая первую цифру не равную нулю.
2. Предлагаю ввести новую переменную, дающую возможность изменить цвет приблизительно рассчитываемых масс с синего на белый.
3. Так и не могу разобраться с чеч. листами. Смотри что у меня получается.
Вложения
Тип файла: dwg
DWG 2004
Спецификация вопрос2.dwg (60.9 Кб, 2198 просмотров)

Последний раз редактировалось Red Nova, 17.04.2008 в 11:52.
Red Nova вне форума  
 
Автор темы   Непрочитано 28.04.2008, 21:09
#402
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Может с переводом на другой язык как-то подругому решить вопрос? А то лиспик у меня теперь только для русских проджектов.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 29.04.2008, 09:45
#403
VVA

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


Давай про перевод в другой теме.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.04.2008, 12:58
#404
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Зачем? Мне ведь не просто перевод нужен, а интеграция перевода в SPEC5d.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 29.04.2008, 13:07
#405
VVA

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


Просто пока проблемы с самим переводом. Интеграция - чисто техническая часть. Да и dextron3 что-то высказывал пожелания про казахский
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.04.2008, 14:18
#406
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Чесно говоря не пойму чем тут поможет переход вопроса на другую тему. Если пока проблемы с переводом, то может с этим вопросом подождать? А проблемы какие, по части программного решения? Помнишь я предпологал, что возможно можно в лиспе создать отдельную дирректорию, где будут находится парные слова перевода (Труба=truba....), это не вариант?
Прокомментируй пожалста пост #401, первые два вопроса если хочешь можешь и пропустить, а с третим хотелось бы понать.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 29.04.2008, 15:49
#407
VVA

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


Цитата:
Чесно говоря не пойму чем тут поможет переход вопроса на другую тему
Один вопрос - один ответ
Про пост #401 чуть позже. Сейчас катастрофически не хватает времени
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.04.2008, 16:07
#408
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
Чуть позже, Сейчас катастрофически не хватает времени
Храшо
__________________
Блог
Red Nova вне форума  
 
Непрочитано 03.05.2008, 14:29
#409
VVA

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


Версия 8. Добавлена настройка разделителя дробных и целых знаков (sumTSET), в TOKR добавлен запрос подавления незначащих нулей.
По поводу #401
1. Вроде сделал
2. Пока не делал
3. Это виноват сам. Пошел на поводу типа здесь длина есть, а строчкой ниже нет. Это огрехи работы анализатора пропущенных столбцов. Вообще есть большое желание вернуть все назад. Выбрал 5D - будь добр заполни графу длина. Сейчас поправил, но в дальнейшем править анализатор пропущенных стролбцов нет желания, т.к. у нас этим не занимаются. Пишут по ГОСТ, и все работает.

*Добавлено 07.05.2008*
Добавилась сортировка, округление малых чисел (если вес одной делали меньше 100 грамм, то она округляется с точностью до 4 знаков)
Внесены изменения в prokat.ves ! Добавлен прокат марки по для сортамента по умолчанию (сейчас это "Ст3сп")
Вложения
Тип файла: rar sumTV8.rar (360.0 Кб, 186 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 08.05.2008 в 10:12. Причина: Болты по ГОСТ 28778-90
VVA вне форума  
 
Автор темы   Непрочитано 03.05.2008, 17:02
#410
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо за новую версию, щас потыкаем.
Цитата:
Пишут по ГОСТ, и все работает.
Ну это конечно–же правильно, но более трудоемко, надо ведь каждый раз разбирать и собирать мтекст в две строки. Пока как понимаю большинство именно 5D предпочитают
__________________
Блог
Red Nova вне форума  
 
Непрочитано 03.05.2008, 17:21
#411
dextron3

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


VVA, что то не работает с 0.0001 числами всеравно прочерк выдает при округлении 2 знака после запятой,

а попорядку по возрастанию диаметр по прежнему не сортиует =(
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 03.05.2008, 17:59
#412
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Протестировал.
1. Про подавление нулей.
Работает не корректно. Смотри приложенный файл. Тестировал при разном округлении.

2. Про ведомость

Вот пример


Код:
[Выделить все]
============= ИТОГ РАБОТЫ ==============

Класс : Прокат
ГОСТ 8509-93
     Уголок 75Х75Х6  -  66.0 кг.
     Уголок 50Х50Х5  -  16.8 кг.
     Уголок 40Х40Х4  -  3.2 кг.
-------------------------------------------------
ГОСТ 5781-82
     Арматура 22  -  4.6 кг.
     Арматура 18  -  110.6 кг.
-------------------------------------------------

     Труба круглая 127х4  -  72.8 кг.
     Лист 16  -  16.3 кг.
     Лист 12  -  12.2 кг.
     Фланец 140х12  -  1.5 кг.
     Лист 6  -  0.2 кг.
     Труба круглая 89х4  -  66.3 кг.
     Труба круглая 60х4  -  8.4 кг.
     Лист 10  -  78.4 кг.
     Фланец 139х12  -  1.4 кг.
-------------------------------------------------
Dextron уже сказал про сортировку по порядку.
Добавлю что фланец наверное правильнее прибавить к листам той же толщины.

3.
Цитата:
в TOKR добавлен запрос подавления незначащих нулей.
я не могу понять как это работает
Вложения
Тип файла: dwg
DWG 2004
Про подавление нулей.dwg (41.7 Кб, 2194 просмотров)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 05.05.2008, 22:41
#413
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Думаю лисп для расчета спецификации (“Война и мир том 1”) уже можно считать практически готовым (хотя признаюсь я пока работаю со старым и так и недоделанным вариантом SPEC), Теперь хотелось бы перейти к созданию Лиспа для расчета ведомости расхода стали (можно и продолжить наш лисп), как считаете? Я как-то уже выкладывал свой вариант алгоритма, но судя по реакции (от VVA реакция вообще нулевая) мой вариант особо никого не заинтересовал. Так может вы свой вариант предложите? В любом случае считаю расчет ведомости расхода стали важным продолжением разработки SPEC. Очень надеюсь на ваш энтузиазм.

P.S. Конечный продукт должен быть в форме чертежа. Коммандная строка не совсем то.
__________________
Блог

Последний раз редактировалось Red Nova, 05.05.2008 в 22:47.
Red Nova вне форума  
 
Непрочитано 06.05.2008, 08:20
#414
dextron3

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


Я лично приспособился, и создал свою ведомость расхода, и тупо копирую из командной строки и все понятно, для такой замороки как у тебя я создал две кнопки округлитель до 2 знаков и до 4х, и когда надо просто щелкаю, и все в поряде, так что смотри скриншоты:
Миниатюры
Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 167
Размер:	22.8 Кб
ID:	6117  
Изображения
Тип файла: jpg Snap2.jpg (2.2 Кб, 803 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 06.05.2008, 17:56
#415
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Дык есть же по ГОСТу вариант ведомости. Хоть чуток желательно к нему приблизиться.
А копировать из ком. строки считаю лишней работой. Ведь можно это запросто автоматизировать. Не так как я предлагал, так по другому. Заработает сам ведь перейдешь на него.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 07.05.2008, 17:29
#416
VVA

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


Обновил версию 8 в #409.
Добавилась сортировка, округление малых чисел (если вес одной делали меньше 100 грамм, то она округляется с точностью до 4 знаков)
Внесены изменения в prokat.ves ! Добавлен прокат марки по для сортамента по умолчанию (сейчас это "Ст3сп")
Цитата:
в TOKR добавлен запрос подавления незначащих нулей.
я не могу понять как это работает
Пишешь текст со значением 1.2
Вызываешь TOKR, количество знаков округления - 2 , в ответ на запрос
Подавлять замыкающие незначащие нули [Да/Нет] <Да>: один раз отвечаешь "Да", второй "Нет". Сравниваешь результат.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.05.2008, 18:34
#417
dextron3

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


VVA, спасибо!
у меня эта команда не одеквадно себя ведет,
^C^C_HYPD;_all; _Cancel,
все объекты превращает в объекты ссылки, которые были свободны,
посоветуйте чтонибудь

По деревянной спецификации:

а как для деревянной спецификации 100грамм учитывает, у меня не работает...

Почему нет моего обновления:

(кстати у меня чтото перестало считать, тоже не могу сообразить)

;;; =============== Болты самоанкерующиеся распорные для строительства ГОСТ 28778-90 ====================
("БОЛТ" 40 "ГОСТ 28778-90;ГОСТ28778-90" "Болты самоанкерующиеся ГОСТ 28778-90" (("М6*[ Х]65." 0.03192) ("М8*[ Х]85." 0.06092) ("М10*[ Х]100." 0.09061) ("М12*[ Х]110." 0.13402) ("М16*[ Х]150." 0.19229) ("М20*[ Х]200." 0.4569) ("М22*[ Х]250." 0.7406) ("М24*[ Х]300." 1.15952)))
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 07.05.2008 в 18:41.
dextron3 вне форума  
 
Непрочитано 08.05.2008, 10:04
#418
VVA

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


1. HYPD исключил, т.к. есть стандартная команда Автокада. После загрузки sumT.lsp нажми F2 и почитай
Кнопка такая:
^C^C_-HYPERLINK;_Remove;_All;;
2.
Цитата:
как для деревянной спецификации 100грамм учитывает, у меня не работает
А никак. Я думал щепки считать не нужно
3. Я бы базу записал так
Цитата:
;;; =============== Болты самоанкерующиеся распорные для строительства ГОСТ 28778-90 ====================
("БОЛТ" 40 "ГОСТ 28778-90;ГОСТ28778-90" "Ст3сп" "Болты самоанкерующиеся ГОСТ 28778-90" (("6Х65" 0.03192) ("8Х85" 0.06092) ("10Х100" 0.09061) ("12Х110" 0.13402) ("16Х150" 0.19229) ("20Х200" 0.4569) ("22Х250" 0.7406) ("24Х300" 1.15952)))
Вместо "Ст3сп" вбей нужную марку стали для болтов
Запись по ГОСТ 28778-90 в спецификации:
БСР 8х85 У3 ГОСТ 28778-90

** Добавлено **
Обновил #409 с примерами для болтов по ГОСТ 28778-90
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 08.05.2008 в 10:13.
VVA вне форума  
 
Непрочитано 08.05.2008, 10:17
#419
dextron3

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


VVA, для спек 5D марка стали особо не нужна,

а вот про щепки не включено эт зря, мы же разносторонне развиты и КД разделы делаем

PS хотел спросить можно ли опцию добавить:

============= ИТОГ РАБОТЫ ==============

Класс : Арматура А-III
ГОСТ 5781-82
Арматура d= 12 - 20.54 кг., или Lобщ.=30м.п.
-------------------------------------------------
Класс : Арматура А-I
ГОСТ 5781-82
Арматура d= 8 - 9.16 кг., или Lобщ.=40м.п.
-------------------------------------------------
Класс : Арматура ВР-I
ГОСТ 5781-82
Арматура d= 5 - 3.54 кг., или L=общ.10м.п.

Иной раз по проектам строят обычные люди, приходится долго
объяснять как кг в метры переводить, даешь таблицу, не понимают,
покупают не то...

Буду ждать обновки...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.05.2008, 15:24
#420
dextron3

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


VVA, немного подправил кнопочку
^C^C_-HYPERLINK;_Remove;All;;*;
теперь работает на ура
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 21.05.2008, 05:57
#421
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Хотелось бы снова вернуться к лиспу с #16(страница 1) и советам VVA #311 и #317(16-я страница). То есть, как дополнить этот код (#16) функцией, убирающей форматирование текста... Также хотелось бы его дополнить функцией замены цвета текста, в который вставляется рассчитанное значение, чтобы идентифицировать обработанные объекты....
(по аналогии с лиспом для суммы длин отрезков http://dwg.ru/f/showthread.php?t=842...D%E8%FF&page=6 , #118)
skkkk вне форума  
 
Непрочитано 21.05.2008, 09:49
#422
VVA

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


Держи. Коментарии в коде. Нужное выделил красным
Код:
[Выделить все]
(defun c:z-calc-text-value (/ value ent obj ss)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
    ) ;_ princ
  (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  (if (not ss)
    (princ "Не выбраны объекты")
    (progn
      (setq
  value (rtos
    (apply
      (function +)
      (mapcar
        (function
          (lambda (a)
      (atof
        (vl-string-trim
          "%Uu {\\Ll}"
          (vl-string-subst
            "."
            ","
            (mip_MTEXT_Unformat (cdr (assoc 1 (entget a)))) ;_Снос форматирования
            ) ;_ vl-string-subst
          ) ;_ vl-string-trim
        ) ;_ atof
      ) ;_ lambda
          ) ;_ function
        (vl-remove-if
          (function listp)
          (mapcar (function cadr)
            (ssnamex ss)
            ) ;_ mapcar
          ) ;_ vl-remove-if
        ) ;_ mapcar
      ) ;_ apply
    ) ;_ rtos
  ) ;_ setq
      (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
      (princ (strcat "\n Сумма = " value))
      (alert (strcat "Сумма = " value))
      (setvar "ERRNO" 0)
      (while
  (and (not (setq  ent
       (car
         (nentsel
           (strcat
             "\n Выберите текстовый объект для записи значения <Выход>:"
             ) ;_ strcat
           ) ;_ entsel
         ) ;_ car
      ) ;_ setq
      ) ;_ not
       (equal (getvar "ERRNO") 7)
       ) ;_ and
   (setvar "ERRNO" 0)
   ) ;_ while
      (if (and ent
         (vlax-property-available-p
     (setq obj (vlax-ename->vla-object ent))
     'TextString
     ) ;_ vlax-property-available-p
	 (vlax-write-enabled-p obj)      
         ) ;_ and
  (progn
    (vlax-put-property obj 'TextString value)
    (vla-put-color obj 3)  ;_Цвет текста 3 - зеленый
    (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
      ) ;_ progn
    ) ;_ if
  (princ)
  ) ;_ defun
(defun mip_MTEXT_Unformat ( Mtext / text Str )
  (setq Text "")
   (while (/= Mtext "")
        (cond
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
	   (setq Mtext (substr Mtext 3)))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
            (if (or(= " " (substr Text (strlen Text)))
		   (= " " (substr Mtext 3 1)))
               (setq Mtext (substr Mtext 3))
               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
	  ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                  Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
                  Mtext (substr Mtext (+ 4 (strlen Str)))))
	  (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))
	  ))
  Text
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 26.05.2008, 16:30
#423
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Поскольку в разработке главной программы форума пока пауза, у меня возродилась просьба (где то в начале форума уже было). Помнишь самый первый SPEC, еще без гостов. Там все работало кроме швеллеров и двутавров. Прошу добавить возможность их подсчета. Напомню как это выглядело, в базу надо вбить только двутавры с уклоном внутренних граней полок (ГОСТ 8239-89) и швеллеры с уклоном внутренних граней полок (ГОСТ 8240-97).
При этом обозначаем просто, как указанно в файле примера. Примитивно конечно же, но все же, людям ленивым типа меня полезно.
Вложения
Тип файла: dwg
DWG 2004
Напоминание.dwg (48.6 Кб, 1949 просмотров)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 27.06.2008, 17:54
#424
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Появилась идея приспособить лисп к таблицам, как ты думаешь, можно и на таблицы распространить? Все тоже самое, только отмечаем ячейки вместо мтекстов. Продолжать дальше размышления на этот счет, или шансов нет?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 27.06.2008, 20:13
#425
VVA

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


Red Nova, С таблицами не получится, так как ssget вернет таблицу целиком, а не выбранные ячейки. Хота целиком обрабатывать таблицу может и легче, так как там есть шапка, и известно какой столбец "Марка" , а какой "Масса ед." Но это нужно писать другой код. Пока что я за это браться не буду.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 27.06.2008, 20:53
#426
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
С таблицами не получится, так как ssget вернет таблицу целиком, а не выбранные ячейки
Я конечно же не бум-бум, но все же ка-то странно что нельзя программно вписать в указанные ячейки нужные значения. Жаль. Хочу на таблицы переходимть, но без spec я теперь никуда, так что таблицы пока отдыхают.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 03.07.2008, 11:27
#427
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Решил перейти со SPEC на SPEC5D, обнаружил что не все необходимые госты имею. В гугле искал, но есть далеко не все. Поделитесь пожалста следующими гостами
ГОСТ 24045-94 (по моему профильный настил)
ГОСТ 5915-70 (гайки)
ГОСТ 11371-78 (шайбы)
ГОСТ 5336-80 (сетка, нашел только в виде интернет страницы, хочется по культурнее)
ГОСТ 30245-03 (Труба квадратная, тоже нашел только в виде интернет страницы)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 03.07.2008, 12:26
#428
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Обнаружил что SPEC5D массу фланцев считает неправильно, причем если пропустить минус, то считает тоже не правильно, но совсем по другому. Прикрепил бы файл, да форум совсем сума сошел, ничего толком не работает
__________________
Блог
Red Nova вне форума  
 
Непрочитано 03.07.2008, 16:50
#429
VVA

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


подождем файлик
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.07.2008, 22:02
#430
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну ни в какую не крепится файл. Попробую в строчном виде написать результат вычисления


ГОСТ19903-74 / Фл. (знак диаметра)327х12 / - / 4 / 30.8 / 123.2

ГОСТ19903-74 / Фл. (знак диаметра)327х12 / / 4 / 0.0308 / 0.1


Оба ответа ошибочны.
__________________
Блог

Последний раз редактировалось Red Nova, 05.07.2008 в 17:57.
Red Nova вне форума  
 
Автор темы   Непрочитано 04.07.2008, 23:02
#431
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Так хоть понятно? Имелись в виду колонки
Обозначение/ Наименоваие/Длина/ Количество/ Масса ед/ Масса Всех
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 08.07.2008, 11:56
#432
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


До сих пор файл не прикрепляется.
Обнаружил еще следующее:
Если не писать строчку ГОСТ то считает нормально.
/ / Фл. Ø140x12 / / 10 / 1.5 / 14.5 /
/ / Фл. Ø140x12 / - / 10 / 1.5 / 14.5 /
Если же ее писать, то считает неврно.
/ ГОСТ19903-74 / Фл. Ø140x12 / / 10 / 0 / 0.1 /
/ ГОСТ19903-74 / Фл. Ø140x12 / - / 10 / 13.2 / 131.9 /
Тот же ГОСТ для обычной листовой стали считает нормально.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 08.07.2008, 12:19
#433
VVA

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


Принцип определения типа проката:
1. Если есть ГОСТ и этот ГОСТ описан в файле prokat.ves, то тип проката берется из файла (это ЛИСТ).
2. Если описания ГОСТА нет, то пытаемся определить по вхождению символов в наименование (если есть ФЛ. то это Фланец)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 08.07.2008, 12:57
#434
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


В prokat.ves, в прокатах листовых ГОСТ19903-74 вписан.
Для обычного листа (прямоугольного) массу считает нормально и по ГОСТ19903-74 и по приближенной формуле, а вот для фланца вписывая ГОСТ19903-74 расчет сходит с ума.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 08.07.2008, 16:19
#435
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну вот на конец загрузилось.
Вложения
Тип файла: dwg
DWG 2004
Спецификация'.dwg (50.2 Кб, 1947 просмотров)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 08.07.2008, 16:30
#436
VVA

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


Red Nova, Так как вписан ГОСТ19903-74 и он помечен как ЛИСТ, то и считает как лист. Исправленный prokat.ves (добавно разделение в ГОСТ19903-74 на фланцы и листы) Изменения коснулись этих строк
Цитата:
("ЛИСТ" 27 "ГОСТ 19903-74;ГОСТ19903-74&~ФЛ" "Ст3сп" "Прокат листовой горячекатанный ГОСТ 19903-74" (0))
Цитата:
("ФЛ" 41 "ГОСТ 19903-74;ГОСТ19903-74&ФЛ" "Ст3сп" "Прокат листовой горячекатанный ГОСТ 19903-74" (0))
Вложения
Тип файла: zip prokat.ves.zip (14.8 Кб, 128 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 08.07.2008, 17:11
#437
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо большое, теперь работает корректно.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 08.07.2008, 17:19
#438
dextron3

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


Red Nova, выложи хоть скриншот со строчками из спецификации 5D которые теперь работают корректно ...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 08.07.2008, 17:39
#439
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Вот и скрин
Изображения
Тип файла: jpg ФЛ.jpg (9.1 Кб, 676 просмотров)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 08.07.2008, 22:08
#440
dextron3

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


Red Nova, чето скрин не понятный где еденица измерения длины фланца то, и где шапка у таблицы
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 08.07.2008, 23:10
#441
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Лист ромб и Лист чечевица считает под одну массу. Я помню что они отличались.
Файл опять не крепит, пишу пример строчно
/ ГОСТ 8568-77 / Лист ромб-8х100x1000 / / 10 / 6.7 / 66.6 /
/ ГОСТ 8568-77 / Лист чечевица-8х100x1000 / / 10 / 6.7 / 66.6 /

dextron3, А ты что не помнишь последовательность столбцов spec5d? Напомню
/Обозначение/ Наименоваие/Длина/ Количество/ Масса ед/ Масса Всех
__________________
Блог
Red Nova вне форума  
 
Непрочитано 09.07.2008, 10:38
#442
VVA

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


У меня считает правильно
Изображения
Тип файла: gif SPEC5D.gif (63.3 Кб, 955 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.07.2008, 12:01
#443
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


У меня тоже на работе заработало, а дома нет
Может остался прописан путь к старому файлу, надо будет проверить.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 09.07.2008, 22:19
#444
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
A) Так и не понял в чем дело, на работе работает правильно, дома – нет. Стер всю домашнюю папку, проверил поиском, чтобы файлы нигде не дублировались, скопировал папку с рабочего компа, ну ни в какую чечевичный лисп не считается правильно, значение приравнивается к ромбу.
Ну да ладно, спишем на сверх естественные силы.

B) Опять думал о ведомости расхода стали. Прежде чем к этому приступить решил посмотреть какие массы выдает команда в ком строке (ты ведь на это будешь основываться если будешь писать лисп расхода стали)
Обнаружил следующее.
1. Ну про это ты уже от части знаешь, и на вряд ли сможешь помочь, т.к. наверное это только у меня. Масса чечевичного листа приплюсовывается к массе листа ромба.
2. Масса фланца не приплюсовывается к листам той же толщины, а считается отдельно. Желательно это исправить.
Арматура суммируется по принципу госта а разность марки игнорируется. Имел арматуру ГОСТ 5781-82 Ac1 и ГОСТ 5781-82 A500c, получил общую сумму масс.
Цитата:
-------------------------------------------------
Класс : Прокат ДЛџ СОВМЕСТИМОСТИ
ГОСТ 5781-82
Арматура d= 6 - 2.442 кг.
Арматура d= 18 - 44.0 кг.
-------------------------------------------------
Хотелось бы по отдельности.
К стати тут в шапке пишет что-то не то, (я про “Прокат ДЛџ СОВМЕСТИМОСТИ”)

C) Прошу подправить существующий лисп, и подумать о создании нового лиспа для создания ведомости расхода стали.
Помню предлагал вариант, но он оказался больно сложным. Вот придумал более легкий.
Смотри ТЗ в файле.
Надеюсь ты найдешь время для этой разработки.
Вложения
Тип файла: dwg
DWG 2004
ТЗ Вед.dwg (141.1 Кб, 2333 просмотров)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 10.07.2008, 10:58
#445
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Думаю задумку с #444 можно еще более упростить.
В файле с #444 ведомость создается на основе существующей заготовки. А что если создавать ведомость как генерируемую таблицу? На мой взгляд так должно быть легче и в программном аспекте, и в аспекте дальнейшего использования.

В таком случае алгоритм должен выглядеть так:
Отмечаем текст с именем “Изделия-1”, это имя записывается в памяти, затем рамкой отмечаем все детали принадлежащие “Изделию-1”, затем отмечаем текст с именем “Изделия-2” и соответственно рамкой его детали, так продолжается для всех Изделий, когда все изделия уже вписаны в память нажимаем enter, и вставляем сгенерированную таблицу. При вставки таблицы желательно чтобы прежде запрашивался масштабный коэффициент для нее, так как не у всех таблицы 1:1, я к примеру их делаю в модели, и они у меня 1:25.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 10.07.2008, 10:59
#446
VVA

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


1.
Цитата:
Ну про это ты уже от части знаешь, и на вряд ли сможешь помочь, т.к. наверное это только у меня
У тебя определенно барабашки. У меня так
Цитата:
Команда: SpecKG

(Округление до 2) Укажите рамкой область из 6 или 5 столбцов (Обз Наим Длина
Кол-во Масса_ед Масса_всех). Первая точка:
Вторая точка:
============= ИТОГ РАБОТЫ ==============

Класс : Прокат СТ3СП
ГОСТ 19903-74
Лист 8 - 115.5 кг.

-------------------------------------------------
ГОСТ 8568-77
Рифленый лист ромб 8 - 66.6 кг.
Рифленый лист чечев. 8 - 64.9 кг.
-------------------------------------------------
ГОСТ 103-76
Лист 4 - 13.86 кг.
-------------------------------------------------
ГОСТ 30245-03
Профиль гнутый 50Х50Х2 - 32.23 кг.
-------------------------------------------------
ГОСТ 10704-91
Труба круглая 127х5 - 165.44 кг.
-------------------------------------------------
2. Тоже неправда. См выделение синим в №1

Цитата:
Арматура суммируется по принципу госта а разность марки игнорируется. Имел арматуру ГОСТ 5781-82 Ac1 и ГОСТ 5781-82 A500c, получил общую сумму масс
Разность марки игнорируется, если класс арматуры неизвестен. Класс арматуры описывается в базе в этом месте. Там АС1 и АС500 не было
Цитата:
("КЛАССАРМАТУРЫ" 37 "NOPATTERN" "Для совместимости" "Классы арматуры" ("А240" "А300" "АС300" "А400" "А600" "А800" "А1000" "А-III" "АIII" "А-II" "АII" "А-IV" "А-I" "АI" "Вр-I" "S240" "S400" "S500" "S800"))
Считало так
Цитата:
-------------------------------------------------
Класс : Прокат ДЛЯ СОВМЕСТИМОСТИ
ГОСТ 5781-82
Арматура d= 8 - 4.4 кг.
Арматура d= 18 - 22.0 кг.
-------------------------------------------------
А вот что стало после добавления
Цитата:
("КЛАССАРМАТУРЫ" 37 "NOPATTERN" "Для совместимости" "Классы арматуры" ("А240" "А300" "АС300" "А400" "А600" "А800" "А1000" "А-III" "АIII" "А-II" "АII" "А-IV" "А-I" "АI" "Вр-I" "S240" "S400" "S500" "S800" "АС1" "А500С"))
Подсчет соответственно
Цитата:
============= ИТОГ РАБОТЫ ==============

Класс : Прокат СТ3СП
ГОСТ 8509-93
Уголок 75Х75Х6 - 75.79 кг.
-------------------------------------------------
ГОСТ 30245-03
Профиль гнутый 50Х25Х2 - 21.5 кг.
-------------------------------------------------
ГОСТ 8239-89
Двутавр 20 - 231.0 кг.
-------------------------------------------------
Класс : Арматура АС1
ГОСТ 5781-82
Арматура d= 8 - 4.4 кг.
-------------------------------------------------
Класс : Арматура А500С
ГОСТ 5781-82
Арматура d= 18 - 22.0 кг.
-------------------------------------------------
Если в базе заменишь СТ3СП на Вст3кп2, то будешь получать прокат Вст3кп2
Фрагмент базы
Цитата:
("Д" 1 "ГОСТ 26020-83;ГОСТ26020-83" "Ст3сп" "Двутавры по ГОСТ 26020-83 ...
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.07.2008, 12:47
#447
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


1) Спасибо. С добавлением классов арматуры разобрался, работает.
2) С фланцем не работает. Пробовал на рабочем компе, на котором барабашек с листами нет.
Вот результат

Цитата:
============= ИТОГ РАБОТЫ ==============

Класс : Прокат
ГОСТ 19903-74
Лист 8 - 62.8 кг.
Фланец 327х8 - 52.7406 кг.
-------------------------------------------------
3) К стати по ГОСТ 103-76 полоса а не лист, я это про это
Цитата:
ГОСТ 103-76
Лист 4 - 13.816 кг.
Хотя в общем это маловажно, результат ведь в ком строке пока.

4) А как на счет ведомости стали? Не заинтересовало?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 10.07.2008, 13:08
#448
VVA

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


Подозреваю, что лисп старый
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.07.2008, 13:19
#449
VVA

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


Вот версия лиспа, листинг которого приводил.
При загрузке будет печататься номер сборки.
Цитата:
Опубликовано: http:////dwg.ru//f//showthread.php?t=16987 сборка(пост) #449
Наберите в командной строке
SumTN - суммирование тестов в новый текст
...
Для реализации ведомости расхода стали нужно время. Его пока нет

*** Добавлено ***
Теперь для ГОСТ 103-76 и ГОСТ 103-2006 будет писать ПОЛОСА.
Вложения
Тип файла: rar sumT post#449.rar (370.5 Кб, 259 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.07.2008, 14:26
#450
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Спасибо, по видемому ты был прав что лисп старый. Лисп с#449 работает так как надо.
Цитата:
Для реализации ведомости расхода стали нужно время. Его пока нет
Буду ждать и надеятся
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 20.07.2008, 13:37
#451
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
А что если автоматизировать создание самой таблицы спецификации (из мтекстов разумеется)? В смысле каждый из нас, конструкторов которые используют твои лиспы типа SPEC5D, сперва должны создать ведомость, которую потом уже можно считать одним кликом при помощи твоей программы. А ведь вся информация, которую мы собираем в таблицу спецификации по большей части уже присутствует на чертеже, и куча времени уходит на ее копирование в спецификацию.
Предлагаю создать программу, которая умеет это автоматизировать.
Вот ее краткое описание.
Задумка пока только для людей вписывающих позиции в выноски СПДС (если будет интерес, то в принципе выносками СПДС можно не ограничиваться).
Как большинство конструкторов оформляют позиционную выноску. В первую строку вписывается номер позиции, во вторую строку информацию о прокате (арматуре).
При запуске лисп выбирает все позиционные выноски СПДС, фильтрует не информативные (те которые своими параметрами не подходят под наши условия), затем избавляется от дублирующейся информации (та же позиция может быть в разных местах), затем отмечаем приготовленный шаблон спецификации, и лисп переписывает в нее собранную информацию.
Думаю основной принцип ясен.
Если это тебя заинтересует, то расскажу про все задуманные этапы по подробнее. А пока подожду твоего ответа.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.07.2008, 13:47
#452
dextron3

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


Red Nova, а ты VetCAD 3.5 ++ смотрел, так как все что ты рассказываешь это там реализовано, скачай пробную версию, посмотри, как он считает спецификации, как раз таки там есть выноски, которые запозиционированы, и завязаны со спецификацией, из которой автоматом делается ведомость расхода, потом расскажи что думаешь...
буду ждать...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.07.2008, 15:08
#453
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Посмотрел VetCad.
Задумка конечно же хорошая. Но.
1. Позиционная выноска есть блок + полилиния. Это неудобно.
2. Чтобы работать с VetCad выносками и спецификациями надо сначала вызывать редактор VetCad. То есть нет энейблера как в СПДС.

Добавил
И кроме этого. Я не ставлю целью записать в позицию всю информацию о ней, как в VetCad, только то, что уже на чертеже. К примеру графу количество в спецификации следует заполнять самим (после сбора информации из выносок).


P.S.
1. А ты что на VetCad перешел?
2. Поздравляю с двухтысячным.
__________________
Блог

Последний раз редактировалось Red Nova, 20.07.2008 в 16:28.
Red Nova вне форума  
 
Непрочитано 20.07.2008, 18:17
#454
dextron3

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


Red Nova, мне кажжется что уже все приркучивать к тому что есть только во вред, помнишь ты писал про фланцы я встваил файл так у меня все пластины перестал считать откатился назад....

Веткад задумка очень даже хорошая я еще как только автокадом пользоваться начал сразу а таком способе задумался, но жаль что программа платная, поэтому не для нас...

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

2/ А спасибо мне сказали кто 10 тыщ сообщений набирает, тот автоматом moderatorom становится, ну естесвенно дается испытательный срок, типа модератор чата и не более..., а там как себя покажешь
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.07.2008, 18:49
#455
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
мне кажжется что уже все приркучивать к тому что есть только во вред, помнишь ты писал про фланцы я встваил файл так у меня все пластины перестал считать откатился назад....
А у меня все тип топ.
Цитата:
мне сказали кто 10 тыщ сообщений набирает, тот автоматом moderatorom становится
А там и до президентства не далеко…
__________________
Блог
Red Nova вне форума  
 
Непрочитано 21.07.2008, 12:03
#456
VVA

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


Red Nova, #451 Я это делать не буду, т.к.
1. Не использую СПДС в работе
2. не интересно.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.07.2008, 12:48
#457
Кулик Алексей aka kpblc
Moderator

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


> #451: практически нереализуемо лиспом. Представление СПДС-объектов недостаточно для такого действия.
Добавлено: а штатные средства составления спецификаций (которые идут вместе с СПДС) не пробовал прикрутить? Говорят, получается...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.07.2008, 14:02
#458
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Понятно, ну собственно я так и предполагал, ты и так во многих вопросах мне помог…
Кулик Алексей aka kpblc,
Цитата:
а штатные средства составления спецификаций (которые идут вместе с СПДС) не пробовал прикрутить? Говорят, получается...
Я так и не нашел в СПДС стандартного метода расчета спецификации (на подобии VetCad или SPEC). Нашел возможность вставлять из базы памяти наименования профилей, но как их рассчитывать - нет.
Цитата:
#451: практически нереализуемо лиспом. Представление СПДС-объектов недостаточно для такого действия.
Странно. Во первых не понял что означает “представление СПДС объектов”.
Попробую по логике пояснить. Если выбрать СПДС выноску, и зайти в свойства, то мы увидим там (в свитке SPDS Graphics) следующие строки “Первая строка” и “вторая строка” (Возможно необходимо иметь для этого энейблер СПДС).
Неужели невозможно лиспом прочитать содержание этих строк? Если их содержимое прочитать, то дальше наличие СПДС не имеет влияния, и дело за стандартными операциями, похожими на те, которые VVA использовал на этом топике (хотя может и очень сложными).
__________________
Блог
Red Nova вне форума  
 
Непрочитано 21.07.2008, 15:07
#459
Кулик Алексей aka kpblc
Moderator

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


Я был неправ, признаю. Добраться до свойств выноски в принципе можно. Но только прочитать (по-моему, менять невозможно). Вот одно из представлений узловой выноски (полученное по (entget (car (entsel)))):
Код:
[Выделить все]
'((0 . "spdsNotePosition")
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "0")
  (48 . 100.0)
  (370 . 25)
  (100 . "mcsDbObject")
  (100 . "mcsDbObjectNotePosition")
  (90 . 1)
  (301 . "Name")
  (300 . "строка2")
  (301 . "Info")
  (300 . "Позиционная выноска\r\nстрока2\r\nстрока 4")
  (301 . "Scale")
  (40 . 100.0)
  (301 . "CutAcElements")
  (290 . 1)
  (301 . "Text style")
  (300 . "GOST 2.304")
  (301 . "Первая строка")
  (300 . "строка2")
  (301 . "Вторая строка")
  (300 . "строка 4")
  (301 . "Выравнивание текста")
  (90 . 1)
  (301 . "Направление полки")
  (40 . 0.0)
  (301 . "Высота текста")
  (40 . 2.5)
  (301 . "Высота малого текста")
  (40 . 2.5)
  (301 . "Шаг угла")
  (40 . 0.0)
  )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.07.2008, 16:04
#460
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну вот, это именно то что и требовалось. Ничего в выноске менять не надо. Она только несет исходную информацию. А дальше многократная фильтрация этой информации, упорядочивание, а затем и заполнение ее в заранее преготовленный шаблон.
Продолжение ответа тут.
http://dwg.ru/f/showthread.php?t=22894
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 22.07.2008, 11:14
#461
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Подскажи пожалуйста, может есть какие строки в лиспе SPEC5D, отвечающие за создание гиперссылок, и может их можно деактивировать? (проставить спереди строчки символ ";" )
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 11:43
#462
VVA

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


http://dwg.ru/f/showpost.php?p=223323&postcount=205
Если нужно удалить, то см. хелп при загрузке sumT.lsp (F2)
Цитата:
Опубликовано: http:////dwg.ru//f//showthread.php?t=16987 сборка(пост) #449
Наберите в командной строке
SumTN - суммирование тестов в новый текст
SumTE - суммирование тестов в существующий текст
MulTN - умножение тестов в новый текст
MulTE - умножение тестов в существующий текст
TOKR - округление текста
MulTC - перемножение текстов столбцами
MulTCv2 - перемножение текстов столбцами вариант 2
sumTSet - установки округления и высоты новых текстов
GSUM - рассчет групповой спецификации
SPECKG - рассчет спецификации (SPEC3 SPEC3D SPEC4 SPEC4D SPEC5 SPEC5D
SPECW - рассчет спецификации деревянных изделий (SPEC Wood
_-HYPERLINK - удаление гиперссылок (опция _Remove)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 12:10
#463
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Это я знаю, но честно говоря HYPERLINK (опция _Remove) работает не всегда корректно, часто не удаляет, и еще у нее длинный диалог. Хотел узнать нет ли другого пути. (чтобы по проще)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 12:17
#464
VVA

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


А сделать кнопку для длинного диалога?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 12:52
#465
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Ну кнопку можно, но если возможно лисп подправить, то не желательно каждый раз запускать после SPEC5D еще и HYPERLINK (опция _Remove). Экономия времени - хорошее дело.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 13:05
#466
VVA

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


Тогда _hyperlinkoptions отключи гиперссылки и все
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 13:43
#467
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


А эта переменная в файле сохраняется или в Каде?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 14:38
#468
VVA

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


Это команда
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 14:46
#469
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Значит действует на весь кад, а это не желательно. Я часто файлы на сторону передаю, не хочу чтобы все ясно видели, что у меня работает некий лисп для спецификации. Народ бывает разный, не хочу чтобы “нежелательные персонажи” задавали лишние вопросы. По этому если был бы вариант подправить лисп было бы хорошо.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 14:55
#470
VVA

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


Найди в файле описание функции
Код:
[Выделить все]
; Ф-ция mip-put-hyperlink
; Возвращает nil.
; Arguments [Type]:
;   Ename = Object [ENAME]
;  URLDescription = Строка [STR]
; Если строка "", то ссылка удаляется
(defun mip-put-hyperlink (ENAME URLDescription)
  (if (eq (type ENAME) 'ENAME)
    (setq ENAME (vlax-ename->vla-object ENAME))
  ) ;_ end of if
  (vlax-for hyp (vla-get-hyperlinks ENAME) (vla-delete hyp))
  (if (/= URLDescription "")
  (vla-add (vla-get-hyperlinks ENAME)
           "about:blank"
           URLDescription
  ) ;_ end of vla-add
    )
) ;_ end of DEFUN
Закоментарь ее
А рядом помести эту
Код:
[Выделить все]
(defun mip-put-hyperlink (ENAME URLDescription)(princ))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 15:02
#471
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


В смысле удалить то что в первом окошке, и поставить вместо этого то что во втором?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 22.07.2008, 15:20
#472
VVA

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


Цитата:
Закоментарь ее
Т.е. закоментируй. Ты изучаешь LISP и язык должен знать. В любом языке программирования есть коментарии. В коментариях можно давать пояснения к коду или оставлять предыдущие версии кода
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.07.2008, 15:45
#473
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


А да, сорри, не дошло как-то сразу. Поставить символы ";" и за ними поместить
Цитата:
(defun mip-put-hyperlink (ENAME URLDescription)(princ))
Теперь понял, буду пробовать.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 05.08.2008, 13:13
#474
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


Даже при беглом просмотре дошел только до поста #340... А если мой пост #474....
МУчают сомнения что мой вопрос не прочитают(((
(Надеясь на чудо):
В теме множество лиспов для расчета спецификаций. К сожалению пригодный для себя не нашел((( Думаю если VVA подсилу все о чем вы тут говорили, то моя задача будет куда легче.
У меня на чертеже те же линии и мтексты - которые визуально являются таблицей.
Очень хотелось бы "анализирующий" лисп. Который работал бы по принципу сводных таблиц Excelя.
Представте себе есть данные:
Код:
[Выделить все]
ПВ1       3(1х1,5)       7,0
ПВ1       3(1х2,5)       13,0
ПВ1       5(1х1,5)       26,0
ПВ1       5(1х2,5)       16,0
ВВГ       3х4       20,0
Результат работы программы:
Код:
[Выделить все]
ПВ1       1х1,5       151
ПВ1       1х2,5       119
ВВГ       3х4       20,0
И проанализировав все вырисовывалась бы таблица с этими значениями.
Форма таблицы и пример во вложенном файле.
И более менее понятное ТЗ с принципом расчета)))
Заранее спасибо!
Вложения
Тип файла: dwg
DWG 2004
Пример.dwg (55.3 Кб, 2151 просмотров)
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/

Последний раз редактировалось Kostinok, 05.08.2008 в 14:42.
Kostinok вне форума  
 
Непрочитано 06.08.2008, 01:26
#475
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Прошу вернуться к первой части темы (о сумме цифр мтекстов), а точнее к лиспу с #422 (страница 22). Подскажите, пожалуйста, можно ли добавить к лиспу функцию, позволяющую вставлять результат в атрибут блока или ячейку таблицы?
skkkk вне форума  
 
Непрочитано 06.08.2008, 12:39
#476
VVA

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


skkkk, В атрибут можно было и лиспом #422. ТОлько выбирать надо сам атрибут
Сейчас можно вставлять в атрибут блока, ячейку таблицы, размер, мтекст, текст. Условие то же. Указавать нужно не блок или таблицу, а атрибут или текст в ячейке.
Код:
[Выделить все]
(defun c:z-calc-text-value (/ value ent obj ss)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
    ) ;_ princ
  (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  (if (not ss)
    (princ "Не выбраны объекты")
    (progn
      (setq
  value (rtos
    (apply
      (function +)
      (mapcar
        (function
          (lambda (a)
      (atof
        (vl-string-trim
          "%Uu {\\Ll}"
          (vl-string-subst
            "."
            ","
            (mip_MTEXT_Unformat (cdr (assoc 1 (entget a)))) ;_Снос форматирования
            ) ;_ vl-string-subst
          ) ;_ vl-string-trim
        ) ;_ atof
      ) ;_ lambda
          ) ;_ function
        (vl-remove-if
          (function listp)
          (mapcar (function cadr)
            (ssnamex ss)
            ) ;_ mapcar
          ) ;_ vl-remove-if
        ) ;_ mapcar
      ) ;_ apply
    ) ;_ rtos
  ) ;_ setq
      (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
      (princ (strcat "\n Сумма = " value))
      (alert (strcat "Сумма = " value))
      (setvar "ERRNO" 0)
      (while (not(TTC_Paste value nil)))
      ) ;_ progn
    ) ;_ if
  (princ)
  ) ;_ defun
(defun mip_MTEXT_Unformat ( Mtext / text Str )
  (setq Text "")
   (while (/= Mtext "")
        (cond
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
	   (setq Mtext (substr Mtext 3)))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
            (if (or(= " " (substr Text (strlen Text)))
		   (= " " (substr Mtext 3 1)))
               (setq Mtext (substr Mtext 3))
               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
	  ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                  Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
                  Mtext (substr Mtext (+ 4 (strlen Str)))))
	  (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))
	  ))
  Text
  )
(defun TTC_Paste(pasteStr keepText / nslLst vlaObj ret)
(if (setq nslLst(nentsel "\nТекст, атрибут, таблица или размер для вставки <выход> >>"))
(progn (setq ret t)(cond
((and (= 4(length nslLst))
 (= "DIMENSION"(cdr(assoc 0(entget(car(last nslLst))))))); end and
(setq vlaObj (vlax-ename->vla-object (cdr(assoc -1(entget(car(last nslLst)))))))
(setq oldStat (vla-get-Measurement vlaObj))
(if keepText
 (if (= (vla-get-TextOverride vlaObj) "")
 (setq pasteStr (strcat pasteStr (rtos oldStat (vla-get-UnitsFormat vlaObj) (vla-get-PrimaryUnitsPrecision vlaObj))))
 (setq pasteStr (strcat pasteStr (vla-get-TextOverride vlaObj)))))
(if (vl-catch-all-error-p(vl-catch-all-apply 'vla-put-TextOverride(list vlaObj pasteStr)))
  (progn (princ "\n Can't paste. Object may be on locked layer. ") (setq ret nil)))); end condition #1
((and (= 4(length nslLst))
(= "ACAD_TABLE"(cdr(assoc 0(entget(car(last nslLst))))))); end and
(setq vlaObj (vlax-ename->vla-object(car nslLst)))
(if keepText (setq pasteStr (strcat pasteStr (vla-get-TextString vlaobj))))
(if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextString(list vlaObj pasteStr)))
(progn (setq ret nil)(princ "\nError. Can't pase text. "))(entupd (car(last nslLst))))); end condition # 2
((and (= 4(length nslLst))
 (= "INSERT"(cdr(assoc 0(entget(car(last nslLst))))))); end and
 (setq ret nil)
(princ "\nCan't paste to block's DText or MText. ")); end condition #3
((and (= 2(length nslLst))
(member(cdr(assoc 0(entget(car nslLst)))) '("TEXT" "MTEXT" "ATTRIB" "ATTDEF"))); end and
(setq vlaObj (vlax-ename->vla-object(car nslLst)))
(if keepText (setq pasteStr (strcat pasteStr (vla-get-TextString vlaobj))))
(if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-TextString(list vlaObj pasteStr)))
(progn(princ "\nError. Can't pase text. ")(setq ret nil)))); end condition #4
(T (setq ret nil)(princ "\nCan't paste. Invalid object. ")); end condition #5
); end cond
); end progn
(setq ret t)); end if
  ret
);_TTC_PASTE
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.08.2008, 13:28
#477
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


VVA, с таблицей порядок, спасибо. А вот с атрибутами не пойму - не работает. Может, я не так указываю как-то? С #422 у меня тоже не выходило в атрибут вставить. Ну вот, во вложении два блока. Сумму текстов надо вставить в прямоугольник-блок. Как?
Вложения
Тип файла: dwg
DWG 2007
Чертеж.dwg (60.4 Кб, 2153 просмотров)
skkkk вне форума  
 
Автор темы   Непрочитано 06.08.2008, 14:29
#478
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


skkkk,
Эх товарищ товарищ. Да где у тебя атрибут то в блоке? Закатал текст в блок, и удивляешься - че это не работает. Введи в редакторе блоков _ATTDEF, появится окно для создания атрибута.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 06.08.2008, 14:41
#479
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Ну я почему-то считал, что текст в блоке - это и есть атрибут. Да, стыдно. Но меня никто не учил, поэтому я не расстраиваюсь. Вот тогда вопрос. Во вложении лисп (копирует тексты), так вот он может скопировать текст в текст, загнанный в блок, как у меня. Как это он делает?? Нельзя ли с #476 также научить? А про атрибуты надо почитать, не очень пока понятно, что там к чему
skkkk вне форума  
 
Автор темы   Непрочитано 06.08.2008, 15:01
#480
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Тебе мой совет, забудь про текст в блоке в таких случаях (иногда текст в блоке полезен, но не тут). Изучи атрибуты. Это не трудно. Что ты будешь делать если этот же блок надо вставить еще раз, но с другим содержанием текста? Для этого атрибут и нужен.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 06.08.2008, 15:07
#481
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Можешь подсказать ссылочку??
skkkk вне форума  
 
Автор темы   Непрочитано 06.08.2008, 15:08
#482
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


какую ссылочку?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 09.08.2008, 20:49
#483
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Ну где про атрибуты можно почитать... Хотя я книжку уже нашел, спасибо
skkkk вне форума  
 
Непрочитано 11.08.2008, 13:00
#484
OHUKC


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


привет, парниа можно ли сделать деление М-ТЕКСТОВ....аналогично суммированию и умножению????
OHUKC вне форума  
 
Непрочитано 11.08.2008, 16:20
#485
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В лиспе из #422 поменяй в строчке
Код:
плюс на нужный тебе знак, и имя команды измени, сделав несколько lsp-файлов, если хочешь, чтоб работало несколько арифм. функций
skkkk вне форума  
 
Непрочитано 11.08.2008, 16:26
#486
OHUKC


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


это я понял....а как сделать так , чтоб при произведение 2-ух чисел
результат выводился делённый на 1000????.....у меня просто в спецификации сечение развёртки в мм., общая длина в метрах, а площадь должна быть в метрах кв.....а в коде програмы не могу найти какой переменной, присваивается численное значение из строки...
OHUKC вне форума  
 
Непрочитано 11.08.2008, 22:11
#487
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Тогда старайся точнее вопрос ставить
Это сделать можно точно, но без гуру лиспа не обойтись. Можешь, пока они не пришли, попробовать вариант отсюда http://dwg.ru/f/showthread.php?t=152...EC%E5%F2%EE%EA
# 41, только в строке
Код:
[Выделить все]
(setq newstr  (+ (atof str) value))
поставь нужный знак. Надо выбрать тексты, потом набрать число, на которое разделить (в оригинале - прибавить, ясное дело). Не супер вариант, но лучше, чем вручную считать. Можно рамкой выбирать тексты и быстрым выбором. Только там результат "зеленеет", но это удобно - не перепутаешь обработанные тексты. Там найдешь строку с комментарием о номере цвета и поставить можешь нужный
skkkk вне форума  
 
Непрочитано 12.08.2008, 09:35
#488
OHUKC


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


спасибо....но хотелось бы чтоб это при умножении делалось
OHUKC вне форума  
 
Непрочитано 12.08.2008, 09:46
#489
OHUKC


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


не ...чето не получается ...ноль выдаёт
OHUKC вне форума  
 
Непрочитано 12.08.2008, 10:53
#490
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


В каком номере топика находится программа (что-то не хочется листать 25 страниц)
CB вне форума  
 
Непрочитано 12.08.2008, 10:57
#491
OHUKC


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


пост №16. страница 1.....
OHUKC вне форума  
 
Непрочитано 12.08.2008, 11:13
#492
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


А не лучше вариант из #422 на 22-й странице?
Добавлено.
Даже последняя редакция в #476, стр 24. Этот лисп может сразу форматировать обрабатываемый мтекст, также обрабатывает и тексты, атрибуты, ячейки таблицы и может менять цвет результата.

Последний раз редактировалось skkkk, 12.08.2008 в 11:51.
skkkk вне форума  
 
Непрочитано 12.08.2008, 12:05
#493
OHUKC


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


он навороченный и долго выбирать из всяких подменюшек....
мне этот больше понравился
OHUKC вне форума  
 
Непрочитано 12.08.2008, 12:47
#494
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Там же нет никаких подменюшек... А чтобы не выскакивало окно "Сумма =", достаточно просто поставить перед словом "alert" в тексте кода точку с запятой.
А что у тебя не получилось, там где одни нули, я не понял?

Уважаемые гуру, не могли бы вы помимо задачи OHUKCA немного усложнить данный лисп, чтобы он выполнял следующее: пусть есть тексты с числами a, b и c. Нужно,чтобы лисп выполнял действие (а-b):c*1000. Хотелось бы так: вызываем лисп, кликаем а, b, c, затем правой кнопкой мыши (enter), затем кликаем текст-приемник. Ну и чтобы цвет менял как в #422 и 476. Заранее благодарен:-)
skkkk вне форума  
 
Непрочитано 12.08.2008, 13:03
#495
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


По заявке OHUKC (синим - новое, красным - что закомментировали)
Код:
[Выделить все]
(defun c:z-calc-text-value (/ value ent obj ss action devide)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
    ) ;_ princ
  (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  (if (not ss)
    (princ "Не выбраны объекты")
    (progn
 
(initget "+ — * /")
(setq action (getkword "\nКакое действие произвести [+ — * /] :<+> "))
(if (not action)
 (setq action "+")
) ;_ end of if
(initget "Y N _ Н Т")
(setq devide (getkword "\nДелить результат на 1000? [Yes/No] :<No>"))
 
  (setq value
   (rtos
(/
    (apply
'((lambda () (eval (read action))))
      
;;;      (function '+)
 
      (mapcar
        (function
          (lambda (a)
      (atof
        (vl-string-trim
          "%Uu {\\Ll}"
          (vl-string-subst
            "."
            ","
            (mip_MTEXT_Unformat (cdr (assoc 1 (entget a)))) ;_Снос форматирования
            ) ;_ vl-string-subst
          ) ;_ vl-string-trim
        ) ;_ atof
      ) ;_ lambda
          ) ;_ function
        (vl-remove-if
          (function listp)
          (mapcar (function cadr)
            (ssnamex ss)
            ) ;_ mapcar
          ) ;_ vl-remove-if
        ) ;_ mapcar
      ) ;_ apply
 
(if devide 1000. 1.)
)
    
    ) ;_ rtos
  ) ;_ setq
      (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
      (princ (strcat "\n Сумма = " value))
      (alert (strcat "Сумма = " value))
      (setvar "ERRNO" 0)
      (while
  (and (not (setq  ent
       (car
         (nentsel
           (strcat
             "\n Выберите текстовый объект для записи значения <Выход>:"
             ) ;_ strcat
           ) ;_ entsel
         ) ;_ car
      ) ;_ setq
      ) ;_ not
       (equal (getvar "ERRNO") 7)
       ) ;_ and
   (setvar "ERRNO" 0)
   ) ;_ while
      (if (and ent
         (vlax-property-available-p
     (setq obj (vlax-ename->vla-object ent))
     'TextString
     ) ;_ vlax-property-available-p
  (vlax-write-enabled-p obj)      
         ) ;_ and
  (progn
    (vlax-put-property obj 'TextString value)
    (vla-put-color obj 3)  ;_Цвет текста 3 - зеленый
    (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
      ) ;_ progn
    ) ;_ if
  (princ)
  ) ;_ defun
(defun mip_MTEXT_Unformat ( Mtext / text Str )
  (setq Text "")
   (while (/= Mtext "")
        (cond
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
    (setq Mtext (substr Mtext 3)))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
            (if (or(= " " (substr Text (strlen Text)))
     (= " " (substr Mtext 3 1)))
               (setq Mtext (substr Mtext 3))
               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
   ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                  Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
                  Mtext (substr Mtext (+ 4 (strlen Str)))))
   (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))
   ))
  Text
  )
CB вне форума  
 
Непрочитано 12.08.2008, 14:10
#496
OHUKC


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


спасибо то что надо
OHUKC вне форума  
 
Непрочитано 12.08.2008, 14:24
#497
OHUKC


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


а не подскажешь, где точность изменить ????...мне до 4-ого знака надо
OHUKC вне форума  
 
Непрочитано 12.08.2008, 14:33
#498
OHUKC


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


и ещё не подскажешь , как сделать так чтоб результат при вставке не становился зелёным, а оставался такого же цвета , какого был М-Текст до вставки????
OHUKC вне форума  
 
Непрочитано 12.08.2008, 15:06
#499
OHUKC


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


с цветом разобрался , а вот с точностью чё-то не догоняю где поменять????
OHUKC вне форума  
 
Непрочитано 12.08.2008, 15:35
#500
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


попробуй добавить после первой строки в коде строки
Код:
[Выделить все]
(command "luprec" 4); включает точность до четвертого знака
(command "dimzin" 0); отключает подавление нулей
При подавлении нулей (dimzin = 8) числа вида Х.ХХХ0 будут показаны как Х.ХХХ
skkkk вне форума  
 
Непрочитано 12.08.2008, 15:44
#501
OHUKC


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


не ...не получается
OHUKC вне форума  
 
Непрочитано 12.08.2008, 15:56
#502
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


перезагрузи заново лисп или АвтоКАД
skkkk вне форума  
 
Непрочитано 12.08.2008, 15:57
#503
OHUKC


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


....конечно делал .....
не там точность где-то в коде задается...
OHUKC вне форума  
 
Непрочитано 12.08.2008, 16:02
#504
OHUKC


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


чё-то я туплю))...он по-моему ти так до 4-ого знака округляет...
но всё-равно хотелось бы узнать где точность задаётся...
OHUKC вне форума  
 
Непрочитано 12.08.2008, 17:08
#505
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Аха, а теперь измени в строке
Код:
[Выделить все]
(command "luprec" 4)
четверку на двойку, сохрани изменения в lsp-файле, загрузи его заново и попробуй.Будет два знака после запятой.
Я проверял на лиспе #495 от CB.
skkkk вне форума  
 
Непрочитано 12.08.2008, 17:31
#506
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


CB, а трудно переделать под задачу из #494?
skkkk вне форума  
 
Непрочитано 12.08.2008, 18:14
#507
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Вообще-то в данном случае за точность отвечает ф-ция (rtos number [mode [precision]]).
Код:
[Выделить все]
  (setq value
   (rtos
(/
    (apply
'((lambda () (eval (read action))))
.............................................
(if devide 1000. 1.)
)
    2 4   ;;;это надо добавить (4 - кол. знаков)
    ) ;_ rtos
  ) ;_ setq
Ну и если нужны нули (например 35.0000) тогда правильно нужно dimzin обнулить - (setvar 'dimzin 0)
CB вне форума  
 
Непрочитано 12.08.2008, 18:37
#508
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> skkk
Цитата:
не могли бы вы помимо задачи OHUKCA немного усложнить данный лисп
Данный лисп переделать нельзя, т.к. в нем совершенно другой способ выбора оъектов по сравнению с тем, что ты хочешь <кликаем а, b, c,> А сделать другой, слегка переделав данный совершенно не сложно... Правда сейчас я уже собираюсь домой, так что завтра...
CB вне форума  
 
Непрочитано 12.08.2008, 21:43
#509
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> skkk
Код:
[Выделить все]
(defun c:z-calc-text-value_1 (/ value ent obj)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
  ) ;_ end of princ
  (setq value
  (rtos
    (apply
      '(lambda (a b c) (* (abs (/ (- a b) c)) 1000.))
      (mapcar
        (function
   (lambda (a)
     (atof
       (vl-string-trim
         "%Uu {\\Ll}"
         (vl-string-subst
    "."
    ","
    (mip_MTEXT_Unformat
      (cdr (assoc 1 (entget a)))
    ) ;_Снос форматирования
         ) ;_ vl-string-subst
       ) ;_ vl-string-trim
     ) ;_ atof
   ) ;_ lambda
        ) ;_ function
        (mapcar
   '(lambda (x / obj)
      (princ (strcat "\n" x))
      (while
        (not
   (and (setq obj
        (car (entsel (princ (strcat "\r" x))))
        ) ;_ end of setq
        (vl-string-search "TEXT" (cdr (assoc 0 (entget obj))))
   ) ;_ end of and
        ) ;_ end of not
      ) ;_ end of while
      obj
    ) ;_ end of lambda
   (list
     "Текст А :"
     "Текст B :"
     "Текст C :"
   ) ;_ end of list
        ) ;_ end of mapcar
      ) ;_ mapcar
    ) ;_ apply
  ) ;_ end of rtos
  ) ;_ end of setq
  (if (vl-string-position (ascii ".") value)
    (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
  (princ (strcat "\nРезультат = " value))
  (alert (strcat "Результат = " value))
  (setvar "ERRNO" 0)
  (while
    (and (not (setq ent
       (car
         (nentsel
    (strcat
      "\n Выберите текстовый объект для записи значения <Выход>:"
    ) ;_ strcat
         ) ;_ entsel
       ) ;_ car
       ) ;_ setq
  ) ;_ not
  (equal (getvar "ERRNO") 7)
    ) ;_ and
     (setvar "ERRNO" 0)
  ) ;_ while
  (if (and ent
    (vlax-property-available-p
      (setq obj (vlax-ename->vla-object ent))
      'TextString
    ) ;_ vlax-property-available-p
    (vlax-write-enabled-p obj)
      ) ;_ and
    (progn
      (vlax-put-property obj 'TextString value)
      (vla-put-color obj 3) ;_Цвет текста 3 - зеленый
      (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
  (princ)
  ) ;_ defun
(defun mip_MTEXT_Unformat ( Mtext / text Str )
  (setq Text "")
   (while (/= Mtext "")
        (cond
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
    (setq Mtext (substr Mtext 3)))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
            (if (or(= " " (substr Text (strlen Text)))
     (= " " (substr Mtext 3 1)))
               (setq Mtext (substr Mtext 3))
               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
   ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
                  Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
                  Mtext (substr Mtext (+ 4 (strlen Str)))))
   (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))
   ))
  Text
)

Последний раз редактировалось CB, 13.08.2008 в 08:28. Причина: Редактирование кода по #512
CB вне форума  
 
Непрочитано 12.08.2008, 23:27
#510
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


CB, фрагмент комстроки:
Код:
[Выделить все]
Команда: _appload slope.lsp успешно загружено.


Команда: ; ошибка: лишняя закрывающая скобка на входе

Команда:
Команда: z-calc-text-value_1

Выберите текстовые объекты среди которых будет произведененна калькуляция
Текст А :
Текст B :
Текст C :; ошибка: no function definition: MIP_MTEXT_UNFORMAT

Команда:
:-(
А вот какая из них?? Не сообразил
После выбора текста С вылетает

Добавлено:
Посидел в лисп-редакторе, накопал лишнюю закрывающую скобку. Ctrl+[ показал, что она тут (красная):
Код:
[Выделить все]
(princ)
  ) ;_ defun
(defun mip_MTEXT_Unformat ( Mtext / text Str )
Не уверен, но кажется тут вкралась ошибочка:
Код:
[Выделить все]
(nentsel
    (strcat
      "\n Выберите текстовый объект для записи значения <Выход>:"
    ) ;_ strcat
         ) ;_ entsel
но даже после этого:
Код:
[Выделить все]
Команда: _appload slope.lsp успешно загружено.


Команда: ; ошибка: неверное имя переменной в SETQ: (IF (VL-STRING-POSITION 
(ASCII ".") VALUE) (SETQ VALUE (VL-STRING-RIGHT-TRIM ".0" VALUE)))

Команда:
Команда: z-calc-text-value_1

Выберите текстовые объекты среди которых будет произведененна калькуляция
Текст А :
Текст B :
Текст C :; ошибка: no function definition: MIP_MTEXT_UNFORMAT
:-(
Моих мозгов не хватает

Последний раз редактировалось skkkk, 13.08.2008 в 01:08.
skkkk вне форума  
 
Непрочитано 13.08.2008, 00:28
#511
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Даже 2 лишних скобки в конце ф-ции z-calc-text-value_1
Код:
[Выделить все]
..........................................
      (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
;;;) ;_ progn 
;;;    ) ;_ if
  (princ)
  ) ;_ defun
#509 исправил...
CB вне форума  
 
Непрочитано 13.08.2008, 02:05
#512
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


CB, пока я ковырялся, Вы уже исправили, зря старался в #510.
Проверил, все работает отлично. Дай Бог Вам здоровья, потому что с меня ящик. Куда доставить?? .

Только один нюанс: по задаче было (А-В)/С*1000, а в лиспе получилось +. Я нашел, где подправить, но другие форумчане вдруг запутаются.
Огромное, огромное спасибо!! Вы мне очень помогли.

Добавлено. А можно внести одну поправочку? Если результат получается отрицательным (при В>А), то он вставлялся бы в ответ "по модулю", как говорили у нас на математике в школе, т.е. без знака минус...

Последний раз редактировалось skkkk, 13.08.2008 в 03:31.
skkkk вне форума  
 
Непрочитано 13.08.2008, 08:30
#513
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> skkk
Исправлено в #509
CB вне форума  
 
Непрочитано 13.08.2008, 13:12
#514
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Спасибо, СВ, работает
skkkk вне форума  
 
Непрочитано 13.08.2008, 18:48
#515
dextron3

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


CB, помогите еще решить маленькую проблемку лиспом?
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 13.08.2008 в 21:16. Причина: слово маленькую выделил поярче
dextron3 вне форума  
 
Непрочитано 13.08.2008, 20:02
#516
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Нееее... В столь сложной проблеме СВ - не помощник
skkkk вне форума  
 
Непрочитано 13.08.2008, 21:27
#517
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> dextron3
А если по конкретнее?
CB вне форума  
 
Непрочитано 13.08.2008, 21:40
#518
dextron3

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


CB,
это придаток для лиспа из данной темы облегчающий приметивные действа, тоесть:

по типу как работал наш предыдущий лисп

Алгоритм:

1. Выберите число
2. Укажите текст вставки


Число выбирает обычное тоесть 3999, или 3000

А вставляет в текст типа: L=3200мм, заменяет только цыфру

Пример

1. Выберите число (текстовый приметив), выберим к примеру обычное число 1800

2. Укажите текст вставки, выберим к примеру текст L=200мм

после выполнения лиспа результат будет L=1800мм


буду ждать ответа,
если чегото не понятно пишите поясню,

Данный лисп нужен для того чтобы из ведомости деталей, там указаны длины цыфрами, брал длину и вствалял в спецификацию, уже с миллиметрами и т.п.

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

естественно это нужно в специальности КЖ, КМ...

за ранее спасибо...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 14.08.2008, 10:16
#519
OHUKC


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


Привет СВ, не подскажешь как сделать так, чтоб результат выводился с запятой , а не с точкой??????пост №495.....
OHUKC вне форума  
 
Непрочитано 14.08.2008, 13:46
#520
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Ищешь строки
Код:
[Выделить все]
   (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-right-trim ".0" value))
  ) ;_ if
И меняешь на
Код:
[Выделить все]
  (if (vl-string-position (ascii ".") value)
  (setq value (vl-string-subst "," "." (vl-string-right-trim ".0" value)))
  ) ;_ if
CB вне форума  
 
Непрочитано 14.08.2008, 14:05
#521
OHUKC


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


ОГРОМНОЕ СПАСИБО
OHUKC вне форума  
 
Непрочитано 14.08.2008, 17:00
#522
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> dextron3
Лисп по поводу #518. Работает и Mtext'ом
Первый текст может быть и в виде "L=234мм" - из него вытянется число и вставится во второй текст/mtext, который может быть тоже любого вида...
Код:
[Выделить все]
(defun C:TEST (/ rec-pat value obj lst-name)
  (defun rec-pat (str / rec-pat)
    (defun rec-pat (temp str pat n /)
      (cond
 ((= str "") (list temp))
 ((if (minusp n)
    (not (wcmatch (substr str 1 1) pat))
    (wcmatch (substr str 1 1) pat)
  ) ;_ end of if
  (if (/= temp "")
    (cons temp (rec-pat "" str pat (- n)))
    (rec-pat "" str pat (- n))
  ) ;_ end of if
 )
 (t
  (rec-pat (strcat temp (substr str 1 1))
    (substr str 2)
    pat
    n
  ) ;_ end of rec-pat
 )
      ) ;_ end of cond
    ) ;_ end of defun
    (rec-pat "" str "[1234567890.]" 1)
  ) ;_ end of defun
  (vl-load-com)
  (setq value
  (apply
    'strcat
    (apply
      '(lambda (a b)
  (mapcar
    '(lambda (str_b)
       (if
         (and
    (equal "" (vl-string-left-trim "0123456789." str_b))
    (not (equal (chr 46) str_b))
         ) ;_ end of and
;;;Снос форматирования с первого Mtext'а
   (apply
     'strcat
     (mapcar
       '(lambda (str_a)
          (if
     (and
       (equal
         ""
         (vl-string-left-trim "0123456789." str_a)
       ) ;_ end of equal
       (not (equal (chr 46) str_a))
     ) ;_ end of and
      str_a
      ""
          ) ;_ end of if
        ) ;_ end of lambda
       a
     ) ;_ end of mapcar
   ) ;_ end of apply
;;;-----------------------------
   str_b
       ) ;_ end of if
     ) ;_ end of lambda
    b
  ) ;_ end of mapcar
       ) ;_ end of lambda
      (mapcar
        '(lambda (a)
    (rec-pat (cdr (assoc 1 (entget a))))
  ) ;_ end of lambda
        (setq lst-name
        (mapcar
   '(lambda (x / obj)
      (princ (strcat "\n" x))
      (while
        (not
          (and
     (setq obj
     (car (entsel (princ (strcat "\r" x))))
     ) ;_ end of setq
     (vl-string-search
       "TEXT"
       (cdr (assoc 0 (entget obj)))
     ) ;_ end of vl-string-search
          ) ;_ end of and
        ) ;_ end of not
      ) ;_ end of while
      obj
    ) ;_ end of lambda
   (list
     "Выберите текст А :"
     "Выберите текст В :"
   ) ;_ end of list
        ) ;_ end of mapcar
        ) ;_ end of setq
      ) ;_ end of mapcar
    ) ;_ end of apply
  ) ;_ end of apply
  ) ;_ end of setq
  (if (vlax-write-enabled-p
 (setq obj (vlax-ename->vla-object (cadr lst-name)))
      ) ;_ end of vlax-write-enabled-p
    (progn
      (vlax-put-property obj 'TextString value)
      (vlax-release-object obj)
    ) ;_ progn
  ) ;_ if
  (princ)
) ;_ defun
CB вне форума  
 
Непрочитано 14.08.2008, 17:06
#523
OHUKC


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


а не подскажешь , какие строчки надо добавить , чтоб число вставлялось в текст вида "345,6 м.п.", заменяя тока число 345,6 а м.п.
оставляло ....?????....пост №495....
OHUKC вне форума  
 
Непрочитано 14.08.2008, 19:02
#524
dextron3

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


CB, спасибище!
а можно сделать чтобы при выборе первой цыфры както лисп давал знать о выборе, к примеру выделял или рамкой, а то в командную строку пиходится смотреть выбрал или нет узнавать
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 14.11.2008, 23:33
#525
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
Пытался добавить в код армянские термины, чтобы командой spec5d можно было рассчитать и их.
Со всем вроде получилось, а вот с фланцем не то. Армянские слова записываются к примеру так:
\U0547\U0580\U057b\U0561\U0576

Вот участок кода в который я пытаясь вклинить армянский термин

Код:
[Выделить все]
;;;======= СТАЛЬ ЛИСТОВАЯ ДЛЯ ФЛАНЦЕВЫХ ДЕТАЛЕЙ ?
    ((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ")) ;_Сталь листовая
    (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
    (setq L (str-str-lst L "Х"))
                      ;;;Вес стали для фланцев определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
                      ;;;Диаметр - большее число, длина - меньнее
                     (setq L     (mapcar 'atof L))
                     (setq Diam  (apply 'max L) ;_ диаметр
                           sH (apply 'min L) ;_ длинна
                           )
    (setq *MPROF* (STRCAT "Лист " (dwgru-string-replace (rtos Sh 2 0) ".0" "")))
                      (setq ves_det_1 (* pi 0.25 Diam Diam sH *STAL*)
                            ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                            ves_det_all (* count ves_det_1))
                    )
Вот мой вариант, который почему-то не работает

Код:
[Выделить все]
;;;======= СТАЛЬ ЛИСТОВАЯ ДЛЯ ФЛАНЦЕВЫХ ДЕТАЛЕЙ ?
    ((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ" "\U0547\U0580\U057b\U0561\U0576")) ;_Сталь листовая
    (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
    (setq L (str-str-lst L "Х"))
                      ;;;Вес стали для фланцев определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
                      ;;;Диаметр - большее число, длина - меньнее
                     (setq L     (mapcar 'atof L))
                     (setq Diam  (apply 'max L) ;_ диаметр
                           sH (apply 'min L) ;_ длинна
                           )
    (setq *MPROF* (STRCAT "Лист " (dwgru-string-replace (rtos Sh 2 0) ".0" "")))
                      (setq ves_det_1 (* pi 0.25 Diam Diam sH *STAL*)
                            ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                            ves_det_all (* count ves_det_1))
                    )
Как сделать это правильно?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 15.11.2008, 15:19
#526
dextron3

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


Red Nova, можешь показать как на армянском выглядят чертежи, а то кроме русского немецкого и английского не видел, можно скриншотами..
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 15.11.2008, 19:56
#527
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


И казахские тоже не видел?
Вложения
Тип файла: pdf Example Arm project.pdf (331.7 Кб, 192 просмотров)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 15.11.2008, 20:01
#528
dextron3

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


Red Nova, тут вообще кроме цыфр ничего не понять, у Вас с лева на право пишут? поэтому наверное лисп не работает

у нас все на русском идет еще с советского союза...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 15.11.2008, 22:37
#529
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, Это лист из старого проекта, без СПДС.
Пишут у нас конечно же с лево на право, и к работе лиспа это не имеет отношения.

VVA Я приблизительно чувствую почему у меня не выходит с кодом. В этой строчке ты записал все обозначения исключительно заглавными,
Код:
[Выделить все]
("ФЛ" "FL" "ФЛАНЕЦ")
но если в спецификации записать не ФЛАНЕЦ а Фланец, то программа это понимает. Это значит, что каким то образом происходит отождествление заглавных и прописных. Но если в лиспе записать
Код:
[Выделить все]
("ФЛ" "FL" "Фланец")
то лисп не понимает спецификаций с записями ФЛАНЕЦ или Фланец, то есть можно использовать только заглавные.
С армянским скорее всего лажа именно тут. Код не может отличить заглавные и прописные буквы армянского алфавита. Так что же делать?
Уточню также что с трубами и с профильными листами у меня все работает и на армянском. Проблема только с фланцем.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 16.11.2008, 13:58
#530
VVA

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


Перед сравнением все строки с помощью функции strcase приводятся к верхнему регистру. С русским и английским strcase работает корректно. Попробуй с армянским.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2008, 12:13
#531
nem


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


доброго времени суток. почитал тему, все интересно, но немного не мое. не подсажите лисп для подсчета мультитекстов - т.е. сколько раз текст встречается на выбраном участке. желательно, чтобы можно было заранее задать те м-тексты, которые нужно подсчитать. результат подсчета хотелось бы в табличке, но тут уж не до капризов =)

например, на чертеже есть следующие м-тексты: к1, т1, хх12, хх14, %%С100.

нужно сосчитать кол-во к1, т1, и сколько всего хх обоих типов, а диаметр 100 не считать совсем.

прошу прощения если это уже есть, а я не нашел.
nem вне форума  
 
Автор темы   Непрочитано 17.11.2008, 13:31
#532
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Сорри, не понял. Можно конкретнее, что я должен сделать?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 17.11.2008, 13:38
#533
VVA

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


Код:
[Выделить все]
(strcase "Фланец")
Вернет "ФЛАНЕЦ". А что вернет strcase если вмето "Фланец" будет армянская строка?
>nem
Диалоговая функция подсчёта вхождений текстовых символов в файле чертежа Оно?
PS Заходи по ссылке через IE
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2008, 16:00
#534
nem


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


VVA, хорошая вещь, но только для обычного текста, а м-текст не замечает...
nem вне форума  
 
Непрочитано 17.11.2008, 17:06
#535
VVA

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


nem,
1. Автор лиспа по ссылке #533
2. Еще вариант
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2008, 18:34
#536
gomer

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


http://dwg.ru/dnl/3716 - считает тексты, мтексты размеры (переопределенные)
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2008, 20:06
#537
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Беда в том, что армянские символы нужно записывать как
Код:
[Выделить все]
"\U0547\U0580\U057b\U0561\U0576"
Естественно если в ком строку ввести
Код:
[Выделить все]
Command: (strcase "\U0547\U0580\U057b\U0561\U0576")
то вернет
Код:
[Выделить все]
"UU0547UU0580UU057BUU0561UU0576"
Ну или можно так, хотя тольку не прибавится
Код:
[Выделить все]
Command: (strcase "\\U0547\\U0580\\U057b\\U0561\\U0576")
"\\U0547\\U0580\\U057B\\U0561\\U0576"
__________________
Блог
Red Nova вне форума  
 
Непрочитано 18.11.2008, 09:59
#538
nem


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


программа words плохо понимает мультитексты. в частности пробелы игнорируются. и ищет во всем файле сразу. т.е. и в модели, и на листах.
nem вне форума  
 
Непрочитано 18.11.2008, 10:21
#539
VVA

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


Red Nova, Запусти этот лисп
Код:
[Выделить все]
(strcase(cdr(assoc 1 (entget(car(entsel "\nТкни в армянский текст"))))))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 18.11.2008, 14:19
#540
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Вот скриншот.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 129
Размер:	18.4 Кб
ID:	12345  
__________________
Блог
Red Nova вне форума  
 
Непрочитано 18.11.2008, 14:33
#541
VVA

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


Попробуй добавить типа такого
("ФЛ" "FL" "ФЛАНЕЦ" "Фланец")
Попробуй запустить код #539 из редактора Visual Lispa, а не из командной строки (команда VLISP)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.11.2008, 15:47
#542
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Ну и еще в редакторе VLIDE выполни такой код:
Код:
[Выделить все]
(setq txt (cdr(assoc 1 (entget(car(entsel "\nТкни в армянский текст"))))))
(vl-string->list txt)
(mapcar 'chr (vl-string->list txt))
(vl-string->list (strcase txt))
(mapcar 'chr (vl-string->list (strcase txt)))
и скриншот результата выложи здесь (пример внизу).
Миниатюры
Нажмите на изображение для увеличения
Название: Безимени-1.jpg
Просмотров: 146
Размер:	120.3 Кб
ID:	12354  
CB вне форума  
 
Автор темы   Непрочитано 18.11.2008, 20:46
#543
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Цитата:
Попробуй добавить типа такого
("ФЛ" "FL" "ФЛАНЕЦ" "Фланец")
Не пойму как это может повлиять на армянскую спецификацию?
Цитата:
Попробуй запустить код #539 из редактора Visual Lispa, а не из командной строки (команда VLISP)
Вот что вернуло
Код:
[Выделить все]
"\U+0547\U+0580\U+057B\U+0561\U+0576"
Попробовал заправить это дело в наш код (у меня ранее было тоже но без плюсов), но бестолку...

CB,
Выдает
Код:
[Выделить все]
"\U+0547\U+0580\U+057B\U+0561\U+0576" 
(92 85 43 48 53 52 55 92 85 43 48 53 56 48 92 85 43 48 53 55 66 92 85 43 48 53 54 49 92 85 43 48 53 55 54) 
("\\" "U" "+" "0" "5" "4" "7" "\\" "U" "+" "0" "5" "8" "0" "\\" "U" "+" "0" "5" "7" "B" "\\" "U" "+" "0" "5" "6" "1" "\\" "U" "+" "0" "5" "7" "6") 
(92 85 43 48 53 52 55 92 85 43 48 53 56 48 92 85 43 48 53 55 66 92 85 43 48 53 54 49 92 85 43 48 53 55 54) 
("\\" "U" "+" "0" "5" "4" "7" "\\" "U" "+" "0" "5" "8" "0" "\\" "U" "+" "0" "5" "7" "B" "\\" "U" "+" "0" "5" "6" "1" "\\" "U" "+" "0" "5" "7" "6") 
_$
__________________
Блог

Последний раз редактировалось Red Nova, 19.11.2008 в 18:26.
Red Nova вне форума  
 
Непрочитано 19.11.2008, 16:03
#544
dextron3

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


Red Nova, с другими шрифтами проверял? ну к примеру с ивритом
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 19.11.2008, 18:28
#545
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


dextron3, До иврита пока не дошел.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.11.2008, 16:45
#546
VVA

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


Цитата:
Попробовал заправить это дело в наш код (у меня ранее было тоже но без плюсов), но бестолку...
Учти, что в коде вместо одного слеша нужно писать два. Типа такого
Код:
[Выделить все]
"\\U+0547\\U+0580\\U+057B\\U+0561\\U+0576"
Соответсвенноно шаблон
("ФЛ" "FL" "ФЛАНЕЦ" "\\U+0547\\U+0580\\U+057B\\U+0561\\U+0576")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 20.11.2008, 16:48
#547
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, CB, Если задачка тупиковая, то может как-то обойти ее? Может можно заменить все условие для фланцев? Ведь с трубами к примеру армянские символы прошли.

Добавлено
VVA,
Цитата:
Соответсвенноно шаблон
("ФЛ" "FL" "ФЛАНЕЦ" "\\U+0547\\U+0580\\U+057B\\U+0561\\U+0576")
Не помогает
__________________
Блог
Red Nova вне форума  
 
Непрочитано 20.11.2008, 16:55
#548
VVA

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


Для армянских шрифтов какой в стиле файл используешь?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.11.2008, 21:32
#549
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


>Red Nova
Дай ссылку на весь лисп, а то по фрагменту в #525 не понятно что делает ((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ")) и почему в начале двойная скобка...
CB вне форума  
 
Автор темы   Непрочитано 20.11.2008, 22:40
#550
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Вот шрифт который я использую и строка которую нужно считать как фланец.
CB,
Последняя версия в этой теме, на #449.
Вложения
Тип файла: rar Шрифт + пример.rar (40.0 Кб, 114 просмотров)
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 23.11.2008, 22:26
#551
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Может все же посмотрите прикрепленный на #550 файл? Я все в spec5d перевел на армянский, только фланец остался
__________________
Блог
Red Nova вне форума  
 
Непрочитано 24.11.2008, 08:21
#552
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


>Red Nova
Попробуй заменить в лиспе строку
Код:
[Выделить все]
((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ")) ;_Сталь листовая
на
Код:
[Выделить все]
 
((wcmatch (strcase (car WHAT)) "ФЛ*,FL*,ФЛАНЕЦ*,\U+0547\U+0580\U+057B\U+0561\U+0576") ;_Сталь листовая
причем текст, выделенный синим должен быть скопирован из VLIDE, после выполнения кода:
Код:
[Выделить все]
(strcase (cdr(assoc 1 (entget(car(entsel "\nТкни в армянский текст"))))))
CB вне форума  
 
Автор темы   Непрочитано 24.11.2008, 15:29
#553
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


CB,
Не помогает. Дело наверное в алгоритме.
По некой причине этот алгоритм не переваривает армянские буквы, а вот алгоритм расчета труб распознает их нормально.
Код:
[Выделить все]
;;;======= СТАЛЬ ЛИСТОВАЯ ДЛЯ ФЛАНЦЕВЫХ ДЕТАЛЕЙ ?
    ((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ" "\U+0547\U+0580\U+057B\U+0561\U+0576")) ;_Сталь листовая
    (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
    (setq L (str-str-lst L "Х"))
                      ;;;Вес стали для фланцев определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
                      ;;;Диаметр - большее число, длина - меньнее
                     (setq L     (mapcar 'atof L))
                     (setq Diam  (apply 'max L) ;_ диаметр
                           sH (apply 'min L) ;_ длинна
                           )
    (setq *MPROF* (STRCAT "Лист " (dwgru-string-replace (rtos Sh 2 0) ".0" "")))
                      (setq ves_det_1 (* pi 0.25 Diam Diam sH *STAL*)
                            ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                            ves_det_all (* count ves_det_1))
                    )
;;;======= ТРУБЫ КРУГЛЫЕ +
   ((vl-position (vl-string-trim  "%UuoOСсCc \t" (car WHAT)) '("ТРУБАКРУГЛАЯ" "ТР" "TR" "TP" "TР" "ТP" "ТРУБА" "\U053d\U0578\U0572." "\U053d\U0578\U0572\U0578\U057e\U0561\U056f")) ;_ТРУБЫ КРУГЛЫЕ
    (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
    (setq L (str-str-lst L "Х"))
    ;;;Вес стали для труб определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
    ;;;Диаметр - большее число, длина - меньнее
                     (setq L (mapcar 'atof L))
                     (setq Diam (apply 'max L) ;_ диаметр
                           Ts (apply 'min L) ;_ толщина стенки
                           Diam (* 0.5 Diam)    ;_внешний радиус
                           sH (- Diam Ts)    ;_внутренний радиус
                           )
(setq *MPROF* (strcat "Труба круглая " (rtos (* 2 Diam) 2 0) "х" (rtos Ts 2 0)))                    
                      (setq ves_det_1 (*  (- (* Diam Diam)(* sH sH)) DLN pi *STAL*)
                            ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                            ves_det_all (* count ves_det_1))
                    )
__________________
Блог
Red Nova вне форума  
 
Непрочитано 24.11.2008, 16:29
#554
VVA

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


Правильно, в алгоритме (именно ф-ция mark_parser)
В алгоритме заложено, что если есть UNICODE, то только ОДИН символ (диаметр или профиль)
Поэтому
1. Замени ф-цию mark_parser этой
Код:
[Выделить все]
;;;Текстовый анализатор позиции марка
(defun mark_parser (str / i buf)
 ;;;Удаляем подчеркивание и надчеркивание, пробелы, знаки табуляции 
 (setq str (vl-string-trim  "%UuoO \t" str))
 ;;;Проверяем, используются ли UNICOD символу (типа \U+EXXXX)
(setq buf "")  
 (while (= (substr str 1 3) "\\U+")
   (setq buf (strcat buf (substr str 1 7)) str (substr str 8))
   )
 (while (setq i (VL-STRING-SEARCH "\\U+" str))
   (setq str(dwgru-string-replace str (substr str (1+ i) 7) ""))
   )
   
 (setq str (vl-string-trim  "%UuoO \t" str))
  ;;;Удаляем в остатке строки символы-паразиты
  ;;; Пока что это диаметр
  ;;;Строка приведена в верхнему регисту
 (mapcar '(lambda(txt)
            (setq str(dwgru-string-replace str txt ""))
            )
         '("%%U" "%%O" "%%C" "\\U+E712")
         )
            
 (setq i 0 )
   (while (not(vl-position (substr str (setq i (1+ i)) 1)
            '("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "")
            )
              )
     )
  (if (> i 0)(setq i (1- i)))
  (list
    (strcat buf (strcase(vl-string-trim  "%UuoO \t"  (substr str 1 i))))
    (strcase(vl-string-trim  "%UuoO \t" (if (zerop i) str (substr str (1+ i)))))
    )
  )
2. Сам шаблон
Код:
[Выделить все]
;;;======= СТАЛЬ ЛИСТОВАЯ ДЛЯ ФЛАНЦЕВЫХ ДЕТАЛЕЙ ?
    ((vl-position (car WHAT) '("ФЛ" "FL" "ФЛАНЕЦ" "\\U+0547\\U+0580\\U+057В\\U+0561\\U+0576" )) ;_Сталь листовая
    (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
    (setq L (str-str-lst L "Х"))
                      ;;;Вес стали для фланцев определяем как Пи умножить на 0.5 диаметра в квадрате умножить на длину и на *STAL*
                      ;;;Диаметр - большее число, длина - меньнее
                     (setq L     (mapcar 'atof L))
                     (setq Diam  (apply 'max L) ;_ диаметр
                           sH (apply 'min L) ;_ длинна
                           )
...
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 24.11.2008, 18:58
#555
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA, Спасибо. Теперь работает
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 09.12.2008, 17:25
#556
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA
По поводу основного кода.
1. В приложенном ролике показано в чем дело. Если к примеру в столбце количество получилось наложение текстов, то когда рассчитываем только эту строку то выходит сообщение о том что в количестве столбцов есть не соответствия. А если рассчитывать сразу несколько строк, то это сообщение к сожалению не выходит, что затрудняет работу. Я в одном проекте минут 20 искал в чем ошибка, пока не врубился. Прошу изменить код так, чтобы сообщение о несоответствии количества столбцов выходило и в отмеченом случае. Еще было бы хорошо, чтобы эта строка краснела. Так можно будет оперативно ее вычислить, а не искать ошибку во всей спецификацие.

2. Прошу добавить в "Итог Работы" в конце каждого ГОСТа строку с суммой масс всех профилей, и в самом конце общюю сумму всех масс. Вот так
Код:
[Выделить все]
============= ИТОГ РАБОТЫ ==============

Класс : Арматура АС1
ГОСТ 5781-82
     Арматура d= 18  -  25.2 кг.
     Арматура d= 22  -  4.6 кг.
                     Итог  - 29.8 кг.
-------------------------------------------------
Класс : Прокат ВСТ3КП2
ГОСТ 10704-91
     Труба круглая 60х4  -  5.6 кг.
     Труба круглая 89х4  -  22.1 кг.
     Труба круглая 114х4  -  28.6 кг.
     Труба круглая 127х4  -  154.3 кг.
                     Итог  - 210.6 кг.
-------------------------------------------------
ГОСТ 19903-74
     Лист 5  -  14.4 кг.
     Лист 6  -  3.4 кг.
     Лист 8  -  9.0 кг.
     Лист 10  -  9.6 кг.
     Лист 12  -  41.2 кг.
     Лист 16  -  20.1 кг.
                     Итог  - 97.7 кг.
-------------------------------------------------
ГОСТ 8509-93
     Уголок 30Х30Х3  -  4.0 кг.
     Уголок 40Х40Х4  -  15.2 кг.
     Уголок 50Х50Х5  -  22.4 кг.
                     Итог  - 41.6 кг.
-------------------------------------------------
ГОСТ 103-76
     Полоса 4  -  1.6 кг.
                     Итог  - 1.6 кг.
-------------------------------------------------
            Общий  Итог  - 381.3 кг.
-------------------------------------------------
Вложения
Тип файла: rar CamCapture11eada_Screen.rar (32.0 Кб, 105 просмотров)
__________________
Блог
Red Nova вне форума  
 
Непрочитано 11.02.2009, 14:34
#557
acyxou


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


Перепробовал кучу программулек, как ваших так и наших англоязычных собратьев и остался разочарован.... У каждой есть свой недостаток, и нет такого чтоб выбрал одну определенную и пользуешься ей..... Нужно использовать несколько разных, потому что одна считает атрибуты, но секущей рамкой не выбирает, другая секущей рамкой выбирает, но не считает атрибуты, третья не считает размеры, четвертая позволяет вставлять резутльтат только как новый текст, пятой нужно все время что-то постоянно вводить с клавиатуры чтоб она работала.... Вобщем идей много и хороших, но все они разбросаны.... Нет чтобы собрать все в кучу.... Ну да ладно... и на том всем спасибо
__________________
Users are not stupid, they are busy.
acyxou вне форума  
 
Непрочитано 11.02.2009, 14:36
#558
VVA

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


Цитата:
Нет чтобы собрать все в кучу.
Тогда получится СПДС
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 11.02.2009, 16:29
#559
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


__________________
Блог

Последний раз редактировалось Red Nova, 15.02.2009 в 22:25.
Red Nova вне форума  
 
Непрочитано 11.02.2009, 17:11
#560
acyxou


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Тогда получится СПДС
Тоже верно
__________________
Users are not stupid, they are busy.
acyxou вне форума  
 
Автор темы   Непрочитано 23.02.2009, 17:36
#561
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,
Ну раз писать код не охота, то помоги хотябы понять как кое что сделать.
Вот сижу и пытаюсь подчинить твой код, а он не дается.
Возьмем эту часть
Код:
[Выделить все]
(princ "\n============= Итог Работы==============\n")
      (foreach klass itog
        (princ "\nКласс : ")(princ (car klass))
      (mapcar '(lambda(line)
                 (terpri)
                 (princ (car line))
                 (foreach xx (cdr line)
                   (princ "\n     ")
                   (princ (car xx))
                   (princ "  -  ")
                   (princ (cadr xx))
                   (princ " кг.")
                   )
		 (princ counter)
                 (princ "\n-------------------------------------------------")
                 )
              (cdr klass)
              )
        )
      )
      (alert "Не совпадает кол-во текста в столбцах!")
  )
)
 (if (null ACET-GEOM-TEXTBOX )(alert "Необходима установка Express Tools!"))
  )
  
(vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object)))  
(princ)
)
Хочу добавить в "Итог Работы" в конце каждого ГОСТа строку с суммой масс всех профилей, типа
Код:
[Выделить все]
-------------------------------------------------
Класс : Прокат ВСТ3КП2
ГОСТ 10704-91
     Труба круглая 60х4  -  5.6 кг.
     Труба круглая 89х4  -  22.1 кг.
     Труба круглая 114х4  -  28.6 кг.
     Труба круглая 127х4  -  154.3 кг.
                     Итог  - 210.6 кг.
-------------------------------------------------
После пары часов прокрутки лиспа я пришел к выводу что нужно написать что-то типа
Код:
[Выделить все]
(setq counter 0)
(setq counter((cadr xx) + counter))
(princ counter)
и вставить эти строчки в нужные места, но репа не варит ... И в итоге ничего не вышло. Подскажи пожалуйста.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 23.02.2009, 18:25
#562
dextron3

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


не пойму зачем тебе это, трубы и уголки по отдельности взвешивать, ведь металл стоит одинакого, да и общая масса важней
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 23.02.2009, 19:11
#563
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


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

Добавлено
Надо же, программа мне таки поддалась. Вот как надо было.

Код:
[Выделить все]
(foreach klass itog
        (princ "\nКласс : ")(princ (car klass))
      (mapcar '(lambda(line)
                 (terpri)
                 (princ (car line))
		 (setq counter 0)		 
                 (foreach xx (cdr line)
                   (princ "\n     ")
                   (princ (car xx))
                   (princ "  -  ")
                   (princ (cadr xx))
                   (princ " кг.")
		   (setq counter(+ (cadr xx) counter))
                   )
		 (princ "\n       ИТОГ  -  ")
		 (princ counter)
                 (princ " кг.")		 
                 (princ "\n-------------------------------------------------")
                 )
              (cdr klass)
              )
        )
Теперь надо подумать про общий итог

Еще добавлено

С общим итогом оказалось легче
Код:
[Выделить все]
      (princ "\n============= ИТОГ РАБОТЫ ==============\n")
      (setq counter2 0)
      (foreach klass itog
        (princ "\nКласс : ")(princ (car klass))
      (mapcar '(lambda(line)
                 (terpri)
                 (princ (car line))
		 (setq counter 0)		 
                 (foreach xx (cdr line)
                   (princ "\n     ")
                   (princ (car xx))
                   (princ "  -  ")
                   (princ (cadr xx))
                   (princ " кг.")
		   (setq counter(+ (cadr xx) counter))
                   )
		 (princ "\n     ИТОГ  -  ")
		 (princ counter)
                 (princ " кг.")		 
                 (princ "\n-------------------------------------------------")
		 (setq counter2 (+ counter2 counter))
                 )
              (cdr klass)
              )
        )
	(princ "\n     ОБЩИЙ ИТОГ  -  ")
      	(princ counter2)
        (princ " кг.")
        (princ "\n-------------------------------------------------")
      )
__________________
Блог

Последний раз редактировалось Red Nova, 23.02.2009 в 21:20. Причина: посещение музы
Red Nova вне форума  
 
Непрочитано 24.02.2009, 10:37
#564
VVA

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


Молодец. Можешь же когда захочешь. Вот мой вариант. Отличия только в названиях переменных.
Код:
[Выделить все]
      (princ "\n============= ИТОГ РАБОТЫ ==============\n")
      (setq allsum 0.0) ;;_Обнуляем массу всей стали
      (foreach klass itog
        (princ "\nКласс : ")(princ (car klass))
      (mapcar '(lambda(line / locsum)
                 (terpri)
   (setq locsum 0.0)  ;;_Обнуляем массу в пределах ГОСТа (локальную)
                 (princ (car line))
                 (foreach xx (cdr line)
                   (princ "\n     ")
                   (princ (car xx))
                   (princ "  -  ")
                   (princ (cadr xx))
     (setq locsum (+ locsum (cadr xx)))
                   (princ " кг.")
                   )
   (princ "\nИтого: ")(princ locsum)(princ " кг.")
                 (princ "\n-------------------------------------------------")
   (setq allsum (+ locsum allsum))
                 )
              (cdr klass)
              )
        )
       (princ "\n=================================================")
    (princ "\nВсего: ")(princ allsum)(princ " кг.")
    (princ "\n=================================================")
Ну и для тех кто не знаком с лиспом полный вариант (той версии, что еть у меня)
> Red Nova У меня к тебе еще одна просьба, как к зачинщику темы. Ориентироваться в 20 страницах уже тяжковато. Дай в 1-м посте ссылки на последние актуальные версии или размести их там.

Исправлена ошибка в SumTN с фиксированной высотой текстового стиля

В соответствии с #583 немного изменен алгоритм поиска новых типов. По умолчанию он ищется как для штучных материалов (болты, гайки, шайбы) Т.е. масса из базы умножается на количество. Соответсвенно добавлены перемычки по ГОСТ 948-84.

Файл sumTSW.rar - c добавлением 1% на сварку
Вложения
Тип файла: rar sumT.rar (373.2 Кб, 2323 просмотров)
Тип файла: rar sumTSw.rar (373.3 Кб, 1207 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 18.07.2011 в 14:58. Причина: Добавлено меню см. #599
VVA вне форума  
 
Автор темы   Непрочитано 24.02.2009, 18:50
#565
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


VVA,Сделал
А как на счет пункта 1 в #556? Этого я точно сам не сумею.
__________________
Блог

Последний раз редактировалось Red Nova, 24.02.2009 в 20:53.
Red Nova вне форума  
 
Непрочитано 26.02.2009, 11:43
#566
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Спасибо VVA за супер lisp

Добавил в базу арматуру А500с по СТО АСЧМ 7-93
Вложения
Тип файла: rar prokat.rar (12.0 Кб, 132 просмотров)
Piton вне форума  
 
Непрочитано 12.03.2009, 00:31
#567
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


Я не знаю что делать, sumT.LSP во всех файлах работает кроме одного, самого нужного (по закону подлости). Выбираю обьекты-enter, просит точку вставки-давлю, дальше ничего. Вот что пишет:
Цитата:
Команда: SumTN
(Округление до 2) Выберите тексты или размеры:
Результат= 36.73 с округлением= 36.73Ошибка приложения: В команду послан
неверный тип
_.copybase Базовая точка: 0,0
Выберите объекты: найдено: 1
Выберите объекты:
Команда: _.erase
Выберите объекты: найдено: 1
Выберите объекты:
Команда: _.pasteclip Повторное описание блока _ARCHTICK пропущено.
Повторное описание блока _Oblique пропущено.
Точка вставки:
Команда:
из-за чего это?
работаю в ACAD2007rus
Largo GT вне форума  
 
Непрочитано 12.03.2009, 09:47
#568
VVA

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


Largo GT,
1. Файлик покажи
2. _AUDIT в этом файле делал?
3. Вставь глючный файл в другой как блок с последующим расчленением.
4. ...
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.03.2009, 16:22
#569
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


Цитата:
Сообщение от VVA Посмотреть сообщение
Largo GT,
1. Файлик покажи
2. _AUDIT в этом файле делал?
3. Вставь глючный файл в другой как блок с последующим расчленением.
4. ...
1. Вложение 17199 план первого этажа, а таких у меня 20 штук в одном файле!
2. _AUDIT делал, 0 ошибок
3. Когда вставляю sumT.LSP работает, но все шрифты летят!!
История файла тяжела и печальна, из-за специфики работы, кочевал от одного проектировщика к другому, в версиях ACADa начиная с 12 по 2007 ! Так что строго не судите

Последний раз редактировалось Largo GT, 13.03.2009 в 08:51.
Largo GT вне форума  
 
Непрочитано 12.03.2009, 18:08
#570
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


_wblock делал?
Sleekka вне форума  
 
Непрочитано 12.03.2009, 18:37
#571
VVA

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


Largo GT, Короче при обработке текстового стиля с фиксированной высотой текста была допущена описка. В свое время не отестировал как следует, т.к. никогда так не делаю.
Исправленную версию выложил в #567
Установи текущий текстовый стиль с 0 высотой текста и работай со старой версией или скачай новую.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.03.2009, 08:50
#572
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


to Sleekka
Цитата:
Сообщение от Sleekka Посмотреть сообщение
_wblock делал?
делал

to VVA
Цитата:
Сообщение от VVA Посмотреть сообщение
Largo GT, Короче при обработке текстового стиля с фиксированной высотой текста была допущена описка. В свое время не отестировал как следует, т.к. никогда так не делаю.
Исправленную версию выложил в #567
Установи текущий текстовый стиль с 0 высотой текста и работай со старой версией или скачай новую.
текущий текстовой стиль не менял, скачал #567 все супер гуд , спасибо
Largo GT вне форума  
 
Непрочитано 19.04.2009, 21:01
#573
Denis777


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


Очень интересная и полезная тема, спасибо всем кто принял учасие в разработке! Но сложно разобраться какими командами в итоге вызывать программу и как это будет работать... объясните пж-та кому не сложно
Denis777 вне форума  
 
Непрочитано 19.04.2009, 21:48
#574
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


Цитата:
Сообщение от Denis777 Посмотреть сообщение
Очень интересная и полезная тема, спасибо всем кто принял учасие в разработке! Но сложно разобраться какими командами в итоге вызывать программу и как это будет работать... объясните пж-та кому не сложно
В ACADe запусти appload, нажми F2 увидишь такое:
Код:
[Выделить все]
Опубликовано: http:////dwg.ru//f//showthread.php?t=16987 сборка(пост) #449
Наберите в командной строке
SumTN - суммирование тестов в новый текст
SumTE - суммирование тестов в существующий текст
MulTN - умножение тестов в новый текст
MulTE - умножение тестов в существующий текст
TOKR  - округление текста
MulTC - перемножение текстов столбцами
MulTCv2 - перемножение текстов столбцами вариант 2
sumTSet - установки округления и высоты новых текстов
GSUM - рассчет групповой спецификации
SPECKG - рассчет спецификации (SPEC3 SPEC3D SPEC4 SPEC4D SPEC5 SPEC5D
SPECW - рассчет спецификации деревянных изделий (SPEC Wood
_-HYPERLINK - удаление гиперссылок (опция _Remove)
пишешь команды и следуешь подсказкам
Largo GT вне форума  
 
Непрочитано 19.04.2009, 21:56
#575
Denis777


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


Largo GT
Спасибо! на неделе опробую в полную силу на работе...
Denis777 вне форума  
 
Непрочитано 26.05.2009, 12:20
#576
danilochek13


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


Товарищи помогите!!!! можно ли переписать программу для подсчета суммы размеров, что бы вместо результата расчета выдавалась формула в текстовом виде: 3600+700+1000 и т.д. ??????????????????????????
danilochek13 вне форума  
 
Непрочитано 26.05.2009, 21:47
#577
Кулик Алексей aka kpblc
Moderator

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


danilochek13, ты еще больше вопросительных знаков поставь. Ответ: при определенном желании и возможностях - наверное, можно. Даже не наверное. Можно. Точка.
Но у меня нет ни времени, ни возможности. Особенно учитывая возможности полей вкупе с _.ddedit
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.05.2009, 09:58
#578
danilochek13


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


Кулик Алексей, спасибо за ответ..просто я ведомость отделки помещений считаю в Excel и что бы не вбивать размеры простенков вручную хотелось что бы при выделении нескольких размеров автокад выдавал формулу в текстовом виде: 1490+1120+1865+1905+1610+8200, а я бы копировал ее в Exel.
danilochek13 вне форума  
 
Непрочитано 27.05.2009, 10:55
#579
VVA

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


danilochek13,
Код:
[Выделить все]
(defun C:TEST (/ ss i lst)
  ;;for danilochek13
  ;; http://forum.dwg.ru/showthread.php?p=401934#post401934
  (vl-load-com)
  (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
    (princ "\nВыберите размеры : ")
    (princ "\nSelect dimension : ")
  ) ;_ end of if
  (if (setq ss (ssget "_:L" '((0 . "*DIMENSION"))))
    (progn
      (setq i	'-1
	    lst	nil
      ) ;_ end of setq
      (repeat (sslength ss)
	(setq lst (cons (ssname ss (setq i (1+ i))) lst))
      ) ;_ end of repeat
      (setq ss nil
	    ss (mapcar 'dim-get-text-string lst)
      ) ;_ end of setq
      (princ
	(strcat	"\n"
		(car ss)
		(apply 'strcat
		       (mapcar '(lambda (x) (strcat "+" x)) (cdr ss))
		) ;_ end of apply
	) ;_ end of strcat
      ) ;_ end of princ
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun

(defun dim-get-text-string (dim / str)
  (setq str "")
  (vlax-for item
	    (vla-item (vla-get-blocks
			(vla-get-activedocument (vlax-get-acad-object))
		      ) ;_ end of vla-get-Blocks
		      (cdr (assoc 2 (entget dim)))
	    ) ;_ end of vla-item
    (if	(vlax-property-available-p item 'Textstring)
      (setq str (vla-get-textstring item))
    ) ;_ end of if
  ) ;_ end of vlax-for
  (mip_MTEXT_Unformat str)
) ;_ end of defun
(defun mip_MTEXT_Unformat (Mtext / text Str)
  (setq MM Mtext)
  (setq Text "")
  (while (/= Mtext "")
    (cond
      ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
       (setq Mtext (substr Mtext 3)
	     Text  (strcat Text Str)
       ) ;_ end of setq
      )
      ((wcmatch (substr Mtext 1 1) "[{}]")
       (setq Mtext (substr Mtext 2))
      )
      ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
       (setq Mtext (substr Mtext 3))
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
       (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext))))
      )
      ((wcmatch (strcase (substr mtext 1 4)) "\\PQ[CRJD],\\PXQ") ;_ Add by KPblC
       (setq mtext (substr mtext (+ 2 (vl-string-search ";" mtext))))
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
       (if (or
	     (zerop (strlen Text))
	     (= " " (substr Text (strlen Text)))
	     (= " " (substr Mtext 3 1))
	   ) ;_ end of or
	 (setq Mtext (substr Mtext 3))
	 (setq Mtext (substr Mtext 3)
	       Text  (strcat Text " ")
	 ) ;_ end of setq
       ) ;_ end of if
      )
      ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
       (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
	     Text  (strcat Text (vl-string-translate "#^\\" "/^\\" Str))
	     Mtext (substr Mtext (+ 4 (strlen Str)))
       ) ;_ end of setq
      )
      (t
       (setq Text  (strcat Text (substr Mtext 1 1))
	     Mtext (substr Mtext 2)
       ) ;_ end of setq
      )
    ) ;_ end of cond
  ) ;_ end of while
  Text
) ;_ end of defun
(princ "\nType TEST in command line")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.05.2009, 17:37
#580
danilochek13


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


VVA выочень мне помогли спасибо!
Протестировал код из поста #579 в 2008 руссифицированном Автокаде и в 2007 английском работает нормально, а в 2007 англицком с СПДС выдает ошибку:
; error: no function definition: nil........видимо это из за СПДС
danilochek13 вне форума  
 
Непрочитано 29.05.2009, 11:35
#581
dextron3

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


Command:
Command: (LOAD "C:/Documents and Settings/Admin/Рабочий стол/TEST22.lsp")
Type TEST in command line"\nType TEST in command line"
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 30.05.2009, 02:20
#582
Кулик Алексей aka kpblc
Moderator

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


dextron3, вот ты это к чему?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.07.2009, 15:23
#583
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Хочу чтобы считались перемычки. В файл prokat.ves добавляю:
Код:
[Выделить все]
;;; =============== Перемычки ГОСТ 948-84  ====================
("ПЕРЕМЫЧКИ" 42 "ГОСТ 948-84;ГОСТ948-84" "ПЕРЕМЫЧКИ" "Перемычки ГОСТ 948-84" (("1ПБ10-1" 20.0)("1ПБ13-1" 25.0)))
Не считает помогите исправить ошибку
В прикрепленном файле спецификация перемычек
Вложения
Тип файла: dwg
DWG 2004
1.dwg (68.6 Кб, 3691 просмотров)
Piton вне форума  
 
Непрочитано 07.07.2009, 19:55
#584
VVA

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


Piton, База правильная. Ты добавляешь новый тип конструкции "ПЕРЕМЫЧКИ", поэтому нужно было править немного лисп. Изменил немного алгоритм поиска. Теперь по умолчанию для неопознанных он ищется как для штучных материалов (болты, гайки, шайбы) Т.е. масса из базы умножается на количество.
Обновил архив в #564. Эта же ссылка приведена в первом посте. Использовал команду Spec5 и выбирал 2 строки по 4 столбца.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.07.2009, 09:23
#585
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


VVA Спасибо работает как надо
Еслиб и Ведомость расхода стали считала было бы вообще шоколадно.
Piton вне форума  
 
Непрочитано 27.07.2009, 13:51
#586
kshatriy


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


После исспользования команд (SPEC3 SPEC3D SPEC4 SPEC4D SPEC5 SPEC5D)
масса (используемого в спецификации проката) сохраняется где-то в файле и при повторном использовании этих команд автокаду не требуется файл prokat.ves....
Подскажите пожалуйста, возможно ли удаление данных массы проката?(т.е. чтоб при каждом расчете спецификаций автокад брал массу из prokat.ves?
kshatriy вне форума  
 
Непрочитано 27.07.2009, 15:01
#587
VVA

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


kshatriy, Можно, но непонятно зачем. Ты каждый раз массу в базе корректируешь? Есть 2 варианта:
1. Обнулить переменную, в которой хранится считанная база.
Код:
[Выделить все]
(setq *PROKAT_VES_BASE* nil)
2. Перечитать базу
Код:
[Выделить все]
(_read-prokat-base)
Можно оформить командой
Код:
[Выделить все]
(defun C:RPB ()(_read-prokat-base))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.07.2009, 07:18
#588
kshatriy


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


пару раз пришлось корректировать...
зачем:пробую сделать (по аналогии) команду для подсчета длин проката.
переименовал sumТ (и несколько команд в нутри него),дублировал и переименовал prokat.vec, (массу всех видов проката=1).

1. Обнулить переменную, в которой хранится считанная база. - то что нужно!!! куда в лиспе етот код нужно вставить?

Последний раз редактировалось kshatriy, 28.07.2009 в 08:34.
kshatriy вне форума  
 
Непрочитано 28.07.2009, 15:22
#589
VVA

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


Сразу после
Код:
[Выделить все]
(defun C:Нужная_Команда ( )
   (setq *PROKAT_VES_BASE* nil)
 ....
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.07.2009, 10:28
#590
kshatriy


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


VVA ,сделал так:
Код:
[Выделить все]
(defun C:SPEC5 ()
   (setq *PROKAT_VES_BASE* nil)(speckg "5")(princ))
(defun C:SPEC5D ()
   (setq *PROKAT_VES_BASE* nil)(speckg "5D")(princ))
(defun C:SPEC4 ()
   (setq *PROKAT_VES_BASE* nil)(speckg "4")(princ))
(defun C:SPEC4D ()
   (setq *PROKAT_VES_BASE* nil)(speckg "4D")(princ))
(defun C:SPEC3 ()
   (setq *PROKAT_VES_BASE* nil)(speckg "3")(princ))
(defun C:SPEC3D ()
   (setq *PROKAT_VES_BASE* nil)(speckg "3D")(princ))
(defun C:SPECKG ( / ret)
   (setq *PROKAT_VES_BASE* nil)
   (setq ret (mydcl-i "Вариант расчета спецификации. Количество стролбцов"
-удаляю prokat.ves
-SPEC5......команда работает без prokat.ves
в чем может быть проблема?
Вложения
Тип файла: dwg
DWG 2007
Спецификация.dwg (125.8 Кб, 3629 просмотров)
kshatriy вне форума  
 
Непрочитано 29.07.2009, 10:45
#591
VVA

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


Могу предположить, что где-то есть двойник prokat.ves. Набери
Код:
[Выделить все]
(findfile "prokat.ves")
и посмотри находит ли он файл и, если да, то где?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.07.2009, 10:58
#592
kshatriy


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Могу предположить, что где-то есть двойник prokat.ves. Набери
Код:
[Выделить все]
(findfile "prokat.ves")
и посмотри находит ли он файл и, если да, то где?
"nil" ....здесь я сам запутал немного..вариант плохой...
можно ли это оптимизировать ?(переделал с пластин)
Код:
[Выделить все]
	 ;;;======= Дерево (Брус или Доска) +
   ((vl-position (car WHAT) '( "ДОСКА" "БРУС" )) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "БРУС") "Брус " "Доска ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	 	 ;;;======= Дерево (Подкладка или Планка) +
   ((vl-position (car WHAT) '( "ПОДКЛАДКА" "ПЛАНКА" )) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "ПОДКЛАДКА") "Подкладка " "Планка ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	  ;;;======= Дерево (Стропильная нога) +
   ((vl-position (car WHAT) '( "СТРОПИЛЬНАЯ" "ДИАГОНАЛЬНАЯ")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "СТРОПИЛЬНАЯ") "Стропильная " "Диагональная ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	  ;;;======= Дерево (Распределительный брус и Подкладная доска) +
   ((vl-position (car WHAT) '( "РАСПРЕДЕЛИТЕЛЬНЫЙ" "ПОДКЛАДНАЯ")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
     (setq *MPROF* (STRCAT (if (= (car WHAT) "РАСПРЕДЕЛИТЕЛЬНЫЙ") "Распределительный " "Подкладная ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	  ;;;======= Дерево (Подкос или Прогон) +
   ((vl-position (car WHAT) '( "ПОДКОС" "ПРОГОН" )) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "ПОДКОС") "Подкос " "Прогон ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	  ;;;======= Дерево (Накладка или Стойка) +
   ((vl-position (car WHAT) '( "СТОЙКА" "НАКЛАДКА")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "СТОЙКА") "Стойка " "Накладка ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	   ;;;======= Дерево (Кобылка или Мауэрлат) +
   ((vl-position (car WHAT) '( "КОБЫЛКА" "МАУЭРЛАТ")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "КОБЫЛКА") "Кобылка " "Мауэрлат ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	 	;;;======= Дерево (Опорный или Угловой) +
   ((vl-position (car WHAT) '( "ОПОРНЫЙ" "УГЛОВОЙ")) ;_Сталь листовая
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "ОПОРНЫЙ") "Опорный " "Угловой ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	 	 	;;;======= Дерево (Затяжка или Связь) +
   ((vl-position (car WHAT) '( "ЗАТЯЖКА" "СВЯЗЬ")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "ЗАТЯЖКА") "Затяжка " "Связь ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
     )
	 ;;;======= Дерево (Обрешетка или Брусок) +
   ((vl-position (car WHAT) '( "ОБРЕШЕТКА" "БРУСОК")) ;_Дерево
     (setq L (vl-string-translate "X" "Х" (car(str-str-lst (cadr what) " ")))) ;;;_ Заменяем  английское X на русское Х на у первых символов до пробела
     (setq L (str-str-lst L "Х"))
    (setq *MPROF* (STRCAT (if (= (car WHAT) "ОБРЕШЕТКА") "Обрешетка " "Брусок ")
                          (dwgru-string-replace (rtos (apply 'min (mapcar 'atof L)) 2 1) ".0" "")
                          ))
     (if (= (length L) 3)(setq DLN 1))
     (setq ves_det_1 (* (apply '* (mapcar 'atof L)) DLN *STAL*  0.0001273885)
           ves_det_1   (if (_get_sumT_Ves1)(atof(_sumT_Ves_okr ves_det_1)) ves_det_1)
                    ves_det_all (* count ves_det_1))
prokat.ves
Код:
[Выделить все]
;;; =============== Дерево ГОСТ 8486-86*  ====================
("БРУС" 43 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ДОСКА" 44 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ПЛАНКА" 45 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ПОДКЛАДКА" 46 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("СТРОПИЛЬНАЯ" 47 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ПОДКОС" 48 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ДИАГОНАЛЬНАЯ" 49 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("РАСПРЕДЕЛИТЕЛЬНЫЙ" 50 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ПОДКЛАДНАЯ" 51 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("СТОЙКА" 52 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("НАКЛАДКА" 53 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("КОБЫЛКА" 54 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("МАУЭРЛАТ" 55 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ОПОРНЫЙ" 56 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("УГЛОВОЙ" 57 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ОБРЕШЕТКА" 58 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("БРУСОК" 59 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("ЗАТЯЖКА" 60 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
("СВЯЗЬ" 61 "ГОСТ 8486-86;ГОСТ8486-86;ГОСТ 8486-86*;ГОСТ8486-86*" "Дерево_м3" "Дерево по ГОСТ 8486-86" (0))
выглядит коряво но считает дерево (м3) ч/з SPEC5

Последний раз редактировалось kshatriy, 29.07.2009 в 14:53.
kshatriy вне форума  
 
Непрочитано 13.05.2011, 13:02
#593
MrChert

Студент ПГС
 
Регистрация: 03.09.2010
Сообщений: 39
<phrase 1= Отправить сообщение для MrChert с помощью Skype™


Прошу меня извинить, некогда читать весь топик, можно в двух словах, как юзать данную тулзу?
Загрузил в кад sumT.LSP, какие дальше выполнять действия, чтобы суммировать данные из МТекста?
MrChert вне форума  
 
Непрочитано 13.05.2011, 14:56
1 | #594
VVA

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


Нажми F2 и почитай команды
Цитата:
Наберите в командной строке
SumTN - суммирование тестов в новый текст
SumTE - суммирование тестов в существующий текст
MulTN - умножение тестов в новый текст
MulTE - умножение тестов в существующий текст
TOKR - округление текста
MulTC - перемножение текстов столбцами
MulTCv2 - перемножение текстов столбцами вариант 2
sumTSet - установки округления и высоты новых текстов
GSUM - рассчет групповой спецификации
SPECKG - рассчет спецификации (SPEC3 SPEC3D SPEC4 SPEC4D SPEC5 SPEC5D
SPECW - рассчет спецификации деревянных изделий (SPEC Wood
_-HYPERLINK - удаление гиперссылок (опция _Remove)
Твои красные
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.05.2011, 07:44
#595
MrChert

Студент ПГС
 
Регистрация: 03.09.2010
Сообщений: 39
<phrase 1= Отправить сообщение для MrChert с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
Нажми F2 и почитай команды
Не получается. У меня много МТекстов с цифрами, тексты расположены под разными углами и с подчеркиванием. Загрузил сию прогу в кад, выделил тексты, в консоль вбил команду SumTN, в итоге:
Цитата:
Команда: SumTN
Неизвестная команда "SUMTN". Для вызова справки нажмите F1.
Подскажите, что не так делаю?
MrChert вне форума  
 
Непрочитано 14.05.2011, 09:47
1 | #596
VVA

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


Цитата:
Сообщение от MrChert Посмотреть сообщение
Подскажите, что не так делаю?
После загрузки и нажатия F2 должен увидеть то, что я дал в цитате #594
Подробнее про загрузку читай по ссылке в моей подписи
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.07.2011, 16:51
#597
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Скачала лисп sumT.LSP. Большое спасибо разработчикам.
Хотелось бы сделать кнопку, чтобы удобнее вызывать команду. Нужно писать макрос для каждой команды отдельно? Как может выглядеть макрос кнопки для sumT.LSP? Меня интересуют кнопки для команд SumTN, SumTE.
__________________
AutoCAD 2014
Nata1 вне форума  
 
Непрочитано 14.07.2011, 18:46
#598
VVA

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


Цитата:
Сообщение от Nata1 Посмотреть сообщение
Нужно писать макрос для каждой команды отдельно?

Цитата:
Сообщение от Nata1 Посмотреть сообщение
Как может выглядеть макрос кнопки для sumT.LSP? Меня интересуют кнопки для команд SumTN, SumTE.
Теория http://dwg.ru/pub/6 и http://dwg.ru/pub/9

Практика
Код:
[Выделить все]
^C^C(if (null C:SumTN)(load "sumT.lsp"));sumTN;
Код:
[Выделить все]
^C^C(if (null C:SumTE)(load "sumT.lsp"));sumTE;
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.07.2011, 19:23
#599
gomer

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


Добавлю свои 5 копеек...
Выкладываю SumT c меню и панелью инструментов...
Способ установки стандартный:
1. распаковать с помощью 7z 9.20;
2. прописать путь к папке, куда распаковали архив;
3. загрузить меню (прилагается файл SumT.mnu)

зы автору респект за так сказать код...
зы зы и меня тоже не
______________________________________________________________
18.06.2011
- Обновлены шрифты mipgost.shx и mipgost.ttf, теперь они поддерживают украинские буквы (благодаря VVA)
- немного покопался в коде... надеюсь все работает, как прежде (добавил функцию ss->vla-list, преобразующую в список vla-объектов...
- убрал файл CS_Gost2304.shp
Вложения
Тип файла: zip sumTV82.zip (375.1 Кб, 260 просмотров)

Последний раз редактировалось gomer, 18.07.2011 в 20:02.
gomer вне форума  
 
Непрочитано 15.07.2011, 08:14
#600
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Спасибо, добрые люди.
__________________
AutoCAD 2014
Nata1 вне форума  
 
Непрочитано 15.07.2011, 09:07
#601
VVA

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


gomer, Offtop: Я по просьбе Alan'a добавил в mipgost украинские буквы. Осталось добавить "гапка". Это я к mipgost в архиве. Следи за обновлением mipgost
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.07.2011, 18:26
#602
gomer

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


Offtop: А ttf шрифт соответствует shx? у него более ранняя дата изменения!
gomer вне форума  
 
Непрочитано 15.07.2011, 19:30
#603
VVA

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


Offtop: Shx выложил. TTF пока не изменял.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.07.2011, 19:38
#604
gomer

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


Offtop: Собственно, я архив перезалью, не вопрос, просто не хочется обижать поклонников трутайпа
gomer вне форума  
 
Непрочитано 18.07.2011, 14:07
#605
VVA

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


gomer, Offtop: Шрифт ttf посмотрел. Украинские буквы там были кроме Э (наоборот) заглавной. Добавил и выложил в шрифты
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.07.2011, 20:05
#606
gomer

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


обновил архив... надеюсь все работает
gomer вне форума  
 
Непрочитано 10.04.2012, 09:03
#607
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Установила себе sumT, появилась панель с кнопками, а у двух кнопок вместо иконок знаки вопросов: "Перемножение текстов столбцами" и "Перемножение текстов столбцами (вариант 2)". Посмотрела в CUI, там обозначено, что файлы иконок для этих команд MulTC.bmp и MulTCv2.bmp. В архиве программы этих бмп-шек не нашла. Поделитесь, пожалуйста, иконками для этих команд.
__________________
AutoCAD 2014
Nata1 вне форума  
 
Автор темы   Непрочитано 10.04.2012, 09:07
#608
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Nata1
Прикрепляю меню и иконки что стоят у меня.
Вложения
Тип файла: rar SPEC bmp+mnu.rar (30.5 Кб, 153 просмотров)
Red Nova вне форума  
 
Непрочитано 10.04.2012, 09:27
#609
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Red Nova, спасибо, но там нет иконок на MulTC.bmp и MulTCv2.bmp - перемножение текстов столбцами.
Я себе несколько иконок переделала.
Вложения
Тип файла: rar Иконки для SumT мои.rar (9.4 Кб, 99 просмотров)
__________________
AutoCAD 2014
Nata1 вне форума  
 
Автор темы   Непрочитано 10.04.2012, 09:29
#610
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


А если внимательно посмотреть?
MulTC.bmp имеется.
Red Nova вне форума  
 
Непрочитано 10.04.2012, 09:33
#611
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Где? В Support? Посмотрела в C:\Documents and Settings\Имя пользователя\Application Data\Autodesk\AutoCAD 2009\R17.2\rus\Support\Icons, там вообще иконок нет никаких, пусто. Может, у меня SumT не совсем до конца установился?

Red Nova, открой секрет, где иконки находятся?
__________________
AutoCAD 2014

Последний раз редактировалось Nata1, 10.04.2012 в 09:41.
Nata1 вне форума  
 
Автор темы   Непрочитано 10.04.2012, 09:46
#612
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


#609, attachment ))
Red Nova вне форума  
 
Непрочитано 10.04.2012, 09:50
#613
Nata1

Инженер
 
Регистрация: 10.11.2008
Владимирская обл., пос. Вольгинский
Сообщений: 147


Ой, правда, есть.
-----
Я себе такие иконки сделала.
Вложения
Тип файла: rar Иконки для MulTC мои.rar (9.2 Кб, 125 просмотров)
__________________
AutoCAD 2014

Последний раз редактировалось Nata1, 10.04.2012 в 13:05. Причина: Добавление вложения
Nata1 вне форума  
 
Непрочитано 24.04.2012, 20:04
#614
kfstroj


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


VVA,
Возможноли как-то изменить код программы, чтобы в функции "перемножение столбцами" (вариант выбора 1) перемножение происходило не столбцами, а строками (простите за корявость). Т.е. я хочу выделять не вертикальные столбцы цифр, а горизонтальные строки цифр. Я так понимаю сейчас перемножаются цифры со схожими координатами по вертикали? А можно чтоб было по горизонтали?
Я не пользуюсь командами рассчета спецификаций (вообще и не буду), мне просто нужно перемножать строки, причем только по 1 варианту. Т.е. код программы где идет рассчет спецификаций мне не интересен и не нужен.
Пользуюсь также вашей функцией "округление" и если надо "параметры сумирования" - очень удобно.
А вот в функции "сложения в новый/существующий текст" было бы очень удобно видеть какие цифры складываются (хотябы перечисление, а еще лучше в порядке выделения), подобно тому как выводится в командной строке действия перемножения при перемножении по столбцам.
Думаю это было бы полезно не только мне...
Помогите мне с этим, если возможно. Спасибо.
kfstroj вне форума  
 
Непрочитано 09.10.2012, 13:41
#615
Lukash

Архитектор, Журналист
 
Регистрация: 25.12.2011
МО
Сообщений: 13


Ребята спасибо большое за SumTE очень полезная функция!

Научите пожалуйста как сделать чтобы SumTE автоматически считал сумму и результат выводил в окне Свойств выделенного объекта.

Вобщем хочется чтобы работало как GeomProps Александра Ривилиса
Lukash вне форума  
 
Непрочитано 23.10.2013, 06:05
#616
ander

проектирование
 
Регистрация: 01.11.2006
Кемерово
Сообщений: 2,891


Здравствуйте, взял комплект из поста #72
есть 2 вопроса:
1.как сделать, чтобы в ответе прописывалась не точка, а запятая?
2.как отрегулировать точность после запятой по умолчанию?
ander вне форума  
 
Автор темы   Непрочитано 23.10.2013, 09:27
#617
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


sumTSet
Red Nova вне форума  
 
Непрочитано 23.10.2013, 13:59
#618
ander

проектирование
 
Регистрация: 01.11.2006
Кемерово
Сообщений: 2,891


Red Nova, там написано про новые, это ко всем? И как этим пользоваться? Мне нужно в коде, чтобы было изменено.
А что насчет запятой?
ander вне форума  
 
Автор темы   Непрочитано 23.10.2013, 14:05
#619
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


ander Это ответ на твой вопрос. Посмотри тот же пост #72 внимательно. Команда sumTSet в нем указанна. Позволяет настроить параметры которые ты спрашиваешь.

Код:
[Выделить все]
Command: _sumtset
Количество знаков округления <1 >:
Округлять при расчете массы всего массу единицы до установленных знаков округления? [Да/Нет]<Да>:
Высота новых текстов или [Текущая/как в Выбранных] <2.0 >:
Разделитель целой и дробной части [Точка/Запятая/Системный] <системный>:
Red Nova вне форума  
 
Непрочитано 23.10.2013, 14:09
#620
ander

проектирование
 
Регистрация: 01.11.2006
Кемерово
Сообщений: 2,891


Red Nova, спасибо, буду разбираться.

\\посмотрел, команда предлагает только округление и высоту текста
Разделителя целой и дробной части нет.
Возможно, команда дописывалась и что-то нужно заменить?

Понятно, нужно использовать последнюю версию

Только запятая не работает, все равно точку ставит (при заданной в винде точке, если поставить запятую, использует запятую). Что можно сделать?

\\похоже, это проблема 8-ки (8.1), на 7-ке проблем с разделителем нет.

Последний раз редактировалось ander, 24.10.2013 в 15:49.
ander вне форума  
 
Непрочитано 22.09.2014, 12:17
#621
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Добавьте пожалуйста возможность при формирование суммы отображать все слагаемые и их подсвечивать.

Последний раз редактировалось sdv79, 22.09.2014 в 13:20.
sdv79 вне форума  
 
Непрочитано 23.09.2014, 03:40
#622
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


О каком именно коде идет речь? И как подсвечивать? Пунктиром? Цветом? Пунктиром слагаемые, вроде, и так подсвечиваются.
skkkk вне форума  
 
Непрочитано 23.09.2014, 10:18
#623
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Копировал из шапки http://forum.dwg.ru/showpost.php?p=359575&postcount=564, sumT.rar. Если есть другие варианты или кто то поддерживает актуальную версию, дайте ссылку.
Не принципиально как подсвечивать, главное видно. Подсветку или временная рамка до регенерации/кнопка esc/повтор команды, осуществить после расчета, дабы видеть выбранный результат, в качестве проверки знать что не упустил.
sdv79 вне форума  
 
Непрочитано 20.08.2015, 10:49
#624
Gvion-pin


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


Привет всем. У меня проблема решил в файл prokat.ves добавить ГОСТ 8645-68 проката трубы прямоугольной, а макрос продолжать считать по формуле.
Я не против его расчетов, если бы они соответствовали ГОСТу, как заставить макрос взять из базы веса стандарта?
Gvion-pin вне форума  
 
Непрочитано 20.08.2015, 10:58
#625
Кулик Алексей aka kpblc
Moderator

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


Gvion-pin, чего-чего?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.08.2015, 11:23
#626
Gvion-pin


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


Речь идет про макрос sumT
Изменил в файле prokat.ves строчку "("П" 18 "ГОСТ 8645-68;ГОСТ 8645-68" "Вст3кп2" "Трубы стальные прямоугольные по ГОСТ 8645-68" (("15х10х1" 0.348)........))"

Но макрос все равно считает сам по формуле, и получается результат не корректный(((((
Вложения
Тип файла: rar prokat.rar (14.6 Кб, 51 просмотров)
Gvion-pin вне форума  
 
Непрочитано 21.08.2015, 09:20
#627
Кулик Алексей aka kpblc
Moderator

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


Gvion-pin,
Цитата:
Сообщение от Gvion-pin Посмотреть сообщение
Речь идет про макрос sumT
А где ссылка на "макрос"? Или ты предлагаешь рыскать по всему форуму (допускаю, что не только по этому форуму), чтобы его найти?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.08.2015, 10:47
#628
Gvion-pin


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




Этот макрос в шапке темы вот по этому не подумал выложить отдельно((((

вот ссылка на макрос http://forum.dwg.ru/showpost.php?p=359575&postcount=564
Gvion-pin вне форума  
 
Непрочитано 16.05.2016, 12:44
#629
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


Подскажите по макросу SumT.
Вопрос по подсчету массы арматуры.
В файле prokat.ves есть базы арматуры с весами. В строках спецификации, которые не попадают в значения базы или с другим обозначением, масса арматуры считается по формуле. В формуле используется значение пи, которое принимается равным 3,14. Можно ли както изменить значение пи, т.к. корректный вес получается при пи=3,14159. Пробовал менять в лиспе sumt.lsp "pi" на "3,14159" - результата нет.

Сейчас посмотрел - лисп автоматически округляет значения пи до 2-х знаков. Как снять это округление - не знаю.

Последний раз редактировалось Franco13, 16.05.2016 в 13:49. Причина: Потестировал варианты
Franco13 вне форума  
 
Непрочитано 16.05.2016, 13:36
#630
Кулик Алексей aka kpblc
Moderator

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


Вообще-то в lisp'e pi - константа.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.05.2016, 14:46
#631
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


Я ошибся, лисп все считает точно, дело в округлении линейной массы арматуры.
Код:
[Выделить все]
          (setq Errcod 4 ves_det_1 (* pi 0.25 Diam Diam DLN *STAL*)
             ves_det_1   (if (_get_sumT_Ves1)(atof(rtos ves_det_1 2 (_get_sumT_Okr))) ves_det_1)
             ves_det_all (* count ves_det_1))
Тогда возникает вопрос:
Можно ли в формуле округлить это значение до трех знаков - pi 0.25 Diam Diam *STAL*, и затем умножить на DLN.
Franco13 вне форума  
 
Непрочитано 16.05.2016, 14:55
#632
Кулик Алексей aka kpblc
Moderator

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


См.справку по rtos
И на форуме (кажется, в "Готовых программах" был код по правильному округлению значений.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.05.2016, 15:49
#633
VVA

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


Цитата:
Сообщение от Franco13 Посмотреть сообщение
Я ошибся, лисп все считает точно, дело в округлении линейной массы арматуры
Задай с помощью команды sumTSet требуемую точность
Цитата:
sumTSet - установки округления и высоты новых текстов
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.05.2016, 15:59
#634
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


Цитата:
Сообщение от VVA Посмотреть сообщение
Задай с помощью команды sumTSet требуемую точность
Нет, это я конечно знаю, что с помощью этой команды я могу округлять массу единицы и общую массу.
Мне нужно, чтобы в этой формуле (* pi 0.25 Diam Diam DLN *STAL*) произведение ( pi 0.25 Diam Diam *STAL*) всегда округлялось до трех знаков (независимо от команды sumTSet) - это будет линейная масса которая будет совпадать со значениями ГОСТа.
Franco13 вне форума  
 
Непрочитано 16.05.2016, 18:24
#635
VVA

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


Цитата:
Сообщение от Franco13 Посмотреть сообщение
в этой формуле (* pi 0.25 Diam Diam DLN *STAL*) произведение ( pi 0.25 Diam Diam *STAL*) всегда округлялось до трех знаков (независимо от команды sumTSet) -
Цитата:
Сообщение от Franco13 Посмотреть сообщение
Можно ли в формуле округлить это значение до трех знаков - pi 0.25 Diam Diam *STAL*, и затем умножить на DLN.
Если я правильно понял, то замени
Код:
[Выделить все]
(* pi 0.25 Diam Diam DLN *STAL*)
на
Код:
[Выделить все]
(* (atof(rtos (* pi 0.25 Diam Diam *STAL*) 2 3)) DLN)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.05.2016, 20:59
#636
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


Не получается, пробовал разные варианты. Почему то в результатах ставит прочерки.
Franco13 вне форума  
 
Непрочитано 17.05.2016, 14:05
#637
VVA

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


Цитата:
Сообщение от Franco13 Посмотреть сообщение
Не получается
Нужен код или ссылка на пост, где он опубликован и dwg файл с примером
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.05.2016, 15:51
#638
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


VVA, макрос в посте #564 (без сварки).
Пример файла ниже.
Вложения
Тип файла: dwg
DWG 2010
Пример.dwg (175.6 Кб, 41 просмотров)
Franco13 вне форума  
 
Непрочитано 20.05.2016, 03:35
#639
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вообще-то в lisp'e pi - константа.
вообще-то это не так
(setq pi 4) прекрасно работает
gomer вне форума  
 
Непрочитано 20.05.2016, 08:03
#640
Franco13


 
Регистрация: 11.08.2007
Москва
Сообщений: 48


Решил проблему немного по другому.
Поменял в базе данных prokat.ves строку, добавил промежуточные диаметры, поставил обозначение 1, 2.
Спасибо за лисп.
Franco13 вне форума  
 
Непрочитано 20.05.2016, 08:13
#641
trushev


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


Цитата:
Сообщение от gomer Посмотреть сообщение
вообще-то это не так
(setq pi 4) прекрасно работает
Интересно, а какое тогда значение у константы?
trushev вне форума  
 
Непрочитано 20.05.2016, 08:24
#642
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от gomer Посмотреть сообщение
(setq pi 4) прекрасно работает
Ну так можно и (setq nil t) запустить Если ума палата...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.05.2016, 09:30
#643
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ну так можно и (setq nil t)
А, дудки! Защищенный символ...
Цитата:
Сообщение от trushev Посмотреть сообщение
а какое тогда значение у константы?
четыре
Вообще в лиспе принято константы обрамлять плюсами, а глобальные переменные звездочками, инициализировать и в начале файла и оснащать уникальными приставками
gomer вне форума  
 
Непрочитано 23.05.2016, 10:05
#644
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от gomer Посмотреть сообщение
А, дудки! Защищенный символ...
Типа pi не защищенный. У тебя такие настройки, так что не надо
Цитата:
Сообщение от gomer Посмотреть сообщение
в лиспе принято константы обрамлять плюсами, а глобальные переменные звездочками, инициализировать и в начале файла и оснащать уникальными приставками
Таких явных правил в AutoLISP нет. Это уже больше добрая воля лиспописателей
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.05.2016, 08:11
#645
trushev


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


Цитата:
Сообщение от gomer Посмотреть сообщение
четыре
Offtop: Вспомнился Задорнов.
trushev вне форума  
 
Непрочитано 20.05.2019, 11:52
#646
posetitel


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


подниму старую тему.
в лиспе из сообщений подсчет ведется, если в спецификации число указано текстом и только в рамках одной таблицы.
а можно как-нибудь дополнить лисп, чтобы он считывал данные из таблиц промежуточных спецификаций в модели и заполнял сводную.
данные в промежуточных таблицах могут быть или тегами блока, или мультитекстом в начерченной таблице, или текстом в начерченной таблице, или значением в таблице автокада, как удобнее организовать лисп, под него и подстрою уже заполнение таблиц.
пример файла с вариантами и чего требуется прилагаю.
Вложения
Тип файла: dwg
DWG 2013
На форум.dwg (296.8 Кб, 60 просмотров)
posetitel вне форума  
 
Непрочитано 20.05.2019, 14:06
#647
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


а если через связь с экселем - можно же и обратно из акада в эксель обновленную таблицу выгружать. А в экселе собирайте уже что нужно.
Сергей812 вне форума  
 
Непрочитано 20.05.2019, 14:18
#648
posetitel


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


связь с экселем - там свои нюансы, не совсем то
хотел бы лиспом по чертежу пробежать, просмотрел позиции, умножил на коэффициент и выгрузил в другую табличку
posetitel вне форума  
 
Непрочитано 02.02.2020, 15:44
#649
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


Здравствуйте!
Давно пользуюсь коротеньким удобным лиспом для суммирования чисел.
Недавно понадобилось подсчитать числа в Мтекстах, окружённые буквами и другими знаками.
Увидел здесь такую строчку:

(WCMATCH "*L=*"); определяем длину

Догадался, что это где-то рядом с моей "хотелкой", но куда и как вставить её, не знаю.
Прошу помощи, помогите усовершенствовать код.
В приложенном чертеже необходимо сложить все длины, т.е. все числа между "L=" и "мп". Пару-тройку чисел я закрасил красным (все раскрашивать поленился).
Одновременно макрос не должен, при выделении чертежа рамкой, суммировать лишние числа (закрашены синим).
Возможно, что в некоторых Мтекстах нужные для суммирования числа имеют лишние пробелы слева или справа. Это тоже надо учесть в макросе
Спасибо.

p.s. в идеале хорошо бы общую сумму вставить первым числом в таблице (на листе в ведомости красное число). Но, если этот идеал потребует значительного усложнения макроса, то не нужно.
p.p.s уже в конце своего поста подумал: а, может быть, в самой ячейке таблицы можно вставить соответствующую формулу и обходиться без лиспа?
Подскажите, пожалуйста.
Вложения
Тип файла: lsp Sum.lsp (509 байт, 130 просмотров)
Тип файла: dwg
DWG 2010
111.dwg (615.3 Кб, 68 просмотров)
MrBrown вне форума  
 
Непрочитано 02.02.2020, 21:57
1 | #650
VVA

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


Пробуй две команды SUM1 и SUMT1
Код:
[Выделить все]
;_*** Сумма числовых значений ***
;_ https://forum.dwg.ru/showthread.php?p=1852137#post1852137

(defun c:sum1 (/ fld)
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z "L=")))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (vl-remove-if-not
              '(lambda (x)
                 (vl-string-search "L=" x)
               ) ;_ end of lambda
              (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              ) ;_ end of mapcar
            ) ;_ end of vl-remove-if-not
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ
  (princ)
)
(defun c:sumT1 (/ fld tstyle txt pt tblobj tblset row col)
  (vl-load-com)
  (or *TEXTSIZE* (setq *TEXTSIZE* (getvar "TEXTSIZE")))
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z "L=")))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (vl-remove-if-not
              '(lambda (x)
                 (vl-string-search "L=" x)
               ) ;_ end of lambda
              (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              ) ;_ end of mapcar
            ) ;_ end of vl-remove-if-not
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ

(setvar "cmdecho" 0)
(setq tstyle (getvar "TEXTSTYLE")) ;_Стиль текста Стиль должен существовать
    ;_ Создаем текст
(if (= (cdr (assoc 40 (tblsearch "STYLE" tstyle))) 0.0)
     ;; нулевая высота текста
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) *TEXTSIZE* 0 fld)
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) 0 fld)
   ) ;_ end of if
    (setq txt (entlast))
  ;_ Копируем в буфер и обратно
  (vl-cmdf "_updatefield" txt "")
  (princ "\n Укажите точку вставки текста или ячейку таблицы:")
  (vl-cmdf "_.copybase" (trans '(0 0 0) 0 1) txt "" "_.erase" txt "" "_.pasteclip" "_none" pause)
  ;_ В txt примитив текста в pt точка вставки  
  (setq txt (entlast) pt (getvar "LASTPOINT"))
  (or
    (and ;_Проверяем, попала ли точка в ячейку таблицы
      (setq  tblobj nil tblset (ssget "_X" (list '(0 . "ACAD_TABLE")(cons 410 (getvar "CTAB")))))
      (setq lst (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex tblset)))))
      (progn
        (vl-catch-all-apply '(lambda()
        (mapcar '(lambda (x)
           (or tblobj
               (and
                 (= :vlax-true (vla-HitTest x
                               (vlax-3d-point (trans pt 1 0))
                               (vlax-3d-point (trans (getvar "VIEWDIR") 1 0))
                               'row 'col))
                 (setq tblobj x)
                 )
               )
           )
        lst)
                               )
          )
        tblobj
        )
       row col
      (or (vla-SetText tblobj row col fld) t)
      (entdel txt)
      )
    (and ;_Не попала, рисуем текст с полем
      (setq txt (vlax-ename->vla-object txt))
      (vlax-write-enabled-p txt)
      (vlax-method-applicable-p txt 'FieldCode) ;_есть метод FieldCode
      (vlax-property-available-p txt 'TextString)
      (vlax-put txt 'TextString fld)
      )
    )
  (princ)
) ;_ end of defun

 ;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
(princ "\nType in command line SUM1 and SUMT1")(princ)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.02.2020, 01:39
#651
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


VVA, моя благодарность! Обе команды работают как надо.
Спасибо!
MrBrown вне форума  
 
Непрочитано 23.09.2021, 09:13
#652
Villy Vaskof


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


Здравствуйте! Я наткнулся на данную тему благодаря поиску lisp для суммирования чисел в тексте автокад. Обрадовавшись найденному в данной теме, теперь есть необходимость установить полную подытоженную версию вашего lisp в данной теме. Но из-за отсутствия опыта в загрузке похожих файлов (комплект файлов) как в закрепленном архиве, я нуждаюсь в помощи. Подскажите пожалуйста, как установить все данные из архива (комплект) в закрепленном сообщений? Надеюсь моему вопросу ответят несмотря на прошедшее столько времени данной темы и она будет в помощь таким же не опытным пользователям.
Villy Vaskof вне форума  
 
Непрочитано 29.09.2021, 23:14
#653
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Villy Vaskof, в посте 564, куда ведет ссылка из стартового поста, в архиве есть файл readme.txt. Там - подробное русское описание процесса установки.
skkkk вне форума  
 
Непрочитано 11.10.2021, 14:36
#654
Villy Vaskof


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


skkkk, Здравствуйте! По вашему совету, еще в первом разе открывал данный файл readme из архива, но из-за своей не опытности я не понял ее как инструкцию для установки, для меня она как инструкция пользования.
Вопрос мой все еще остается для меня открытым, я скачал архив... затем распаковал архив и не понял как установить все файлы из архива в программу автокад.

Все файлы:
sumT.cui
sumT.cuix
sumT.LSP
sumT.mnl
sumT.mns
sumT.mnu
SumTE.bmp
SumTN.bmp
SumTSet.bmp
Спецификация.dwg
CS_Gost2304.shp
CS_Gost2304.shx
CSSTD.ttf
GOST 2.303-68.shx
GOST2304A.ttf
mipgost.shp
mipGost.shx
mipgost.ttf
prokat.ves
readme.txt
SPDS.shx
SumSpec.bmp
SumT.bmp
Villy Vaskof вне форума  
 
Непрочитано 13.10.2021, 08:29
#655
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Villy Vaskof, для начала вот: Как использовать лисп, опубликованный на форуме.

Все файлы надо расположить в папку с программой. Например, в папке C:\Program Files\Autodesk\AutoCAD 20ХХ создать папку PROGA, вставить файлы туда и добавить эту папку в пути доступа к вспомогательным файлам в настройках Автокада на вкладке Файлы. По ссылке рассказано подробнее об этом. Сам файл Спецификация.dwg будет шаблоном (насколько я понял - сам программой этой не пользовался).
Затем в автокаде ввести команду _menuload и выбрать из этой папки файл mnl (если не ошибаюсь - там вариантов не будет, вроде - будет только нужный файл маячить при выборе). Эта команда загрузит меню. Возможно, придется поколдовать, чтобы иконки появились, в меню адаптации (команда _cui) в панелях найти свою и задать одной из иконок путь к файлам bmp. Остальные должны сами подтянуться, если сразу не прогрузились.

----- добавлено через ~2 мин. -----
Вот здесь список команд, если меню не нужно.
skkkk вне форума  
 
Непрочитано 13.10.2021, 08:54
#656
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Все файлы надо расположить в папку с программой.
С чего вдруг? Достаточно
Цитата:
Сообщение от skkkk Посмотреть сообщение
добавить эту папку в пути доступа к вспомогательным файлам в настройках Автокада на вкладке Файлы
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.10.2021, 12:15
#657
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
С чего вдруг? Достаточно
Ну имел в виду, чтоб сразу человек задумывался об организации библиотеки лиспов, как пишет VVA в статье. В качестве примера написал. А так, конечно - любую папку можно добавить в пути доступа, скинуть все туда - и будет работать.
skkkk вне форума  
 
Непрочитано 14.10.2021, 10:12
#658
Villy Vaskof


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


skkkk, Добрый день! Благодарю за отклик, за подсказку! Он помог мне загрузить программу (не в полной мере иконки появились как предупредили, но по этому поводу не заморачивался).
Внесу поправку для cad 21 cuix надо загрузить, вместо mnl.
Кулик Алексей aka kpblc, Я воспользовался специально созданной папкой для программ в отдельном диске d.

Автору программы большой респект! Проделали большой Lean толчок для пользователей autocad!
Villy Vaskof вне форума  
 
Непрочитано 14.10.2021, 10:51
#659
Кулик Алексей aka kpblc
Moderator

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


А, еще момент (только сообразил) - про доверенные каталоги не стоит забывать, если secureload не 0.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2023, 21:13
#660
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


Здравствуйте!
См. пост #650 от VVA. Там есть макрос, фильтрующий числа в Мтексте и суммирующий их.
Я понял, что он суммирует числа, стоящие после "L=".
Большая просьба к специалистам: подкорректируйте, пожалуйста, макрос, чтобы он суммировал только длины труб в Мтекстах, содержащих, кроме длины, диаметр и перенос на вторую строку (см. картинку).
Я пытался вместо "L=" вставить знак переноса в разных вариантах, не работает.
Спасибо.
Миниатюры
Нажмите на изображение для увеличения
Название: Макрос.jpg
Просмотров: 70
Размер:	104.0 Кб
ID:	254380  
MrBrown вне форума  
 
Непрочитано 21.03.2023, 21:16
#661
Кулик Алексей aka kpblc
Moderator

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


Если по-быстрому, то в коде попробуй поменять "L=" на "\\P" (на англ.раскладке).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2023, 21:39
#662
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


Кулик Алексей aka kpblc, Пробовал.
Может быть, капсом надо было букву "Р" вставить.
Пробую ещё.
_________________________
Заработало! И, похоже, дело не в капсе, а в моей невнимательности при корректировке кода.
Спасибо!

Последний раз редактировалось MrBrown, 22.03.2023 в 01:12.
MrBrown вне форума  
 
Непрочитано 23.03.2023, 09:42
1 | #663
VVA

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


Цитата:
Сообщение от MrBrown Посмотреть сообщение
См. пост #650 от VVA. Там есть макрос, фильтрующий числа в Мтексте и суммирующий их.
Я понял, что он суммирует числа, стоящие после "L=".
Большая просьба к специалистам: подкорректируйте, пожалуйста, макрос, чтобы он суммировал только длины труб в Мтекстах, содержащих, кроме длины, диаметр и перенос на вторую строку (см. картинку).
Я пытался вместо "L=" вставить знак переноса в разных вариантах, не работает.
Там простой заменой не получится. Первый блок с L= удаляет тексты, у которых нет строки L=. Его надо выбросить
Код:
[Выделить все]
;_*** Сумма числовых значений. ТЗ см пост #660 ( https://forum.dwg.ru/showpost.php?p=2028075&postcount=660 )
;_ https://forum.dwg.ru/showthread.php?t=16987&page=34

(defun c:sumP (/ fld)
  ;_sum pipe length
  (vl-load-com)
  (princ
    "\nВыберите текстовые объекты среди которых будет произведена калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z "\\P")))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              )
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ
  (princ)
)
(defun c:sumPT (/ fld tstyle txt pt tblobj tblset row col)
  ;_sum pipe to text
  (vl-load-com)
  (or *TEXTSIZE* (setq *TEXTSIZE* (getvar "TEXTSIZE")))
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z "\\P")))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              )
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ

(setvar "cmdecho" 0)
(setq tstyle (getvar "TEXTSTYLE")) ;_Стиль текста Стиль должен существовать
    ;_ Создаем текст
(if (= (cdr (assoc 40 (tblsearch "STYLE" tstyle))) 0.0)
     ;; нулевая высота текста
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) *TEXTSIZE* 0 fld)
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) 0 fld)
   ) ;_ end of if
    (setq txt (entlast))
  ;_ Копируем в буфер и обратно
  (vl-cmdf "_updatefield" txt "")
  (princ "\n Укажите точку вставки текста или ячейку таблицы:")
  (vl-cmdf "_.copybase" (trans '(0 0 0) 0 1) txt "" "_.erase" txt "" "_.pasteclip" "_none" pause)
  ;_ В txt примитив текста в pt точка вставки  
  (setq txt (entlast) pt (getvar "LASTPOINT"))
  (or
    (and ;_Проверяем, попала ли точка в ячейку таблицы
      (setq  tblobj nil tblset (ssget "_X" (list '(0 . "ACAD_TABLE")(cons 410 (getvar "CTAB")))))
      (setq lst (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex tblset)))))
      (progn
        (vl-catch-all-apply '(lambda()
        (mapcar '(lambda (x)
           (or tblobj
               (and
                 (= :vlax-true (vla-HitTest x
                               (vlax-3d-point (trans pt 1 0))
                               (vlax-3d-point (trans (getvar "VIEWDIR") 1 0))
                               'row 'col))
                 (setq tblobj x)
                 )
               )
           )
        lst)
                               )
          )
        tblobj
        )
       row col
      (or (vla-SetText tblobj row col fld) t)
      (entdel txt)
      )
    (and ;_Не попала, рисуем текст с полем
      (setq txt (vlax-ename->vla-object txt))
      (vlax-write-enabled-p txt)
      (vlax-method-applicable-p txt 'FieldCode) ;_есть метод FieldCode
      (vlax-property-available-p txt 'TextString)
      (vlax-put txt 'TextString fld)
      )
    )
  (princ)
) ;_ end of defun

 ;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
(princ "\nType in command line SUMP and SUMPT")(princ)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.03.2023, 23:32
#664
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


Здравствуйте!
Используя код из поста #663 от VVA (моя благодарность), Сделал несколько макросов для определения длины трубопроводов определённого диаметра, вместо "\\P" вставив "%%C25\\P" или, например, "%%C32\\P".
Получилось изрядно - целых восемь макросов. Озаглавил "S20", "S25", "S32" и т.д. Вызываю нужный макрос и получаю соответствующую общую длину конкретного диаметра.
Прошу: скорректируйте, пожалуйста, макрос, чтобы он был только один, но запрашивал диаметр перед выбором Мтекстов. Чтобы после приглашения "Выберите диаметр трубопровода" можно было просто набрать "25" или "32". И дальше - по накатанной - выбор рамкой нужной области чертежа.
Спасибо.

Последний раз редактировалось MrBrown, 29.03.2023 в 23:50.
MrBrown вне форума  
 
Непрочитано 31.03.2023, 16:22
1 | #665
VVA

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


Цитата:
Сообщение от MrBrown Посмотреть сообщение
Чтобы после приглашения "Выберите диаметр трубопровода" можно было просто набрать "25" или "32
Тогда уже лучше "Укажите диаметр трубопровода"
Не тестировал, но думаю ничего не испортил, должно работать. Если на запрос диаметра ввести пустой ввод, должно считать все диметры
Код:
[Выделить все]
;_*** Сумма числовых значений. ТЗ см пост #664 ( https://forum.dwg.ru/showpost.php?p=2028075&postcount=664 )
;_ https://forum.dwg.ru/showthread.php?t=16987&page=34

(defun c:sumP (/ fld dia)
  ;_sum pipe length
  (vl-load-com)
  (initget 4)
  (setq dia (getint "\nУкажите диаметр трубопровода <любой>: "))
  (princ
    "\nВыберите текстовые объекты среди которых будет произведена калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z (if dia (strcat "%%C" (itoa dia) "\\P") "\\P"))))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              )
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ
  (princ)
)
(defun c:sumPT (/ fld tstyle txt pt tblobj tblset row col dia)
  ;_sum pipe to text
  (vl-load-com)
  (or *TEXTSIZE* (setq *TEXTSIZE* (getvar "TEXTSIZE")))
    (initget 4)
  (setq dia (getint "\nУкажите диаметр трубопровода <любой>: "))
  (princ
    "\nВыберите текстовые объекты среди которых будет произведененна калькуляция"
  ) ;_ end of princ
  (princ
    (strcat
      "\nСумма = "
      (setq fld
      (rtos
        (apply
          (function +)
          (mapcar
            '(lambda (z)
               (atof (vl-string-subst
                       "."
                       ","
                       (vl-princ-to-string (cadr (str-str-lst z (if dia (strcat "%%C" (itoa dia) "\\P") "\\P"))))
                     ) ;_ end of vl-string-subst
               ) ;_ end of atof
             ) ;_ end of lambda
            (mapcar
                (function
                  (lambda (a)
                    (cdr (assoc 1 (entget a)))
                  ) ;_ end of lambda
                ) ;_ end of function
                (vl-remove-if
                  (function listp)
                  (mapcar (function cadr)
                          (ssnamex (ssget '((0 . "TEXT,MTEXT"))))
                  ) ;_ end of mapcar
                ) ;_ end of vl-remove-if
              )
          ) ;_ end of mapcar
        ) ;_ end of apply
        2
        1
      ) ;_end of rtos
            )
    ) ;_ end of strcat
  ) ;_ end of princ

(setvar "cmdecho" 0)
(setq tstyle (getvar "TEXTSTYLE")) ;_Стиль текста Стиль должен существовать
    ;_ Создаем текст
(if (= (cdr (assoc 40 (tblsearch "STYLE" tstyle))) 0.0)
     ;; нулевая высота текста
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) *TEXTSIZE* 0 fld)
   (vl-cmdf "_.-TEXT" "_S" tstyle "_none" '(0 0 0) 0 fld)
   ) ;_ end of if
    (setq txt (entlast))
  ;_ Копируем в буфер и обратно
  (vl-cmdf "_updatefield" txt "")
  (princ "\n Укажите точку вставки текста или ячейку таблицы:")
  (vl-cmdf "_.copybase" (trans '(0 0 0) 0 1) txt "" "_.erase" txt "" "_.pasteclip" "_none" pause)
  ;_ В txt примитив текста в pt точка вставки  
  (setq txt (entlast) pt (getvar "LASTPOINT"))
  (or
    (and ;_Проверяем, попала ли точка в ячейку таблицы
      (setq  tblobj nil tblset (ssget "_X" (list '(0 . "ACAD_TABLE")(cons 410 (getvar "CTAB")))))
      (setq lst (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex tblset)))))
      (progn
        (vl-catch-all-apply '(lambda()
        (mapcar '(lambda (x)
           (or tblobj
               (and
                 (= :vlax-true (vla-HitTest x
                               (vlax-3d-point (trans pt 1 0))
                               (vlax-3d-point (trans (getvar "VIEWDIR") 1 0))
                               'row 'col))
                 (setq tblobj x)
                 )
               )
           )
        lst)
                               )
          )
        tblobj
        )
       row col
      (or (vla-SetText tblobj row col fld) t)
      (entdel txt)
      )
    (and ;_Не попала, рисуем текст с полем
      (setq txt (vlax-ename->vla-object txt))
      (vlax-write-enabled-p txt)
      (vlax-method-applicable-p txt 'FieldCode) ;_есть метод FieldCode
      (vlax-property-available-p txt 'TextString)
      (vlax-put txt 'TextString fld)
      )
    )
  (princ)
) ;_ end of defun

 ;|
* Ф-ция str-str-lst
* Сервисная ф-ция извлечения из строки данных, разделенных
* каким либо символом или строкой символов
* Возвращает список строк
* Аргументы [Type]:
  str - строка для разбора [STRING]
  pat - разделитель [STRING]
*  Пример запуска
  (setq str "мы;изучаем;рекурсии" pat ";")
  (setq str "мы — изучаем — рекурсии" pat " — ")
  (str-str-lst str pat)
* Читать подробнее http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
|;
(defun str-str-lst (str pat / i)
  (cond ((= str "") nil)
        ((setq i (vl-string-search pat str))
         (cons (substr str 1 i)
               (str-str-lst (substr str (+ (strlen pat) 1 i)) pat)
         ) ;_  cons
        )
        (t (list str))
  ) ;_  cond
) ;_  defun
(princ "\nType in command line SUMP and SUMPT")(princ)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.03.2023, 18:40
#666
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


VVA, Прекрасно работает! Моя благодарность.
MrBrown вне форума  
 
Непрочитано 07.06.2023, 14:00
#667
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 361


VVA, а можно ли сделать так, чтобы, если не вводить конкретный диаметр, макрос не просто считал бы все трубы, а сортировал по диаметрам и сводил бы это в простенькую таблицу?
Если не сложно, большая просьба усовершенствовать макрос.
Спасибо.
MrBrown вне форума  
 
Непрочитано 18.07.2025, 17:09
#668
yaego


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


Пользуюсь последней версией лиспа SumT для подсчета суммы чисел в текстовых объектах. Подскажите, что нужно добавить в этот лисп, чтобы он воспринимал не только число с последующими любыми символами (как сейчас и есть), но и число с символами перед этим числом? В частности, нужно суммировать числа в скобках, но не получается. В идеале, чтобы можно было настраивать, что отсекать. Допустим, в тексте есть два числа с символами между ними (12ххх23хх), а нужно просуммировать второе число (23). Т.е. указать, что первые пять символов игнорировать. Если все это сложно, то хотя бы чтобы лисп игнорировал начальную скобку.

Последний раз редактировалось yaego, 18.07.2025 в 17:50.
yaego вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Предложения по расчетным моделям сооружений aldt Расчетные программы 8 06.07.2009 17:53
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46