Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как быстро вырезать фрагмент чертежа??!!!
Регистрация: 28.06.2005
Сообщений: 3
|
||
Просмотров: 85175
|
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
>vitamin
В СПДС графикс (это такая примочка к акаду см. http://www.autocad.ru/application/prod_931.htm ) в версии для асад 2002 есть команда SPGRFFRAGM , она и "вырезает". Но это не единственный метод. Можно просто очертить полилинией нужный контур, и с помощью команды из express tools (тож примочка) EXTRIM - обрезать примитивы выходящие за контур. Но все это в общем-то никому не надо (ИМХО) , потому как есть замечательная вещь viewport, позволяющая вставиль в лист любой узел ничего не обрезая, и есть команда xclip , задающая видимый контур внешней ссылки. К тому-же проблемы с обрезанием обязательно возникнут при попытке вырезать контуром по блоку, внешней ссылке, возможно штриховке, солидам, примитивам из других приложений и т.д. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Вот что нашлось в моей коллекции. Может, кто из программистов осовременит. Вызывается набором слова DTL
Цитата:
|
|||
![]() |
|
||||
Помошник архитектора Регистрация: 16.01.2007
СНГ
Сообщений: 6
|
Угу! Но в некоторых архитектурных изваяниях на autocad-е при помощи Super Hatch, например. заливаются окна небесами из разных jpg-ов. К сожалению Viewport в Super Hatch не вставить - вот и приходится выдумывать :?
Было бы хорошо обвести произвольным контуром шматочек сложного и хитрого узла и превратить его тут же в блок. А потом уж че угодно делай ![]() |
|||
![]() |
|
||||
конструктор Регистрация: 28.08.2003
Мос. область
Сообщений: 119
|
В марте 2006г я поместил на форуме простенький лисп C:frag (поищите поиском), который вырезает фрагмент чертежа в модели.
Но тут же был заклеван любителями лайутов. Я конструктор - механик, черчу в модели, а этот лисп очень полезен для черчения выносных фрагментов чертежа. |
|||
![]() |
|
||||
Помошник архитектора Регистрация: 16.01.2007
СНГ
Сообщений: 6
|
Да, для примитивов все нормально, но нужно не удалить все лишнее вогруг фрагмента а скопировать его в буфер. Команда extrim не имеет опции копирования - она портит исходный чертеж. Приходится делать копию чертежа, открывать его в другом окне и т.д. и так для каждого кусочка
![]() Вот если бы в экспресс была команда excopy 8) ! |
|||
![]() |
|
||||
Помошник архитектора Регистрация: 16.01.2007
СНГ
Сообщений: 6
|
Видать достали юзеры...
Хотелось пригласить продолжить тему - каждый раз, делая лишние операции или изобретая велосипед, мы отнимаем у себя время. Может есть все-таки такая примочка? Я вовсе не противник viewport-ов и прочих прелестей acadа - использую постоянно. Но бывает надо и так. И в конце концов, если кто-то придумал тот же extrim, значит это кому-нибудь нужно? |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Действительно, былобы очень замечательно, нарисовать замкнутый контур и скопировать все что внутри него, а примитивы которые вылезают за контур обрезались, только не в текущем рисунке, а там куда они копируются.
|
|||
![]() |
|
||||
Инженер по автоматизации (строительство) Регистрация: 05.05.2006
Люберцы
Сообщений: 241
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 25.08.2005
Сообщений: 2,556
|
Цитата:
![]()
__________________
Смысл существования AutoCAD-а в самом существовании AutoCAD-а. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Есть еще один способ, в некоторых случаях очень удобный:
сделать из вырезаемого фрагмента блок (быстро - скопировать в буфер и вставить как блок), вырисовать поверх обрезаемый контур, и обрезать блок xclip. Плюсы + работает с любыми объектами (это огромный плюс) + все делается быстро и просто и в модели. Минусы - неэкономично к ресурсам, т.к. помимо вырезаемого в чертеже болтается еще куча объектов, - при желании поменять что-то в фрагменте придется лезть в блок, - контур не может сожержать дуги (т.е. круг, овал и т.п. - отдыхают)
__________________
apel.fas |
|||
![]() |
|
||||
конструктор Регистрация: 28.08.2003
Мос. область
Сообщений: 119
|
Господа двугушники! Не поленюсь выложить вторично лисп, а то Вам лень копаться в поиске.
(defun C:frag (/) (SETQ sna (GETVAR "osmode")) (setq cmd (getvar "cmdecho")) (setq la (getvar "Clayer")) (setq co (getvar "cecolor")) (setvar "osmode" 0) (setvar "clayer" "0") (setvar "cmdecho" 1) (setvar "cecolor" "1") (setq pt1 (getpoint "\n Рамка выбора - слева вверх направо>> Первая точка: " ) ) (command "rectang" pt1 pause) (Setq na (entlast)) (COMMAND "line" "@" pt1 "") (setq SS (entget (entlast))) (setq pt2 (cdr (assoc 10 SS))) (setq pt3 (list (car pt1) (cadr pt2))) (setq pt4 (list (car pt2) (cadr pt1))) (entdel (entlast)) (setq pt5 (list (- (car pt1) 1) (- (cadr pt1) 1))) (setq pt6 (list (+ (car pt2) 1) (+ (cadr pt2) 1))) (setq pt7 (list (- (car pt3) 1) (+ (cadr pt3) 1))) (setq pt8 (list (+ (car pt4) 1) (- (cadr pt4) 1))) (command "trim" na "") (command "F" pt5 pt7 "" "F" pt7 pt6 "" "F" pt6 pt8 "" "F" pt8 pt5 "") (Command "") (setq ss1 (ssget "w" pt1 pt2)) (command "copybase" pt1 ss1 "") (command "undo" 2) (entdel na) (setq pt4 (getpoint "\n Место вставки фрагмента\n")) (command "pasteclip" pt4) (SETVAR "osmode" sna) (setvar "cmdecho" cmd) (setvar "Clayer" la) (setvar "Cecolor" co) (princ) ) Как видите, в нем используется не extrim, а простой trim, но вставка производится через буфер. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Хотя лично мне эта тема и не особо близка, позволю себе немного покритиковать последний лисп.
1. Не учитывается вариант локализации. 2. Все переменные глобальные - это чем-то объясняется? 3. Нет обработки ошибок. 4. Визуально не контролируется "куда" вставляется обрезанный фрагмент 5. Функция _trim с опцией _fence иногда некорректно обрабатывает полилинии, пересекающие границу (обрезка выполняется только 1 раз, независимо от количества пересечений). 6. Если границу "визуально" пересекают блоки или примитивы, лежащие не в текущей системе координат или имеющие высоту, отличную от elevation, обрезка может быть выполнена некорректно. 7. Не отслеживается состояние слоя "0" - он может быть выключен, заблокирован, заморожен... 8. Не отслеживается вариант отказа пользователя от продолжения работы в момент выбора pt1 или выполнения _rectang. Если писать лисп, учитывающий все эти нюансы, его длина явно будет раз этак в 5-6 больше представленной ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Помошник архитектора Регистрация: 16.01.2007
СНГ
Сообщений: 6
|
Apelsinov
Цитата:
"Замечательная вещь" viewport в модельном пространстве не может принимать произвольную форму, а xclip работает только с блоками или внешними чертежами причем в качестве ссылки не получается взять текущий же чертеж. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Если бы эта тема обсуждалась в эпоху Автокад-10, цены бы ей не было... |
|||
![]() |
|
||||
Цитата:
Сечас уже кажется есть версия 5.5 для Автокада.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Вот тут и есть кое-что по этой теме.
Добавлено: Тут появилась новая программка от Дениса Флюстикова "Фрагмент чертежа по прямоуг. или кругл. границе". Самый простой способ из всех, что я видел. Работает безотказно. Может как выбрать существующий контур фрагмента (произвольной формы), так и отрисовать новый круг, прямоугольник или ломаную полилинию. Ссылки иногда слетают, поэтому расположу текст последней, проверенной мною версии программы здесь: Код:
Последний раз редактировалось skkkk, 29.11.2009 в 16:35. |
|||
![]() |