VetCAD

Отрисовка линий разрыва. "Break_Den" от 30.07.06

    0 оценок

Денис Флюстиков

размещено: 30 Июля 2006
Отрисовка линий разрыва (обрыва) трех видов (криволинейный, линейный, цилиндрический)

"Break_Den" от 30.07.06:
1.Отказался от автоматической обрезки по двум точкам внутри линий разрыва, т.к. с 2006 ACAD'а не требуется выбирать каждый обрезаемый объект (есть быстрый выбор рамкой), а часто приходится рисовать двухсторонний обрыв;
2.Переход в режим рисования обрыва по пробелу или правым кликом (ранее по "ESC");
3.Ввел зависимость величины линейного зигзага, по умолчанию от DIMSCALE;
4.Возможность задать величину выноса линий линейного разрыва за объект.

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-10 из 16
Zenon , 24 октября 2005 в 09:08
#1
Ничо прога, тока почемуто нельзя указать размер значка разрыва для прямой линии разрыва. Иди я может что-то неправильно понял?
Денис Флюстиков , 24 октября 2005 в 11:57
#2
Из вопроса понял только «Ничо», «тока» и «Иди», по остальному прошу уточнить суть вопроса, а лучше прислать на fd-@mail.ru картинку или ссылку не ГОСТ.
Zenon , 25 октября 2005 в 09:19
#3
Размер значка обрыва при отрисовке линейного разрыва, должен выбираться (указываться) пользователем в зависимости от масштаба изображения, а то получается размер значка разрыва, что для трубы 10мм,где его видно, что для трубы 1000мм где его не видно (визуально на чертеже сплошная прямая линия). Аналогично и размер выноски линии за обьект.
Денис Флюстиков , 25 октября 2005 в 11:39
#4
Вопрос понятен и действительно, при больших длинах разрыва зиг-заг получается не пропорциональным. Программно это исправить легко, но по специфике своей работы такие разрывы не приходилось рисовать, а впихнул в программку этот тип по аналогии MechaniCS и Cadmech, где и выноска за объект отсутствует. Вопрос. Если есть зависимость зиг-зага от длины линии разрыва, то какая или размер значка зависит от масштаба чертежа, и его каждый раз нужно указывать при отрисовке разрыва?
Николай , 25 октября 2005 в 13:12
#5
Хорошя утилитка. По поводу размера зигзага, то привязал его к текущему мачштабу линии (переменная CELTSCALE)(как масштаб в СПДС)Вот что получилось:
(setq nk_lsc (getvar"CELTSCALE" ))
(setq nk_lsc0 (/ nk_lsc -1))
(setq nk_lsc1 (/ nk_lsc 4))
(setq nk_lsc2 (/ nk_lsc 2))
(setq dist (/ (distance aa1 aa5) 2)
ang (angle aa1 aa5)
aa2 (polar (polar aa1 ang (- dist nk_lsc1))(+ (/ pi 2) ang) nk_lsc)
aa3 (polar (polar aa1 ang (+ dist nk_lsc1))(+ (/ pi 2) ang) nk_lsc0)
plinewid_old (getvar "PLINEWID"))

(setvar "PLINEWID" 0)
(command "_pline" aa1 (polar aa1 ang (- dist nk_lsc2)) aa2 aa3 (polar aa1 ang (+ dist nk_lsc2)) aa5 "")

Вроде получилось нормально.
Только одного не понял - как по умолчанию поставить отрисовку не криволинейного обрыва, а линейного или цилиндрисеского?
^C^C^P(load "Break_Den");Break_Den;л; в макросе кнопки просьба не предлогать.
Zenon , 25 октября 2005 в 13:45
#6
Размер зигзага наверно можно указать (после отрисовки всей линии) динамически, чтоб пользователь сам растягивал размер.
Денис Флюстиков , 25 октября 2005 в 15:35
#7
Похоже, что мы работаем по разным стандартам и для работы по СПДС (если я правильно понял смысл этого слова) требуется своя программа (может быть на основе "Break_Den") сделанная тем, кто полностью понимает все тонкости ваших требований.
Zenon , 26 октября 2005 в 09:00
#8
Может быть. Если Вы работаете в при определенном масштабе, то размер зигзага не так и критичен, но согласитесь гораздо проще указать самому размер этого элемента при отрисовке прямо на чертеже, чем через масштаб линии. Что-то похожее на команду _breakline из ET только там размер указывается заранее и в еденицах, а не динамически и не всегда понятно по какому принципу ставиться размер зигзага, то он какой нужно, а то вдруг или слишком маленький или слишком большой.
А так Ваша программка довольно симпатична и хорошо сделана, продолжайте в том-же духе.
Николай , 26 октября 2005 в 11:07
#9
Имелся ввиду СПДС GraphirCS. Привязался к его масштабу. Прицепил только ту часть, которую поменял.
Денис, плиз, как насчет типа обрыва поумолчанию, а то у меня повтор команды на правой кнопке и тыкать каждый раз в кнопку неохота.
Денис Флюстиков , 26 октября 2005 в 12:43
#10
Николай, для получения «линейного» типа обрыва по умолчанию, замени строчку: (setq bb nil) на: (setq bb "Л")
zip

0.1 МБ

СКАЧАТЬ