dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Нормализация блоков текущего файла.

LISP. Нормализация блоков текущего файла.

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 09.06.2008, 10:30 9 | 1 #1
LISP. Нормализация блоков текущего файла.
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 34,900

Кулик Алексей aka kpblc вне форума Вставить имя

Небольшая вспомогательная программа по "нормализации блоков" текущего файла.
Пример вызова:
(norm-blocks bit)
Аргументы вызова:
  1. bit сумма любого количества следующих значений:
    • 1 ; слой объекта - "0"
    • 2 ; тип линии объекта - ByBlock
    • 4 ; вес линии объекта - ByBlock
    • 8 ; цвет линии объекта - ByBlock
    • 16 ; масштаб линии объекта - 1
    • nil или <1 - выход из программы
Код:
[Выделить все]
(norm-blocks 1)	; перевести все объекты всех блоков в слой "0", не меняя остальные
  ; настройки
(norm-blocks 2)	; изменить тип линий всех объектов всех блоков на "ByBlock", не
  ; меняя остальных свойств
(norm-blocks 7) ; изменить слой на "0" (1), тип линиии - на ByBlock (2); вес линии - на
  ; ByBlock (4)

Вложения
Тип файла: lsp norm-blocks.lsp (5.8 Кб, 3225 просмотров)
Тип файла: lsp norm-blocks_v3.lsp (5.8 Кб, 1475 просмотров)

__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 12.11.2014 в 11:34.
Просмотров: 53032
 
Непрочитано 21.06.2008, 08:47
#2
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 4,997


В каких случаях можно применить это?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.06.2008, 12:23
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,554
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


В тех случаях, когда слой, на котором установлен блок отключаешь, а он все равно виден. У нас этим грешат архитекторы или когда чертежи приходят со стороны, как правило с творческих мастерских.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.07.2008, 11:42
#4
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™


А можно добавить возможность применить команду не ко всем блокам, а только к выбранным?
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.07.2008, 12:42
#5
ButcheR

пианист
 
Регистрация: 18.02.2008
Питер
Сообщений: 395


Цитата:
Сообщение от Red Nova Посмотреть сообщение
А можно добавить возможность применить команду не ко всем блокам, а только к выбранным?
лисп поезный, но для такого случая, я думаю проще будет использовать команду "быстрый выбор"...ну или в крайняк с "группами" что-нибудь намутить.
ButcheR вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.07.2008, 12:45
#6
ButcheR

пианист
 
Регистрация: 18.02.2008
Питер
Сообщений: 395


по теме возник вопрос... X-ref тоже по сути блок... к нему тоже бы наверно полезно применять такие свойства.
Народ, кто работает с X-ref, расскажите, в какой слой его помещаете и какие свойства при этом задаёте?
ButcheR вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.07.2008, 15:27
#7
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,952
Отправить сообщение для Red Nova с помощью Skype™


Цитата:
лисп поезный
Это в смысле поездом удобно перевозить?
Цитата:
я думаю проще будет использовать команду "быстрый выбор"...ну или в крайняк с "группами" что-нибудь намутить.
Чета ты совсем в дебри ушел. Причем тут быстрый выбор и группы.
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.07.2008, 15:46
#8
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 9,743


Смотрю с точки зрения изготовления подосновы из чужого (архитектурного) чертежа.
Согласен с №4. На загруженном чертеже невозможно проконтролировать результат. Кроме того, инструкцию по кодам придется записать на бумажке и приклеить на стену, так как не каждый день по 5 раз будет применятся. Либо несколько кнопок сделать. Хотя это возможно
Надо бы иметь возможность вернуть в исходное, чтобы попробовать другой бит-код
Vova на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 20.07.2008, 00:12
#9
Кулик Алексей aka kpblc
Moderator

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


Red Nova, #4 : такой задачи не ставилось. Но в принципе возможно (правда, придется переписывать практически наполовину )
ButcheR, #6: этот лисп исключает из обработки внешние ссылки. При чем тут "в какой слой (xref) его помещаете и какие свойства при этом задаёте" не очень понятно.
Vova, #8: стандартная команда отмены должна вернуть все обратно.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.07.2008, 00:54
#10
Залётный


 
Регистрация: 15.04.2005
Сообщений: 245


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Небольшая вспомогательная программа по "нормализации блоков" текущего файла.
Пример вызова:
(norm-blocks bit)
Аргументы вызова:
  1. bit сумма любого количества следующих значений:
    • 1 ; слой объекта - "0"
    • 2 ; тип линии объекта - ByBlock
    • 4 ; вес линии объекта - ByBlock
    • 8 ; цвет линии объекта - ByBlock
    • 16 ; масштаб линии объекта - 1
    • nil или <1 - выход из программы
Код:
[Выделить все]
(norm-blocks 1)	; перевести все объекты всех блоков в слой "0", не меняя остальные
  ; настройки
(norm-blocks 2)	; изменить тип линий всех объектов всех блоков на "ByBlock", не
  ; меняя остальных свойств
(norm-blocks 7) ; изменить слой на "0" (1), тип линиии - на ByBlock (2); вес линии - на
  ; ByBlock (4)
Возможно ли добавить обнуление толщины полилиний и возможность изменения свойств всех елементов блока, особенно цвета, ByLayer.

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

Было бы не плохо ещё заменять в блоках, если встречаются, ttf шрифты на какой-нибудь стандартный shx, например simplex. Особенно это актуально если внутри блока применяется Mtext и фонт прописан прямо в нём.
Залётный вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 20.07.2008, 01:27
#11
Кулик Алексей aka kpblc
Moderator

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


Теоретически - возможно. Практически...
1) Практически перенос толщин полилиний внутри блока в 0 проблем не составляет. Завтра только, сегодня уже силенок не хватат.
2) Установка свойств примитивов внутри блока в ByLayer лично я считаю неверным принципиально (см. аттач): слева блок с цветом примитива "ByLayer", справа - "ByBlock". Как разница, ощущается?
3) Замена только стиля (кстати, на какой? На текущий?) тоже проблем в общем-то не составит. Но вот снятие форматирования mtext'ов... Тут надо просто искать гарантированно работающий код.
Кстати, как поступать с атрибутами блоков?
P.S. Скорость работы такого лиспа будет, скорее всего, на порядок ниже, чем у исходного.
P.P.S. Я уже несколько раз убеждался, что под "нормализацией" каждый понимает что-то свое
Вложения
Тип файла: dwg
DWG 2004
ByLayer_vs_ByBlock.dwg (68.1 Кб, 14191 просмотров)
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.07.2008, 03:26
#12
Залётный


 
Регистрация: 15.04.2005
Сообщений: 245


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Теоретически - возможно. Практически...
1) Практически перенос толщин полилиний внутри блока в 0 проблем не составляет. Завтра только, сегодня уже силенок не хватат.
Горячки тут нет. Можно и завтра и послезавтра и в любое удобное для тебя время.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
2) Установка свойств примитивов внутри блока в ByLayer лично я считаю неверным принципиально (см. аттач): слева блок с цветом примитива "ByLayer", справа - "ByBlock". Как разница, ощущается?
Вообщем то, как мне кажется, я представляю разницу и сам испoльзую внутри блока разные премитивы с разными свойствами (ByLayer и ByBlock) для того, чтобы можно было более гибко их использовать. Однако стараюсь этим не злоупотреблять т.к. существуют смежники и для них такая штука не подарок. Часто мы используем в качестве подосновы файлы смежников (прямой XREF overlay, для того, чтобы они тоже могли использовать наши) их рабочего чертежа. Если все элементы у них выполнены с цветом ByLayer, проблем не возникает. РАботаю с VIZRETAIN - 1 и просто меняю цвет их слоёв на тот, который меня устраивает.

Для нормализации подосновы, по крайней мере у нас, требуется чтобы она была только фоном и печаталась тонкими линиями. Поскольку у нас печать производится по цвету примитива, простая замента цвета всех елементов блока (и размерных стилей) на цвет ByLayer и замена цвета всех слоёв на необходимый цвет, в принципе, решает эту задачу.


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
3) Замена только стиля (кстати, на какой? На текущий?) тоже проблем в общем-то не составит. Но вот снятие форматирования mtext'ов... Тут надо просто искать гарантированно работающий код.
Кстати, как поступать с атрибутами блоков?
P.S. Скорость работы такого лиспа будет, скорее всего, на порядок ниже, чем у исходного.
В настоящее время использую два лиспа ChStyle и StripMtext (см. атач.)
Взяты очень давно отсюда:
ChStyle
StripMtext v2.1 R15+ Copyright Steve Doman sdoman@yahoo.com 8/25/01
Полагаю замена должна производится глобально т.е. и в атрибутах тоже.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
P.P.S. Я уже несколько раз убеждался, что под "нормализацией" каждый понимает что-то свое
Полностью согласен. Как я понял, твой лисп предназначен для подготовки пришлых файлов для использования в своей работе.
Вполне вероятно я мог и ошибиться
Вложения
Тип файла: zip ChStyle_StripMtext.ZIP (1.8 Кб, 479 просмотров)
Залётный вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.07.2008, 11:45
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,554
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Залетный, Вариант осюда. Запроса нет, глобальная ширина полилиний принудительно устанавливается в 0
Код:
[Выделить все]
;;published by kpblc
;;http://www.arcada.com.ua/forum/viewtopic.php?t=526
;;modyfied and published by VVA
;;http://www.cadtutor.net/forum/showthread.php?t=13295
;|=============================================================================
*    Функция "нормализации" блоков активного файла. В зависимости от ответа на
* вопрос к типу ByBlock приводится либо тип линии, либо вес линии, либо цвет,
* либо все вместе (при пустом ответе, т.е. по умолчанию).
*    Обрабатываются все блоки, без исключения.
*  Не обрабатываются внешние ссылки
=============================================================================|;
(defun c:normblocks (/ adoc answer lays lock lay *error* ans0 atype cnt isRus)
 (defun *error* (msg)(princ msg)
   (if lock (foreach x lock (vla-put-lock x :vlax-true)))(vl-cmdf "_.Redraw"))
  (vl-load-com)(setq cnt 0 isRus (= (getvar "DWGCODEPAGE") "ANSI_1251"))
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq lays (vla-get-layers adoc))
  (vla-startundomark adoc)
  (if isRus
  (initget "Типлиний Веслиний Цвет ВСЕ LType LWeight Color All _ T W C A T W C A")
  (initget "LType LWeight Color All _ T W C A")
    )
  (if (null (setq answer
      (getkword
        (if isRus
        "\nНормализовать в блоке [Типлиний/Веслиний/Цвет/ВСЕ] <ВСЕ> : "
        "\nIn blocks to lead to norm [LType/LWeight/Color/All] <All> : "
          ))))
    (setq answer "A")) ;_ end of if
  (if isRus
    (initget "поСлою поБлоку byLayer byBlock _ byLayer byBlock byLayer byBlock")
    (initget "byLayer byBlock")
    )
  (setq atype (getkword
                (if isRus
                "\nСодержимое блока изменить на [поСлою/поБлоку] <поБлоку>:"
                "\nSet contents inside the block to [byLayer/byBlock] <byBlock>:")))

  (initget "Yes No")
  (setq ans0 (getkword
               (if isRus
               "\nИзменить слой примитивов на 0? [Yes/No] <No>:"
               "\nChange entities layer's to 0? [Yes/No] <No>:")))
  (vlax-for item (vla-get-blocks adoc)

    (if (and (= (vla-get-IsLayout item) :vlax-false)
             (= (vla-get-IsXRef item) :vlax-false))
      (progn
      (setq cnt (1+ cnt))
      (grtext -1 (strcat (if isRus "Изменяется " "Modyfied ") (vla-get-name item)))
      ;(print (strcat (if isRus "Изменяется " "Modyfied ") (vla-get-name item)))
   (vlax-for   sub_item item ;(vla-item (vla-get-blocks adoc) (vla-get-name item))
   (setq lay (vla-item lays (vla-get-layer sub_item)))
   (if (= (vla-get-lock lay) :vlax-true)
   (progn (vla-put-lock lay :vlax-false)(setq lock (cons lay lock))))
   (if (= ans0 "Yes")(vla-put-Layer sub_item "0"))
   ;;;Ширина полилиний в 0
   (if (vlax-property-available-p sub_item "ConstantWidth")
   (vl-catch-all-apply
        '(lambda ()
           (vla-put-ConstantWidth sub_item 0.)
           ) ;_ end of lambda
        ) ;_ end of vl-catch-all-apply
     )

   (cond
     ((= answer "W")
      (vla-put-LineWeight sub_item (if (= atype "byLayer") acLnWtByLayer aclnwtbyblock))
      )
     ((= answer "T")
      (vla-put-linetype sub_item (if (= atype "byLayer") "ByLayer" "ByBlock"))
      )
     ((= answer "C")
      (vla-put-color sub_item (if (= atype "byLayer") acByLayer acByBlock))
      )
     (t
      (vla-put-LineWeight sub_item (if (= atype "byLayer") acLnWtByLayer aclnwtbyblock))
      (vla-put-linetype sub_item (if (= atype "byLayer") "ByLayer" "ByBlock"))
      (vla-put-color sub_item (if (= atype "byLayer") acByLayer acByBlock))
      )
     ) ;_ end of cond
   ) ;_ end of vlax-for
   )
      ) ;_ end of if
    ) ;_ end of vlax-for
  (if lock (foreach x lock (vla-put-lock x :vlax-true)))
  (vla-regen adoc acallviewports)
  (vla-endundomark adoc)(vl-cmdf "_.Redraw")
  (princ (if isRus
           (strcat "\nИзменено " (itoa cnt) " блоков")
           (strcat "\nModyfied " (itoa cnt) " blocks")
           )
         )
  (princ)
  ) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 22.09.2008 в 16:44. Причина: орфография
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.07.2008, 11:50
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,554
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


По поводу смены текстового стиля есть хорошая функция, опубликованная T.Willey здесь
Код:
[Выделить все]
;;Posted by T.Willey 
;;http://www.theswamp.org/index.php?topic=14247.15
;;Обработка всех примитивов рисунка через VLA
;;Doc - указатель на объект документа
;;StyName - string. Имя текстового стиля. Стиль должен существовать
(defun ChangeAllTextObjectsStyle (Doc StyName / tempObjType IsLo ColCnt RowCnt)

(vlax-for Blk (vla-get-Blocks Doc)
 (setq IsLo (if (= (vla-get-IsLayout Blk) :vlax-true) T nil))
 (if (= (vla-get-IsXref Blk) :vlax-false)
  (vlax-for Obj Blk
   (setq tempObjType (vla-get-ObjectName Obj))
   (cond
    ((vl-position tempObjType '("AcDbText" "AcDbMText" "AcDbAttributeDefinition"))
     (vla-put-StyleName Obj StyName)
     (if (not IsLo)
      (vla-put-Layer Obj "0")
     )
    )
    ((wcmatch tempObjType "AcDb*Dimension")
     (vla-put-TextStyle Obj StyName)
    )
    ((= tempObjType "AcDbBlockReference")
     (foreach Att (vlax-invoke Obj 'GetAttributes)
      (vla-put-StyleName Att StyName)
     )
     (foreach Att (vlax-invoke Obj 'GetConstantAttributes)
      (vla-put-StyleName Att StyName)
     )
    )
    ((= tempObjType "AcDbTable")
     (setq ColCnt 0)
     (repeat (vla-get-Columns Obj)
      (setq RowCnt 0)
      (repeat (vla-get-Rows Obj)
       (vlax-invoke Obj 'SetCellTextStyle RowCnt ColCnt StyName)
       (setq RowCnt (1+ RowCnt))
      )
      (setq ColCnt (1+ ColCnt))
     )
    )
   )
  )
 )
)
)
PS. Все это вылилось в набор команд: LISP. Замена текстового стиля
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 24.09.2009 в 18:18.
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.07.2008, 18:24
#15
Залётный


 
Регистрация: 15.04.2005
Сообщений: 245


Цитата:
Сообщение от VVA Посмотреть сообщение
Залетный, Вариант осюда. Запроса нет, глобальня ширина полилиний принудительно устанавливается в 0
Вроде работает. Одна проблема - атрибуты. Требуется отдельный BATTMAN для каждого блока с атрибутами. Возможно ли это добавить в код?
Залётный вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.07.2008, 18:31
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,554
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Залётный,
Цитата:
Поскольку у нас печать производится по цвету примитива, простая замента цвета всех елементов блока (и размерных стилей) на цвет ByLayer и замена цвета всех слоёв на необходимый цвет, в принципе, решает эту задачу.
COLORX видел?
А про BATTMAN поподробнее.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.07.2008, 20:33
#17
Залётный


 
Регистрация: 15.04.2005
Сообщений: 245


Цитата:
Сообщение от VVA Посмотреть сообщение
Залётный,

COLORX видел?
Это не то, что надо.

Цитата:
Сообщение от VVA Посмотреть сообщение
ЗалётныйА про BATTMAN поподробнее.


NORMBLOCKS всё переопределя в цвет, для меня, ByLayer. Если в чертёж вставлять блок, то он будет цветом ByLayer. Однако атрибуты блоков уже имеющиеся в чертеже сохраняют свой цвет. Поэтому их требуется синхронизировать, что выполнняется при помощи команды BATTMAN. Просто открывается этот блок в BATTMAN и нажимается кнопка Sync. Возможно ли выполнить такую синхронизацию при помощи LISP и если да, то добавить её к коду NORMBLOCKS.
Залётный вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 22.07.2008, 22:48
#18
Кулик Алексей aka kpblc
Moderator

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


Так дело в том, что "нормализуются" описания блоков, а не их вхождения. Атрибуты - отдельная головная боль. Пользователь может каждому конкретному атрибуту выставить свой слой, тип, вес и цвет линии, текстовый стиль. И чего и в какой вид приводить?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.07.2008, 06:27
#19
Залётный


 
Регистрация: 15.04.2005
Сообщений: 245


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Так дело в том, что "нормализуются" описания блоков, а не их вхождения. Атрибуты - отдельная головная боль. Пользователь может каждому конкретному атрибуту выставить свой слой, тип, вес и цвет линии, текстовый стиль. И чего и в какой вид приводить?
Вот вот. Как я понимаю, BATTMAN приводит атрибуты вставленных блоков к тому виду, чтобы они соответствовали "нормализованному" описанию. В случае когда они нормализовались в цвет ByLayer, они сразу принимают цвет слоя, что и требовалось в начале.
Залётный вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.07.2008, 06:44
#20
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 10,045


Алексей прав - надо отделять мух от котлет. Нормализация определений блоков одно, вставок (в т.ч. атрибутов) - другое.

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

У меня для нормализации используется 16 функций, которые применяются в разных сочетаниях.

Что нормализуется:
1. Все примитивы блоков переносятся на слой 0.

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

3. Особые сложности с шириной и весом линий. Если задан вес 0, то он переводится в LwDefault - иначе могут быть пробемы с печатью. Если у полилиний не постоянная физическая ширина - она не изменяется. Для полилиний с постоянной физической шириной - вес ByLayer.

Если у полилиний уже есть Lw, и он не 0 и не Default - устанавливается ByBlock. Ну и другие варианты есть.

4. Вес линий для текстов и атрибутов LwDefault или зависящий от высоты текста - чтоб "большие" буквы выглядели жирнее, как по ЕСКД.

Что касается атрибутов во вставках, их надо приводить к действующему определению стиля. Во вставленных блоках при изменении параметров текстового стиля (наклон, сжатие) вид атрибутов не изменяется. Чтобы их причесать используется специальная функция.
ShaggyDoc вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Нормализация блоков текущего файла.

Инженерные консультации
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp. Расстановка блоков на пересечении линий. wetr LISP 21 25.12.2014 15:27
Импорт палитры блоков при помощи LISP TwoZero LISP 11 27.01.2013 22:35
AutoCAD 2008 - вставка блоков из файла в файл Vavan Metallist AutoCAD 14 25.05.2009 19:37
Удаление не используемых блоков из файла Гузалия AutoCAD 3 13.12.2007 10:06
2008. Глюк с назначением текущего цвета из Lisp? _Andre_ LISP 5 25.10.2007 13:50

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||