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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Модификация оффсета

Модификация оффсета

Ответ
Поиск в этой теме
Непрочитано 13.01.2008, 23:42 #1
Модификация оффсета
Бали
 
Инженер
 
Уфа
Регистрация: 23.03.2007
Сообщений: 197

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

Как модифицировать команду offset так, чтобы после запроса о расстоянии перемещения (through), запрашивались бы еще и свойства создаваемого объекта, типа команды matchprop? Ну и шоб (как и с расстоянием) эти свойства в дефолте остались.

Последний раз редактировалось Бали, 14.01.2008 в 08:29.
Просмотров: 1869
 
Непрочитано 14.01.2008, 09:06
#2
Profan


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


В каком еще дефолте? Свойства объекта сохраняются вместе с объектом. Нет объекта - нет свойств.
Здесь возможен только вариант изменения свойств объекта после выполнения команды "_OFFSET" ("ПОДОБИЕ"). Список этих изменений, конечно, можно заложить в Lisp-программе. IMHO.

Последний раз редактировалось Profan, 14.01.2008 в 09:20.
Profan вне форума  
 
Автор темы   Непрочитано 14.01.2008, 09:34
#3
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Я походу непонятно изложил суть вопроса. К примеру есть линия сплошная (слой 1), мне нужно оффсетом сделать копию этой линии на расстоянии допустим 100 мм, но так, чтобы эта копия была уже на другом слое (допустим в слое 2).
Бали вне форума  
 
Автор темы   Непрочитано 14.01.2008, 09:36
#4
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


получается некоторое подобие симбиоза двух команд - offset и matchprop
Бали вне форума  
 
Непрочитано 14.01.2008, 09:57
#5
Кулик Алексей aka kpblc
Moderator

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


http://www.cadtutor.net/forum/showthread.php?t=19343 - как пример.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.01.2008, 10:12
#6
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


почти то что я хотел, но не выбирается расстояние. вручную каждый раз лисп менять?
Бали вне форума  
 
Непрочитано 14.01.2008, 10:24
#7
Кулик Алексей aka kpblc
Moderator

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


А имя слоя, цвет, вес и (или) тип линии создаваемого подобия известны? Или тут достаточно просто не скрывать окно свойств ?
---
Добавлено: для варинта изменения только слоя:
Код:
[Выделить все]
(defun c:ce (/ *error* adoc ent pt dist lst_sysvar layer_name)
  (defun *error* (msg)
    (mapcar '(lambda (x) (setvar (car x) (cdr x))) lst_sysvar)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vl-load-com)
  (setq adoc       (vla-get-activedocument (vlax-get-acad-object))
        lst_sysvar (mapcar '(lambda (x) (cons x (getvar x))) '("cmdecho" "nomutt"))
        ) ;_ end of setq
  (while
    (and (= (type (setq ent
                         (vl-catch-all-apply
                           '(lambda () (car (entsel "\nВыберите примитив <Отмена> : ")))
                           ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                  ) ;_ end of type
            'ename
            ) ;_ end of =
         (= (type (setq dist
                         (vl-catch-all-apply
                           '(lambda ()
                              (getdist "\nРасстояние offset'a <Отмена> : ")
                              ) ;_ end of lambda
                           ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                  ) ;_ end of type
            'real
            ) ;_ end of =
         (= (type (setq pt (vl-catch-all-apply
                             '(lambda ()
                                (getpoint "\nТочка на стороне offset'a <Отмена> : ")
                                ) ;_ end of lambda
                             ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                  ) ;_ end of type
            'list
            ) ;_ end of =
         pt
         ) ;_ end of and
     (mapcar '(lambda (a b) (setvar (car a) b)) lst_sysvar '(0 1))
     (command "_.offset" dist ent "_none" pt "")
     (if (not (tblobjname "layer"
                          (setq layer_name "Мой новый и безумной крутой слой")
                          ) ;_ end of TBLOBJNAME
              ) ;_ end of not
       (vla-add (vla-get-layers adoc) layer_name)
       ) ;_ end of if
     (command "_.change" (entlast) "" "_p" "_la" layer_name "")
     (vla-endundomark adoc)
     (mapcar '(lambda (x) (setvar (car x) (cdr x))) lst_sysvar)
     ) ;_ end of while
  (mapcar '(lambda (x) (setvar (car x) (cdr x))) lst_sysvar)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.01.2008, 12:01
#8
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


(defun c:ce (/ ent pt)
(while (and
(setq ent (car (entsel "\nSelect object to offset 3/4 or <exit>:")))
(setq pt (getpoint "\nSpecify point on side to offset:"))
)
(command "offsetdist" (getreal))
(command "._offset" "" ent "_non" pt "")
(command "._change" (entlast) "" "_P" "_LA" "0" "")
)
(princ))


чето типа этого хотелось получить. вроде получилось! Всем спасибо!

Последний раз редактировалось Бали, 14.01.2008 в 12:38.
Бали вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Модификация оффсета



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Net. Создание и модификация материала Павлюкас Готовые программы 27 08.12.2010 10:17
DwgRuLispLib: Модификация ename-представлений примитивов Кулик Алексей aka kpblc Библиотека функций 6 07.12.2007 13:55
Создание и модификация материала. Павлюкас Программирование 3 14.11.2007 16:32
Модификация свойств оболочки Baires Прочее. Программное обеспечение 1 02.06.2007 10:13