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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Текущие настройки по объекту

Текущие настройки по объекту

Ответ
Поиск в этой теме
Непрочитано 24.06.2006, 14:48 #1
Текущие настройки по объекту
asys
 
архитектор
 
Ростов-на-Дону
Регистрация: 10.08.2005
Сообщений: 5,342

Уважаемые мастера, не могли бы вы сварганить мне программулину следующего назначения. Допустим для черчения у меня настроен как-то acad (цвет, вес линии, слой) Я вызоваю команду требуемой программки > предлагается выбрать объект (только один) > после выбора настройка acadа для черчения становятся идентичными свойствам выбранного объекта. Ну вроде LAYMCUR, только она делает текущим слой объекта, а мне надо чтоб цвет, вес, тип линии и п.р. остальное. Да, может ввести окно для настроек, как в MATCHPROP - ставим галки возле того какие свойства подобрать и щелкаем на объект
Просмотров: 4908
 
Непрочитано 24.06.2006, 17:14
#2
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Есть у меня такая програмка. Писал я ее давно, однако использую ее таком виде по сей день. Добавил для нее сокращение и при активном черченни использую ее очень и очень часто. Более того когда сажусь за чужой компютер ипытываю резкий дискамфорт при установке настроек

Дилога с настройками, конечно, нет.

Кроме стандартных свойсв при выборе текста устанавливается соответствующий стиль и высота, при выборе штриховки - имя образца и масштаб, и, наконец, при выборе размера устанавливается стиль, а если для данного размера назначен override то настройки будут времено преоределены под него.

Так что если ничего лучшего не появится - пользуй

Код:
[Выделить все]
; установка свойств по выбранному примитиву
(defun c:ust_sv (/ a1 a2 a_ley a_col a_lt a_name a_lw)
  (setq a1 (car (entsel "\nSelect object: ")))

  (if a1
    (progn

      (setq
        a2     (entget a1)
        a_name (cdr (assoc 0 a2)) ;вид примитива
        a_ley  (cdr (assoc 8 a2)) ;слой примитива
        a_col  (cdr (assoc 62 a2)) ;цвет примитива
        a_lt   (cdr (assoc 6 a2)) ;тип линии 
        a_ls   (cdr (assoc 48 a2)) ;масштаб типа линии
        a_lw   (cdr (assoc 370 a2)) ;вес линии
      )
      (if a_col
        (setvar "cecolor"
                (if (numberp a_col)
                  (itoa a_col)
                  a_col
                )
        )
        (setvar "cecolor" "BYLAYER")
      )

      (if a_lt

        (setvar "celtype" a_lt)
        (setvar "celtype" "BYLAYER")
      )

      (if a_ley

        (setvar "clayer" a_ley)
        (setvar "clayer" "0")
      )

      (if a_ls

        (setvar "celtscale" a_ls)
        (setvar "celtscale" 1)
      )

      (if a_lw

        (setvar "CELWEIGHT" a_lw)
        (setvar "CELWEIGHT" -1)
      )


      (if (eq a_name "HATCH") ;если примитив штриховка
        (progn
          (if (setq ha (cdr (assoc 52 a2)))
            (setvar "hpang" ha)
          )
          (setvar "hpname" (cdr (assoc 2 a2)))
          (setvar "hpscale" (cdr (assoc 41 a2)))
        )
      ) ;if

      (if (eq a_name "TEXT") ;если примитив текст
        (progn
          (setvar "textsize" (cdr (assoc 40 a2)))
          (setvar "textstyle" (cdr (assoc 7 a2)))
        )
      ) ;if


      (if (eq a_name "DIMENSION") ;если примитив размер
        (progn
          (command "_.-dimstyle" "_r" "" a1)
        )
      ) ;if

    )
  )

  (princ)
)
AY вне форума  
 
Непрочитано 26.06.2006, 10:32 Re: Текущие настройки по объекту
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Asys
Уважаемые мастера, не могли бы вы сварганить мне программулину следующего назначения. Допустим для черчения у меня настроен как-то acad (цвет, вес линии, слой) Я вызоваю команду требуемой программки > предлагается выбрать объект (только один) > после выбора настройка acadа для черчения становятся идентичными свойствам выбранного объекта. Ну вроде LAYMCUR, только она делает текущим слой объекта, а мне надо чтоб цвет, вес, тип линии и п.р. остальное. Да, может ввести окно для настроек, как в MATCHPROP - ставим галки возле того какие свойства подобрать и щелкаем на объект
Уважаемый Asys.
А не проще ли хранить настройки по рабоче-крестьянски в прототипе?
Или делать это программой инициализации в начале работы или кнопочкой этой же проги в процессе?
Примитив-прототип - это возможные ошибки. Потребуются проверки примитива перед использованием. ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 26.06.2006, 10:46
#4
Кочетков Андрей

Java/Kotlin/Go
 
Регистрация: 03.02.2006
Сообщений: 5,786


Вот такая вот игрушка:
Код:
[Выделить все]
(defun C:kist() 
  (if 
  (setq cobj (car 
          (entsel) 
       ) 
   ) 
  (progn 
    (setq cobj (vlax-ename->vla-object 
       cobj 
       ) 
     ) 
 (setvar "clayer" (vla-get-layer cobj)) 
 (setvar "cecolor"(itoa(vla-get-color cobj))) 
 (setvar "celweight"(vla-get-lineweight cobj)) 
 (setvar "celtype"(vla-get-linetype cobj)) 
    ) 
  ) 
  (princ) 
  )
Кочетков Андрей вне форума  
 
Автор темы   Непрочитано 26.06.2006, 12:31
#5
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,342


>AY,Кочетков Андрей

Cупер!!! спасибо
>Alan
так в процессе требуется чертить то такими объектами, то такими, а настраивать руками лень
asys вне форума  
 
Непрочитано 26.06.2006, 14:19
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Asys
....
>Alan
так в процессе требуется чертить то такими объектами, то такими, а настраивать руками лень
Я предпочитаю иметь вышеназванные свойства примитивов ПОСЛОЮ.
И использую только одну стандартную кнопку Автокада - "Сделать слой объекта текущим"
Писать ЛИСП надо, когда нет стандартных команд или они плохи. ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 26.06.2006, 14:29
#7
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,342


Цитата:
Писать ЛИСП надо, когда нет стандартных команд или они плохи
или лень 8)
asys вне форума  
 
Непрочитано 26.06.2006, 15:39
#8
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Asys
или лень 8)
Согласен, лень двигатель! Когда мне стало лень, я написал ПАРКС.
Но! Если есть штатное средство, надо его знать и использовать.
Повторюсь.
Примитив-прототип - это возможные ошибки.
Потребуются проверки примитива перед использованием, например, на соответствие какого-либо свойства - ПОСЛОЮ.
Я считаю что это свойство в АВТОКАДЕ наиболее правильное, всё остальное - исключения. ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 26.06.2006, 15:54
#9
Кулик Алексей aka kpblc
Moderator

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


> Alan : Код Кочетков Андрей (потс №4) учитывает все варианты.
Цитата:
Сообщение от Asys
так в процессе требуется чертить то такими объектами, то такими, а настраивать руками лень
А сделать кнопочку, которая установит все эти настройки на нужные значения? Это ИМХО будет проще чем пытаться потом понять, что и где не так. Формализый задачу, лисп у тебя будет готов минут за 5. Максимум - 10.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.06.2006, 16:10
#10
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


kpblc, представь.
Для примитива назначена какая-то бодяга. Т.е. по одному из этих четырёх параметров (см.выше) он не вписывается в СТП.
Ну ошибся один раз Asys. На глаз не всё увидишь. И эта ошибка размножится. А потом понадобится еще один лиспик для приведения этого в порядок и т.д.
Кочетков Андрей, kpblc и др. не справяться!?
Нельзя на каждый чих писать лиспик. В системку их однако надо... ЯТД
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 26.06.2006, 16:22
#11
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Alan
ПОСЛОЮ - не панацея. т.к. бывает, что нужных вариантов сочетания свойств гораздо больше чем слоев. Зависит это скорее от специфики работы, и от логики в организации самих слоев. К примеру , на чертеже есть слой AAA на кот. расположены элементы А, но часть из них необходимо показать пунктиром а часть сплошной линией, по-вашему придестся создать слой ААА-1 с др. типом линий, а это далеко не всегда удобно.

Что касаемо программки, не плохая идея, уважаемый Кочетков Андрей в упрощенном варианте ее осуществил, написать нужные проверки - это дело техники, не шибко-то сложное.

Если честно - я тоже попытался, с проверками, но без библиотечных моих функций получается больно громоздко, а по сути - то-же самое. ИМХО еще хорошо бы делать в проге откат на умолчальные настройки.
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 26.06.2006, 16:24
#12
Кулик Алексей aka kpblc
Moderator

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


> Alan : так я говорил, что код учитывает все возможные варианты. Подобное положение дел я постоянно расхлебываю, приходится извращаться. Поэтому применять подобный код у себя я не буду. Принцип у меня - все ByLayer, внутри блоков - ByBlock, ну и так далее. Но! Это у меня, кому-то подобный подход может показаться ненормальным. Сколько людей столько и мнений.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 26.06.2006, 17:41
#13
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,342


Цитата:
Ну ошибся один раз Asys
не ошибся Так надо
Цитата:
т.к. бывает, что нужных вариантов сочетания свойств гораздо больше чем слоев
я кучу xref-ов насовал, слоев итак туева хуча :?
Цитата:
часть из них необходимо показать пунктиром а часть сплошной линией
тут прям как в воду глядел
asys вне форума  
 
Непрочитано 26.06.2006, 21:42
#14
Кочетков Андрей

Java/Kotlin/Go
 
Регистрация: 03.02.2006
Сообщений: 5,786


http://dwg.ru/forum/viewtopic.php?t=1708
Кочетков Андрей вне форума  
 
Непрочитано 28.06.2006, 09:12
#15
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


http://dwg.ru/dwl/417
Krieger вне форума  
 
Автор темы   Непрочитано 28.06.2006, 11:04
#16
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,342


Цитата:
Сообщение от Krieger
http://dwg.ru/dwl/417
спасибо, это еще лучше, только бы еще под 2007-ю версию
asys вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Текущие настройки по объекту