Тема: Комплект полезных утилит из BricsCad в AutoCAD

Коллега Евгений любезно предложил комплект полезных утилит и много еще чего хорошего для BricsCad  https://www.caduser.ru/forum/topic30277.html Я посмотрел по ссылке http://sabit.com.ua/apps.php
и мне понравились многие решения. Решил кое- что попробовать в AutoCAD-2006. Однако, автоматом не получилось. Но с согласия автора и с его помощью эти программы можно адаптировать к AutoCAD. Вот первая:
"Вычерчивание одиночной стрелки". Очень, кстати популярный элемент в западных чертежах. К стрелкам в произвольном формате цепляются примечания, указания и прочее...
Оригинал sleader.lsp для BricsCad

;;Вычерчивание одиночной стрелки (for BricsCAD)
;;E.Сосновский,
;;г.Мариуполь,2006
(defun c:sleader (/ tn tk)
  (setvar "cmdecho" 0)
  (setq tn (getpoint "\n\nУкажите точку начала стрелки")
        tk (getpoint tn "\n\nУкажите конечную точку стрелки")
        arsize (getvar "DIMASZ"))
  (setvar "DIMASZ" 4)
  (command "_leader" tn tk "_a" "" "_b" "pnt" tn "" "" "")
  (setvar "DIMASZ" arsize)
)

А вот для AutoCAD:

;Отрисовка односегментной стрелки без надписи
(defun c:sleader (/ tn tk)
(setvar "cmdecho" 0)
  (setq tn (getpoint "\n\nУкажите точку начала стрелки"))
  (setq tk (getpoint tn "\n\nУкажите конечную точку стрелки"))
  (setq arsize (getvar "DIMASZ"))
(setvar "DIMASZ" 5)
  (command "_leader" tn tk "_a" "" "_n")
(setvar "DIMASZ" arsize)
(princ)
);defun

Есть и готовые иконки.  ...Есть желание продолжить работу дальше...Присоединяйтесь...:)

Re: Комплект полезных утилит из BricsCad в AutoCAD

Следующая программка, которая привлекла мое внимание, это "uzel.lsp".
Оригинал uzel.lsp для BricsCad

;UZEL.LSP
;Программа вычерчивания окружности, ограничивающей узел и выноски с наименованием узла
;Е.Сосновский, г.Мариуполь, 2006г.
;Макрос для кнопки ^C^C(if (not C:uzel) (load "uzel")) uzel
(defun C:uzel ( / tc)
;;Функция отмены и выхода
  (defun *error* (msg)
     (if (= msg "quit / exit abort")
     (princ)
     ;(alert (strcat "ErrNo: " (getvar "ERRNO") "\nОшибка: " msg ))
     )
  )
(setvar "cmdecho" 0)
(setq  curlay    (getvar "CLAYER"))
;Вызов диалога параметров таблицы
(setq dlg (load_dialog "uzel"))
(new_dialog "uzel" dlg)
(mode_tile "nuz" 2)
    (action_tile "nuz" "(setq txt $value)")
    (action_tile "np" "(setq txt2 $value)")
    (action_tile "accept" "(done_dialog)")
    (action_tile "cancel" "(exit)")
(start_dialog)
(unload_dialog dlg)
;Конец функции вызова диалога
       (setq llen (* 2.2 (strlen txt2)))
       (if
       (>= (strlen txt) (strlen txt2))
       (setq llen (* 3.5 (strlen txt)))
       )
       (command "_layer" "_s" "РАЗМЕР_0.13" "")
       (command "_circle"
       (getpoint "\n Укажите точку центра окружности, ограничивающей узел: ")
       (getpoint "\n Задайте радиус окружности, ограничивающей узел: "))
       (setq okr (entget (entlast))
             tce (cdr(assoc 10 okr))
             rokr (cdr(assoc 40 okr))
             tokr (getpoint tce "\n Укажите точку начала выноски: "))
       (command "_line" tce tokr "")
       (command "_'editlen" "_i" (- rokr) tce "")
       (setq tvr  (polar tokr 0 llen)
             tvl  (polar tokr pi llen)
             ttr0 (polar tokr 0 (* 0.5 llen))
             ttr  (polar ttr0 (* 0.5 pi) 4)
             ttl0 (polar tokr pi (* 0.5 llen))
             ttl  (polar ttl0 (* 0.5 pi) 4)
             tpr  (polar ttr (* 1.5 pi) 7)
             tpl  (polar ttl (* 1.5 pi)7)
             ugr  (angle tce tokr))
       (if
       (and (> ugr 0) (<= ugr (* pi 0.5)))
            (command "_line" tokr tvr "")
       )
       (if
       (and (> ugr (* pi 0.5)) (<= ugr pi))
            (command "_line" tokr tvl ""))
       (if
       (and (> ugr pi) (<= ugr (* 1.5 pi)))
            (command "_line" tokr tvl "")
       )
       (if
       (and (> ugr (* 1.5 pi)) (<= ugr (* 2 pi)))
       (command "_line" tokr tvr "")
       )
       (if
       (= txt "") (setq txt "1")
       )
       (command "_layer" "_s" "ТЕКСТ_0.30" "")
       (if
       (and (> ugr 0) (<= ugr (* pi 0.5)))
     (progn
       (command "_text" "_m" ttr 5 "0" txt)
       (command "_text" "_m" tpr 3.5 "0" txt2)
       )
     )
       (if
       (and (> ugr (* pi 0.5)) (<= ugr pi))
     (progn
       (command "_text" "_m" ttl 5 "0" txt)
       (command "_text" "_m" tpl 3.5 "0" txt2)
       )
     )
       (if
       (and (> ugr pi) (<= ugr (* pi 1.5)))
     (progn
       (command "_text" "_m" ttl 5 "0" txt)
       (command "_text" "_m" tpl 3.5 "0" txt2)
       )
     )
       (if (and (> ugr (* pi 1.5)) (<= ugr (* 2 pi)))
    (progn
       (command "_text" "_m" ttr 5 "0" txt)
       (command "_text" "_m" tpr 3.5 "0" txt2)
     )
       )
    (command "_layer" "_s" curlay "")
(princ)
)

Но работать в AutoCAD-е эта программа у меня начисто отказалась. Если есть у кого желание и возможность адаптировать к AutoCAD, примите участие...:)

Re: Комплект полезных утилит из BricsCad в AutoCAD

Ай-я-яй, Forma...

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Владимир Громов
Что такое? Не понял.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> BigScrew
Да нет, ничего.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Не проверяя код в целом, сразу можно сказать, что эта программа требует загрузку диалогового окна, описание которого находится в файле uzel.dcl. Но кода uzel.dcl здесь нет.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Владимир Громов
Возможно. Я в детали не вдавался. Т.к. считаю, что здесь достаточно диалога в командной строке...Строго, аскетично, быстро...Для чего усложнять....
p.s. А все таки, что опять не так? Комплекс не мой. Я программировал в СИ для Drafix. Ничего  своего не проталкиваю...Зачем? Но, от хорошего не отказываюсь....??????????????

Re: Комплект полезных утилит из BricsCad в AutoCAD

> BigScrew
Да вот в чем дело. Как я понимаю, пакет программ был написан на AutpLisp'е и адаптирован к BricsCAD. Теперь предлагается эти программы адаптировать к AutoCAD. Но ведь вы, BigScrew не сильны в программировании на AutoLisp по вашим словам. Тогда зачем вы выкладываете здесь программы, которые заведомо не будут работать? Вот в последней программе используются команды установки текущими слои, которых нет в рисунке, они должны быть заранее созданы. Но, главное, здесь используется команда "_'editlen", которой вообще нет в AutoCAD'е. Ну и как быть? Как отнесется Евгений к такой форме опубликования его разработок? Он-то знает, где собака зарыта, а вы нет, а нам предлагается ломать мозги, проверяя неработающий код. Вот я и сказал: Ай-я-яй. Ну и как теперь быть?

Re: Комплект полезных утилит из BricsCad в AutoCAD

Владимир Громов пишет:

Как отнесется Евгений к такой форме опубликования его разработок?

Евгений ответил "ОК". Вот наш ссылка на разговор: https://www.caduser.ru/forum/topic30277.html

Он-то знает, где собака зарыта, а вы нет, а нам предлагается ломать мозги, проверяя неработающий код.

Так вроде как для того и форумное общение существует. Для диалога, вопросов и ответов, решения проблем и т.п. Все демократично. Кто имеет желание, возможность и заинтересованность- тот и принимает участие...Много полезного можно почерпнуть...Или я не так понимаю чего то...Я пользователь. И пользователь примитивный. Мне главное, что бы программа была. И эта программа работала нормально. Остальное меня не интересует. Возможно я не прав...Ну тогда администратор меня поправит и ветку удалит.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> BigScrew
А я вот захотел проверить программу, которая вам понравилась, но у вас не работает. Я не получил конечный результат из-за той команды. Так что же, мне теперь устанавливать BricsCAD, чтобы посмотреть, что должно получиться? Можно, видимо, догадаться, что там должно получиться, но это как-то...неуютно.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> BigScrew
Еще. Мне кажется, что Евгений несколько по другому понял ваше предложение, вот и сказал "Ok". Наверное, надо подождать, что он напишет в этой теме.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Владимир Громов
Подождем...

Re: Комплект полезных утилит из BricsCad в AutoCAD

Честно говоря, не ожидал такого поворота, что программы для BricsCAD придется адаптироватиь к акаду. Я в принципе не возражаю против переделки отдельных программок под акад, если они действительно заинтересовали участников форума.
Тем более, что под акад существуют целые пакеты с аналогичными функциями, более совершенные и отработанные. Да и на этом форуме можно найти массу интересных решений. Но к сожалению из-за отсутствующей ПОКА поддержки VL в BricsCAD они непригодны для использования в этом альтернативном акаду продукте. Это и заставило меня самому взяться за перо (т.е. за клавиши :)) и в меру возможностей сделать пакет дополнений к BricsCAD в соответствии с потребностями нашей организации, использующей эту программу взамен AutoCADа. Целью моей ссылки на пакет http://sabit.com.ua/apps.php в соответствующей теме было показать, что существуют и другие аналоги акада, хоть и менее именитые и совершенные, но вполне пригодные для использования в проектировании с возможностью адаптации.
Теперь по пакету. Сразу скажу, что далеко не все программы в нем были адаптированы под BricsCAD. Многие изначально создавались под него на чистом лиспе (с которым у брикса есть полное взаимопонимание) с учетом отличий в некоторых командах брикса и акада. Оговорюсь, что брикс понимает как свои команды, так и их акадовские аналоги. Обратного, увы нет. Именно поэтому некоторые программы и отказываются работать в акаде, как совершенно верно заметил Владимир Громов. И для того, чтобы посмотреть их в работе проще всего действительно загрузить тот же BricsCAD, благо места он занимает немного.
Для нормальной работы с пакетом конечно желательно использовать шаблон, входящий в комплект. Я не стал убирать привязку к слоям и т.п., а сохранил тот вариант, который используется в нашей фирме. Каждый, кто считает необходимым, может внести соответствующие изменения с привязкой к своим слоям и стилям.
Больших познаний в этом не надо, тем более, что акад сам говорит, что он не может найти, но программа увы не работает. В BricsCAD при использовании другого шаблона программы работают, но вычерчивают все объекты в том слое, ан котором создаются. Но в этом случае вы не избегаете последующей операции назначения свойств объектам, сложнее организовать единый стиль оформления конструкторской документации и т.д.
Теперь конкретно по программам. После обращения BigScrew ко мне с просьбой переработать программу sleader.lsp я внес в нее необходимые изменения. Единственное, что при внесении кода в эту тему уважаемый BigScrew забыл указать автора изменений :).
Что касается uzel.lsp,которую я тоже по просьбе BigScrew адаптировал к Акад (как это ни странно звучит) то опять абсолютно верно отметил Владимир Громов, с этой функцией используется диалог (который также есть в пакете) и проблема была в команде editlen, которой в акаде нет, но есть аналогичная lengthen. Но на этом отличия не исчерпываются. Несколько по разному, как оказалось, ведут себя и привязки в Брикскад и Акад, пришлось ввести их отключение при вставке текста на выноске обозначения узла. И еще одна проблема, которую мне не удалось решить в полной мере, может помогут спецы: при отрисовке окружности, охватывающей узел ее динамические контуры во время указания радиуса не отображаются, как это у меня работало в BricsCAD. Пришлось добавить для наглядности выбора радиуса "резиновую нить".
Вобщем в конечном итоге получилось:

;UZEL.LSP
;Программа вычерчивания окружности, ограничивающей узел и выноски с наименованием узла
;Е.Сосновский, г.Мариуполь, 2006г.
;Макрос для кнопки ^C^C(if (not C:uzel) (load "uzel")) uzel
(defun C:uzel ( / llen tce tvn tvr tvl ttr ttr0 ttl tt0 tpl)
;;Функция отмены и выхода
(defun *error* (msg)
    (if (= msg "quit / exit abort")
    (princ)
    );if
);defun
(setvar "cmdecho" 0)
    (setq  curlay    (getvar "CLAYER"))
;Вызов диалога параметров таблицы
    (setq dlg (load_dialog "uzel"))
(new_dialog "uzel" dlg)
(mode_tile "nuz" 2)
    (action_tile "nuz" "(setq txt $value)")
    (action_tile "np" "(setq txt2 $value)")
    (action_tile "accept" "(done_dialog)")
    (action_tile "cancel" "(exit)")
(start_dialog)
(unload_dialog dlg)
;Конец функции вызова диалога
       (setq llen (* 2.2 (strlen txt2)))
       (if
       (>= (strlen txt) (strlen txt2))
       (setq llen (* 3.5 (strlen txt)))
       );if
       (command "_layer" "_s" "РАЗМЕР_0.13" "")
       (setq tce (getpoint "\n Укажите точку центра окружности, ограничивающей узел: "))
       (command "_circle" tce (getpoint tce "\n Укажите точку центра окружности, ограничивающей узел: "))
       (setq okr (entget (entlast))
             rokr (cdr(assoc 40 okr))
             tvn (getpoint tce "\n Укажите точку начала выноски: "))
       (command "_line" tce tvn "")
       (command "_lengthen" "_del" (- rokr) tce "")
       (setq priv (getvar "osmode"))
       (setvar "osmode" 0)
       (setq tvr  (polar tvn 0 llen)
             tvl  (polar tvn pi llen)
             ttr0 (polar tvn 0 (* 0.5 llen))
             ttr  (polar ttr0 (* 0.5 pi) 4)
             ttl0 (polar tvn pi (* 0.5 llen))
             ttl  (polar ttl0 (* 0.5 pi) 4)
             tpr  (polar ttr (* 1.5 pi) 7)
             tpl  (polar ttl (* 1.5 pi)7)
             ugr  (angle tce tvn))
        (if
        (and (> ugr 0) (<= ugr (* pi 0.5)))
            (command "_line" tvn tvr "")
        );if
        (if
        (and (> ugr (* pi 0.5)) (<= ugr pi))
            (command "_line" tvn tvl ""))
        (if
        (and (> ugr pi) (<= ugr (* 1.5 pi)))
            (command "_line" tvn tvl "")
        );if
        (if
        (and (> ugr (* 1.5 pi)) (<= ugr (* 2 pi)))
        (command "_line" tvn tvr "")
        );if
        (if
        (= txt "") (setq txt "1")
        );if
        (command "_layer" "_s" "ТЕКСТ_0.30" "")
        (if
        (and (> ugr 0) (<= ugr (* pi 0.5)))
        (progn
        (command "_text" "_m" ttr 5 "0" txt)
        (command "_text" "_m" tpr 3.5 "0" txt2)
        );progn
        );if
        (if
        (and (> ugr (* pi 0.5)) (<= ugr pi))
        (progn
        (command "_text" "_m" ttl 5 "0" txt)
        (command "_text" "_m" tpl 3.5 "0" txt2)
        );progn
        );if
        (if
        (and (> ugr pi) (<= ugr (* pi 1.5)))
        (progn
        (command "_text" "_m" ttl 5 "0" txt)
        (command "_text" "_m" tpl 3.5 "0" txt2)
        );progn
        );if
        (if (and (> ugr (* pi 1.5)) (<= ugr (* 2 pi)))
        (progn
        (command "_text" "_m" ttr 5 "0" txt)
        (command "_text" "_m" tpr 3.5 "0" txt2)
        );progn
        );if
(setvar "osmode" priv)
(command "_layer" "_s" curlay "")
(princ)
)

И файл диалога:

dcl_settings : default_dcl_settings { audit_level = 0; }
uzel: dialog {label = "Параметры узла";
  : column {alignment = centered;
       : row {alignment = centered;
           : text {alignment = left;
                   fixed_width = true;
                   label = "Номер узла:";
                   }
            : edit_box {alignment = right;
                   fixed_width = true;
                        edit_width = 25;
                        edit_limit = 25;
                        key = "nuz";
                        }
             }
       : row {alignment = centered;
           : text {alignment = left;
                   fixed_width = true;
                   label = "Адрес узла:";
                   }
            : edit_box {alignment = right;
                        fixed_width = true;
                        edit_width = 25;
                        edit_limit = 25;
                        key = "np";
                        }
              }
spacer_1;
ok_cancel;
spacer_1;
           }
}

Шаблон, как я уже отмечал, желательно использовать из пакета BricsCAD BonusTools,
версия 1.1.0010 которого находится по указанной выше ссылке.
Если возникают вопросы по другим приложениям этого пакета или по тому же BricsCAD (если кого заинтересует) можно продолжить разговор в этой ветке. Я думаю, уважаемый модератор не будет против.

Re: Комплект полезных утилит из BricsCad в AutoCAD

Если не нравится работа с диалоговым окном, то не сложно взамен него вставить "аскетичный", как заметил BigScrew запрос в командной строке.
Но для бабушек-пенсионеров, как я убедился на опыте нашей организации окошко будет более приемлемым, т.к. они упорно не хотят читать то что, написано в строке, а от окошка никуда не денешься, придется заполнять :)

Re: Комплект полезных утилит из BricsCad в AutoCAD

Евгений пишет:

Честно говоря, не ожидал такого поворота, что программы для BricsCAD придется адаптироватиь к акаду.

Поясню свою позицию. Мне понравился Ваш пакет программ. Стройный, лаконичный, улучшающий и дополняющий приемы повседневной работы. Такого пакета, близкого мне по идеологии я до сих пор еще не встречал. Кроме своего, разумеется :) Но мой пакет был написан совсем на другом языке и для другой платформы....Волею судеб я сейчас работаю в AutoCAD-е и небольшую толику из моих старых программ за год потихоньку удалось с помощью форумных программистов переложить на LISP... И тут появляется ссылка на Ваш пакет программ...Такая удача. Я то ничтоже сумняше отравленный рекламными лозунгами о практически полной взаимозаменяемости BricsCAD, IntelliCAD, ProgeCAD и AutoCAD-а размечтался о том, что переложить прикладные программы - это пара пустяков. :)...Ну а дальше полились ушаты ледяной воды...Весьма отрезвляющие и приводящие меня в привычное состояние нормального скепсиса...:(:(

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Евгений
Вдогонку:

Единственное, что при внесении кода в эту тему уважаемый BigScrew забыл указать автора изменений :).

Указал. Вот цитирую самого себя:...

Но с согласия автора и с его помощью эти программы можно адаптировать к AutoCAD. Вот первая:

Не совсем, правда, внятно...Приношу извинения.

Re: Комплект полезных утилит из BricsCad в AutoCAD

BigScrew пишет:

Ну а дальше полились ушаты ледяной воды...Весьма отрезвляющие и приводящие меня в привычное состояние нормального скепсиса...:(:(

Надеюсь это не в мой адрес? Поскольку я абсолютно не против продолжения этой темы и чем смогу, помогу Вам. Тому свидетельство последний мой приведенный код. Правда работает не совсем так, как в Бриксе, но пока получился такой вариант, как говорится на скорую руку.
Кстати, Вашего мнения о работе этого лиспа в Автокаде Вы не выложили. А было бы интересно...

Я то ничтоже сумняше отравленный рекламными лозунгами о практически полной взаимозаменяемости BricsCAD, IntelliCAD, ProgeCAD и AutoCAD-а размечтался о том, что переложить прикладные программы — это пара пустяков. :)...

Ну я не думаю, что разночтения в отдельных командах сильно осложняют адаптацию к тому или иному CADу. Для примера на те две программки, которые Вы просили изменить у меня ушло не более 10-15 мин на каждую. Дело в том, что в том же BricsCAD в справке имеется относительно небольшой перечень команд, названия которых отличаются от акадовских при той же функциональности. Поэтому переход как правило, действительно не вызывает особых проблем.
Я уже  менее-более знаю основные подводные камни.Но их не так много. В целом программы действительно вполне совместимы. Тем более, как я уже писал, тот же Брикс понимает при наличии разночтений команд оба варианта. Автокад этим, правда, не может похвастаться, но небольшая переделка все ставит на свои места.

Не совсем, правда, внятно...Приношу извинения.

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

Re: Комплект полезных утилит из BricsCad в AutoCAD

Честно говоря, не ожидал такого поворота, что программы для BricsCAD придется адаптироватиь к акаду.

Боюсь, что эту мою фразу BigScrew тоже несколько неправильно понял. Просто до сих пор приходилось делать обратное, а оказалось, что и бриксовские приложения могут пригодится в акаде :)

Re: Комплект полезных утилит из BricsCad в AutoCAD

BigScrew пишет:

Так вроде как для того и форумное общение существует. Для диалога, вопросов и ответов, решения проблем и т.п.

Совершенно с Вами согласен. Поэтому в продолжение темы предлагаю еще один облегченный вариант отрисовки обозначения узлов без диалогового окна и привязки к слоям. Единственное, для нормального определения длины полки выноски желательно использовать шрифт UPSK_GOST (из пакета BricsCAD BonusTools) или любой аналогичный ему гостовский шрифт. Для того же romans.shx нужно в стилях текста задать сжатие 0.8

;UZELN.LSP
;Программа вычерчивания окружности, ограничивающей узел и выноски с наименованием узла
;Е.Сосновский, г.Мариуполь, 2006г.
;Макрос для кнопки ^C^C(if (not C:uzeln) (load "uzeln")) uzeln
(defun C:uzeln ( / llen tce tvn tvr tvl ttr ttr0 ttl tt0 tpl)
;;Функция отмены и выхода
(defun *error* (msg)
  (if (= msg "quit / exit abort")
  (princ)
  );if
);defun
(setvar "cmdecho" 0)
    
        (setq txt1 (getstring "\n\n Введите порядковый номер узла (<1>):"))
    (if
    (= txt1 "") (setq txt1 "1")
    );if
        (setq txt2 (getstring "\n\n Введите адрес узла (<1>):"))
    (if
    (= txt2 "") (setq txt2 "1")
    );if
       (setq llen (* 2.2 (strlen txt2)))
       (if
       (>= (strlen txt1) (strlen txt2))
       (setq llen (* 3.5 (strlen txt1)))
       );if
     (setq tce (getpoint "\n Укажите точку центра окружности, ограничивающей узел: "))
     (command "_circle" tce (getpoint tce "\n Укажите точку центра окружности, ограничивающей узел: "))
       (setq okr (entget (entlast))
             rokr (cdr(assoc 40 okr))
             tvn (getpoint tce "\n Укажите точку начала выноски: "))
       (command "_line" tce tvn "")
       (command "_lengthen" "_del" (- rokr) tce "")
     (setq priv (getvar "osmode"))
     (setvar "osmode" 0)
       (setq tvr  (polar tvn 0 llen)
             tvl  (polar tvn pi llen)
             ttr0 (polar tvn 0 (* 0.5 llen))
             ttr  (polar ttr0 (* 0.5 pi) 4)
             ttl0 (polar tvn pi (* 0.5 llen))
             ttl  (polar ttl0 (* 0.5 pi) 4)
             tpr  (polar ttr (* 1.5 pi) 7)
             tpl  (polar ttl (* 1.5 pi)7)
             ugr  (angle tce tvn))
    (if
    (and (> ugr 0) (<= ugr (* pi 0.5)))
            (command "_line" tvn tvr "")
    );if
    (if
    (and (> ugr (* pi 0.5)) (<= ugr pi))
            (command "_line" tvn tvl ""))
    (if
    (and (> ugr pi) (<= ugr (* 1.5 pi)))
            (command "_line" tvn tvl "")
    );if
    (if
    (and (> ugr (* 1.5 pi)) (<= ugr (* 2 pi)))
    (command "_line" tvn tvr "")
    );if
    (if
    (and (> ugr 0) (<= ugr (* pi 0.5)))
    (progn
    (command "_text" "_m" ttr 5 "0" txt1)
    (command "_text" "_m" tpr 3.5 "0" txt2)
    );progn
    );if
    (if
    (and (> ugr (* pi 0.5)) (<= ugr pi))
    (progn
    (command "_text" "_m" ttl 5 "0" txt1)
    (command "_text" "_m" tpl 3.5 "0" txt2)
    );progn
    );if
    (if
    (and (> ugr pi) (<= ugr (* pi 1.5)))
    (progn
    (command "_text" "_m" ttl 5 "0" txt1)
    (command "_text" "_m" tpl 3.5 "0" txt2)
    );progn
    );if
    (if (and (> ugr (* pi 1.5)) (<= ugr (* 2 pi)))
    (progn
    (command "_text" "_m" ttr 5 "0" txt1)
    (command "_text" "_m" tpr 3.5 "0" txt2)
    );progn
    );if
(setvar "osmode" priv)
(princ)
);defun

К сожалению, проблему отрисовки временного контура окружности при выборе радиуса решить пока не удалось. Надеюсь на помощь профессионалов. Почему то в акаде этот контур не отображается так, как в BricsCAD, что создает некоторіе неудобства при віборе обїектов, входящих в узел.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Евгений
Так. Разобрался с UZELN.LSP. Все работает. Ну, кроме  отрисовки временного контура. Я мыслю- спецы не оставят это дело так...Спасибо...Вторая программа идет в "арсенал". Две "правильных" программы за два дня- это замечательно. У меня по ходу вопрос возник. Решил я ваш пакет посмотреть в оригинале, что бы не гадать что и как. Вчера скачал и инсталлировал trial BricsCAD. Но не могу выставить пути к папкам BonusTools. Как это сделать? И еще:

а оказалось, что и бриксовские приложения могут пригодится в акаде :)

На это можно ответить только: "Не CAD красит юзера, а юзер CAD" :)

Ну а дальше полились ушаты ледяной воды...Весьма отрезвляющие и приводящие меня в привычное состояние нормального скепсиса...:(:(

Ничего личного....Это вырвался стон моей души по поводу каков должен быть "интерфейс" прикладного программирования :):):)

Re: Комплект полезных утилит из BricsCad в AutoCAD

BigScrew пишет:

Решил я ваш пакет посмотреть в оригинале, что бы не гадать что и как. Вчера скачал и инсталлировал trial BricsCAD. Но не могу выставить пути к папкам BonusTools. Как это сделать?

После установки BricsCAD запустите BricsCADBonusTools.exe. Если при установке брикса и пакета вы не меняли пути установки, то в каталоге ProgramFiles/BricsCAD/BricsCAD появится папка BonusTools. Кроме того в бриксовскую папку Fonts загрузится шрифт UPSK_GOST.shx, а в корневой каталог Брикса - шаблон UPSK.
После запуска программы зайдите в меню Сервис>Параметры и в появившемся окне на закладке Пути/Файлы Выделите строку Чертежи и нажав Обзор укажите путь к папке BonusTools в корневом каталоге BricsCAD. Для использования моего шаблона с установленными слоями, стилями размеров и текста и т.п. в том же окне в столбце Системные файлы выделите Шаблон и аналогично Обзором выберите шаблон UPSK.dwg. Тогда Вам не потребуется дополнительно тратить время на настройку.
Так же советую на закладке Перекрестие поставить флажок Включить магнит...
Затем щелчком правой кнопки на любой панели инструментов откройте контекстное меню, в котором выберите пункт Настройка. В появившемся окне перейдите на закладку МЕНЮ, нажмите ИМПОРТ и в папке BonusTools выберите файл UPSK_FRM.MNU.
Не закрывая окно НАСТРОЙКА перейдите на закладку ПАНЕЛИ ИНСТРУМЕНТОВ и выполните аналогично импорт файла escad.mnu из BonusTools.
У Вас должен добавиться пункт меню ШАБЛОНЫ и набор панелей инструмента. Разместите их по своему вкусу и пользуйтесь :)
Сразу оговорюсь, что если Вы используете BricsCAD 7.0.0011, то в этой версии не пытайтесь ставить панели в одну строку с панелькой Свойства объекта (там, где отображаются текущие слои и т.д.) Разработчики в этой версии что-то поменяли в этой панели и в результате вылез такой глючок. Но я им уже об этом сообщил, думаю в ближайших билдах исправят.
И еще, программы по созданию и заполнению таблиц
работают только с тем набором "шапок" таблиц, которые включены в состав меню ШАБЛОНЫ. Выбираете нужный формат, тип рабочей документации (от этого зависит состав основной надписи), ориентацию листа и работаете. При необходимости вставки таблицы выбираете состветствующую шапку и вставляете ее в чертеж.
Создание таблицы работает со всеми этими шаблонами. Параметрическая таблица позволяет задать интервал строк и высоту шрифта. отдельно выделена программка для спецификаций КМД, которая работает через диалог и несеолько упрощает процесс заполнения и подсчета массы деталей. Но эту программу я еще буду дорабатывать. Это пока простейший вариант. Так же постепенно дополняется и набор шаблонов таблиц.
Там же в меню ШАБЛОНЫ есть таблица символов, используя которую можно при заполнении тех же спецификаций вводить в текст различные символы (в т.ч. и условные обозначения уголков, швеллеров, двутавров и т.д.)
Вобщем попробуйте, будут вопросы - обращайтесь.

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Евгений
Все приложения согласно Вашей инструкции легко установились. В результате получилось отличное рабочее место...Завидую вашим "теткам"...Все так легко, элегантно, ничего лишнего....Вот сижу обдумываю...Я машиностроитель...Как бы это приспособить под мою профессию...Кое что нашел в BricsCAD нового. Например,Record/Run Script. И работает!Хороший инструмент, да в умелых руках.Есть несколько вопросов. Например, почему шаблоны вставляются левым нижним углом только в 0,0 ? И еще. "Прокатные профили есть", а повседневных фигурок типа: вал, втулка, фланец, болт, пластина- нет. Возможно, у вас в фирме не применяется....Короче, рабочих вопросов много...Но в целом я пока пребываю в некоторой такой растерянности....

Re: Комплект полезных утилит из BricsCad в AutoCAD

???
Какой именно шаблон? Вообще шаблон привязывается к 0,0 той своей точкой, которая будет играть роль точки привязки при вставке в чертеж. Возможно, отдельные шаблоны содержат ошибку? Обязательно исправлю, если дело в шаблоне.

повседневных фигурок типа: вал, втулка, фланец, болт, пластина- нет.

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

Re: Комплект полезных утилит из BricsCad в AutoCAD

BigScrew пишет:

почему шаблоны вставляются левым нижним углом только в 0,0

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

Re: Комплект полезных утилит из BricsCad в AutoCAD

> BigScrew
Вышла новая версия BricСAD BonusTools.
http://sabit.com.ua/apps.php
Добавлены некоторые шаблоны таблиц, новые варианты заполнения таблиц и спецификаций, о которых я писАл выше. Кроме того, привязал отрисовку символов и условных обозначений к конкретным слоям шаблона для ускорения процесса черчения. При желании в соответствующих лиспах можно заменить наименования слоев или вообще убрать строки задания слоев.
На днях ожидается появление новой версии и самого BricsCAD 7.1 (русской, английская уже доступна для ознакомительного скачивания)

Re: Комплект полезных утилит из BricsCad в AutoCAD

> Евгений
И снова о стрелке :) Я потихоньку "исследую" и обкатываю ваш замечательный пакет. Как обычно встречаются некоторые штрихи. Тем более пакет к другой программе...Так вот. Что то у меня с привязками не получается. Допустим, при текущей привязке Nearest программа ее игнорирует и отправляет в привязку Endpoint. Могли бы Вы посмотреть в чем там дело?