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

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

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

Ответ
Поиск в этой теме
Непрочитано 01.05.2005, 17:06
Можно ли вместо отрезков чертить сразу двумя паралельными линиями
bdfy
 
Регистрация: 30.04.2005
Сообщений: 141

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

PS: может у кого подобный чертежик завалялся? моя благодарность будет безмерной
[ATTACH]1114952804.gif[/ATTACH]

Последний раз редактировалось Солидворкер, 30.07.2009 в 08:56.
Просмотров: 42356
 
Непрочитано 03.08.2009, 20:27
#61
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


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

Тогда было бы гораздо удобнее делать стиль текущим - прямо из макроса замены мультилиний или макроса замены полилиний на мультилинии и т.п. Да и просто удобнее чертить мультилиниями.

И также общий к лиспам вопрос: можно ли выводить сообщения об итогах работы? Обычные отчетные сообщения в текстовом окне вроде: найдено столько-то, такие-то, заменено столько-то, не найдено ничего и т.п.?

Последний раз редактировалось АлексЮстасу, 03.08.2009 в 21:36.
АлексЮстасу вне форума  
 
Непрочитано 04.08.2009, 10:03
#62
VVA

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


АлексЮстасу, Нисколько не сложно.
Код:
[Выделить все]
(defun SETML (/ ml_st dict)
;;; Из диалогового  окна выбираем стиль МЛИНИИ
;;; И устанавливаем его текущим
;;; http://forum.dwg.ru/showthread.php?t=3127&page=3  
  (defun mydcl (zagl info-list / fl ret dcl_id)
    (vl-load-com)
    (if (null zagl)
      (setq zagl "Выбор")
    ) ;_ end of if
    (setq fl (vl-filename-mktemp "mip" nil ".dcl"))
    (setq ret (open fl "w"))
    (mapcar
      '(lambda (x) (write-line x ret))
      (list "mip_msg : dialog { "
            (strcat "label=\"" zagl "\";")
            " :list_box {"
            "alignment=top ;"
            "width=51 ;"
            (if (> (length info-list) 26)
              "height= 26 ;"
              (strcat "height= " (itoa (+ 3 (length info-list))) ";")
            ) ;_ end of if
            "is_tab_stop = false ;"
            "key = \"info\";}"
            "ok_cancel;}"
      ) ;_ end of list
    ) ;_ end of mapcar
    (setq ret (close ret))
    (if (setq dcl_id (load_dialog fl))
      (if (new_dialog "mip_msg" dcl_id)
        (progn
          (start_list "info")
          (mapcar 'add_list info-list)
          (end_list)
          (set_tile "info" "0")
          (setq ret (car info-list))
          (action_tile
            "info"
            "(setq ret (nth (atoi $value) info-list))"
          ) ;_ end of action_tile
          (action_tile
            "cancel"
            "(progn(setq ret nil)(done_dialog 0))"
          ) ;_ end of action_tile
          (action_tile "accept" "(done_dialog 1)")
          (start_dialog)
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of if
    (unload_dialog dcl_id)
    ret
  ) ;_ end of defun
  (vl-load-com)
  (if (and
        (setq
          dict (mapcar 'cdr
                       (vl-remove-if-not
                         '(lambda (x) (= 3 (car x)))
                         (dictsearch (namedobjdict) "ACAD_MLINESTYLE")
                       ) ;_ end of vl-remove-if-not
               ) ;_ end of mapcar
        ) ;_ end of setq
        (setq ml_st (mydcl "Выбор стиля мультилинии" dict))
      ) ;_ end of and
    (setvar "CMLSTYLE" ml_st)
  ) ;_ end of if
  (princ)
) ;_ end of defun
(defun C:SETML ()(SETML))
Там команда и функция. Можно вызывать как (C:SETML) так и (setml)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.08.2009, 13:41
#63
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
АлексЮстасу, Нисколько не сложно.
А еще в детстве меня обманывали - говорили, что волшебников не существует

Существует возможность добавить в эти окна выбора стилей мультилиний еще и их описания (Description)? Чтобы можно было выбирать не только по шифрованным названиям, но и по человекоподобным описаниям.

Последний раз редактировалось АлексЮстасу, 04.08.2009 в 18:05.
АлексЮстасу вне форума  
 
Непрочитано 05.08.2009, 22:36
#64
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
Вот нашел еще такую штуку:
PL2ML - convert polylines (LWPOLYLINE) to multilines (MLINE) - LISP/VLX
Кстати, в этой замене полилиний на мультилинии не хватает выбора вариантов: удалять исходные полилинии или сохранять их. (Как в ML1). Очень полезный вариант. В той же ML1 он позволяет создавать на одной мультилинии дубликат в виде другой - когда нужно, чтобы оси двух разных мультилиний совпадали.
АлексЮстасу вне форума  
 
Непрочитано 06.08.2009, 10:28
#65
VVA

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


Вариант с Description
Код:
[Выделить все]
(defun SETML (/ ml_st dict opis)
;;; Из диалогового  окна выбираем стиль МЛИНИИ
;;; И устанавливаем его текущим
;;; http://forum.dwg.ru/showthread.php?t=3127&page=3
 (defun mydcl (zagl info-list / fl ret dcl_id)
    (if (null zagl)
      (setq zagl "Выбор")
    ) ;_ end of if
    (setq fl (vl-filename-mktemp "mip" nil ".dcl"))
    (setq ret (open fl "w"))
    (mapcar
      '(lambda (x) (write-line x ret))
      (list "mip_msg : dialog { "
            (strcat "label=\"" zagl "\";")
            " :list_box {"
            "alignment=top ;"
             "tabs=\"28\";"
            "width=51 ;"
            (if (> (length info-list) 26)
              "height= 26 ;"
              (strcat "height= " (itoa (+ 3 (length info-list))) ";")
            ) ;_ end of if
            "is_tab_stop = false ;"
            "key = \"info\";}"
            "ok_cancel;}"
      ) ;_ end of list
    ) ;_ end of mapcar
    (setq ret (close ret))
    (if (setq dcl_id (load_dialog fl))
      (if (new_dialog "mip_msg" dcl_id)
        (progn
          (start_list "info")
          (mapcar 'add_list info-list)
          (end_list)
          (set_tile "info" "0")
          (setq ret (car info-list))
          (action_tile
            "info"
            "(setq ret (nth (atoi $value) info-list))"
          ) ;_ end of action_tile
          (action_tile
            "cancel"
            "(progn(setq ret nil)(done_dialog 0))"
          ) ;_ end of action_tile
          (action_tile "accept" "(done_dialog 1)")
          (start_dialog)
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of if
    (unload_dialog dcl_id)
    ret
  ) ;_ end of defun
  (vl-load-com)
  (if (and
        (setq
          dict (mapcar 'cdr
                       (vl-remove-if-not
                         '(lambda (x) (= 3 (car x)))
                         (dictsearch (namedobjdict) "ACAD_MLINESTYLE")
                       ) ;_ end of vl-remove-if-not
               ) ;_ end of mapcar
        ) ;_ end of setq
        (setq
          opis (mapcar 'cdr
                       (vl-remove-if-not
                         '(lambda (x) (= 350 (car x)))
                         (dictsearch (namedobjdict) "ACAD_MLINESTYLE")
                       ) ;_ end of vl-remove-if-not
               ) ;_ end of mapcar
        )
        (setq opis (mapcar '(lambda(x)(cdr(assoc 3 (entget x)))) opis))
        (setq dict (mapcar '(lambda(x y)(strcat x "\t" y )) dict opis))
        (setq ml_st (mydcl "Выбор стиля мультилинии" dict))
      ) ;_ end of and
    (setvar "CMLSTYLE"
    (if (setq opis (VL-STRING-SEARCH "\t" ml_st))
        (substr ml_st 1 opis)
        ml_st
      )
     )
  ) ;_ end of if
  (princ)
) ;_ end of defun
(defun C:SETML ()(SETML))
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 06.08.2009 в 16:53.
VVA вне форума  
 
Непрочитано 06.08.2009, 13:57
#66
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
Вариант с Description
Работает! Описания (Description) подсказываются!
Меня сначала напугала толщина и размер букв, но, методом сравнительного тыка, убрав строку
"fixed_width_font=true;"
получил такие же тонкие буквы, как и в прежнем варианте.
Тонкие читаются лучше, а, главное, больше похожи на стили текстов в других, привычных окнах.
Надеюсь, при этом ничего не испортил?

А в старую SELML добавить описания (Description) возможно? Я попытался из последнего лиспа выделить нужный фрагмент, но SELML написана немного по-другому, и я не нашел аналогичных мест...

Последний раз редактировалось АлексЮстасу, 06.08.2009 в 17:04.
АлексЮстасу вне форума  
 
Непрочитано 06.08.2009, 17:21
#67
VVA

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


АлексЮстасу, Лучшее враг хорошего. Убрал "fixed_width_font=true;" из #65
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.08.2009, 21:58
#68
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
АлексЮстасу, Лучшее враг хорошего. Убрал "fixed_width_font=true;" из #65
Еще раз спасибо!
Я еще у себя сразу заменил название окна с "Выбор стиля мультилинии" на "Назначить активный стиль мультилинии" - так по-моему понятнее.
И расширил окно с помощью замены 51 на 71:
"width=71 ;"
Это чтобы описания почти полностью помещались в окно.

Для проектируемой панельки работы с мультилиниями сочинил три иконки для кнопок - прилагаю.

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

Осталось только научиться мультилинии разрезать, сшивать и взрывать - все с учетом сделанных декоративных разрывов и примыканий средствами _.mledit.
Взрывание - самое сложное, т.к. взрывать нужно так, чтобы сохранялись штриховки как отдельный элемент, а каждой составляющей можно было назначить нужный слой и толщину (цвет и стиль уже заданы). Последнее лучше сделать с помощью текстового файла-описания элементов - какими они должны быть после взрывания.
И еще - было бы замечательно иметь возможность после взрывания образовывать границу штриховки (она же контур площади мультилинии) и создавать маску (Wipeout) в площади мультилиний.
Вложения
Тип файла: rar иконки_для_мультилиний.rar (837 байт, 108 просмотров)
АлексЮстасу вне форума  
 
Непрочитано 12.08.2009, 14:19
#69
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
АлексЮстасу, Лучшее враг хорошего.
Еще возникла небольшая проблема - после макроса, назначающего активную мультилинию (SETML), выбирающего заменямый стиль (SELML) и самой замены (ML1) часто происходит потеря установок всех привязок.
Макрос:
^C^C_SETML SELML;ML1;Y;
При раздельном запуске каждой из этих прог потери назначенных привязок вроде бы не наблюдалось.
С чем это может быть связано?
АлексЮстасу вне форума  
 
Непрочитано 12.08.2009, 15:04
#70
VVA

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


АлексЮстасу,
Цитата:
При раздельном запуске каждой из этих прог потери назначенных привязок вроде бы не наблюдалось.
С чем это может быть связано?
В этом случае виноваты только звезды, магнитные бури и синоптики (последние виноваты всегда )
Могу предложить только запоминать привязку и восстанавливать ее снова.
Что-то типа такого (пишу без Автокада со всеми вытекающими )
Код:
[Выделить все]
^C^C(setq osm(getvar "OSMODE"));SETML;SELML;ML1;Y;(setvar "OSMODE" osm)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.08.2009, 16:55
#71
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
АлексЮстасу,
В этом случае виноваты только звезды, магнитные бури и синоптики (последние виноваты всегда )
Могу предложить только запоминать привязку и восстанавливать ее снова.
Что-то типа такого (пишу без Автокада со всеми вытекающими )
Код:
[Выделить все]
^C^C(setq osm(getvar "OSMODE"));SETML;SELML;ML1;Y;(setvar "OSMODE" osm)
Спасибо, сейчас попробую!
Т.е. эти потери настроек привязки не лечатся? В целом спонтанны?
У меня было подозрение, что это как-то связано с ref-файлами...

Правильно, что в результате OSMODE запомнятся все установленные настройки привязок?
АлексЮстасу вне форума  
 
Непрочитано 12.08.2009, 17:36
#72
VVA

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


Цитата:
Т.е. эти потери настроек привязки не лечатся? В целом спонтанны?
Чтобы что-то утверждать, нужно посмотреть на код SELML и ML1
Цитата:
Правильно, что в результате OSMODE запомнятся все установленные настройки привязок?
В результате сохранения значения OSMODE запомнятся все установленные настройки привязок.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.08.2009, 17:43
#73
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от VVA Посмотреть сообщение
Чтобы что-то утверждать, нужно посмотреть на код SELML и ML1
тем более, что их автор VVA хорошо известен
АлексЮстасу вне форума  
 
Непрочитано 12.08.2009, 18:15
#74
VVA

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


Я много чего писал, всего уже не помню
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.08.2009, 18:54
#75
andery


 
Регистрация: 27.12.2007
Сообщений: 132
<phrase 1=


Как сделать чтоб мультилиния всегда в любом файле начиналась с центра? А то в каждом новом файле приходится менять расположение.
andery вне форума  
 
Непрочитано 12.08.2009, 18:58
#76
VVA

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


andery, Отредактируй стандартную кнопку или создай свою
Код:
[Выделить все]
^C^C_mline;_j;_z;
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.08.2009, 21:09
#77
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от andery Посмотреть сообщение
Как сделать чтоб мультилиния всегда в любом файле начиналась с центра? А то в каждом новом файле приходится менять расположение.
создай тулпалетку для мультилиний, в которой можно для каждой мультилинии описать не только привязки к оси, но и масштаб, слой, цвет, толщину и стиль.
АлексЮстасу вне форума  
 
Непрочитано 04.10.2009, 14:41
#78
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


а цвет у уже нарисованной мультилинии можно поменять?

у меня слой меняется нормально, а цвет я никак не могу поменять
faeto1982 вне форума  
 
Непрочитано 04.10.2009, 15:28
#79
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


faeto1982, если в стиле мультилинии цвет элементов задать "По Слою", то при изменении цвета слоя цвет м.линии будет изменяться.
Хмурый вне форума  
 
Непрочитано 04.10.2009, 15:50
#80
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


Хмурый я пробовал и "По Слою" и "По Блоку" видимо какой-то глюк завтра на работе попробую проверить. Главное это возможно, значит буду пытаться исправить.

Попробовал в 2007 и в 2009 пока нифига.
В стандартной мультилинии по умолчанию вроде стоит "По Слою", значит должна меняться.

Последний раз редактировалось faeto1982, 04.10.2009 в 16:00.
faeto1982 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Можно ли вместо отрезков чертить сразу двумя паралельными линиями

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно в Автокаде чертить сразу в масштабе? Student AutoCAD 199 23.07.2010 17:09
Москва не сразу строится Perezz!! Разное 20 21.04.2009 23:52
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46