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

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

Внедрение блоков в чертеж без отображения

Ответ
Поиск в этой теме
Непрочитано 01.10.2009, 15:11 #1
Внедрение блоков в чертеж без отображения
eugen81
 
ООО Предприятие "Ирбис"
 
Екатеринбург
Регистрация: 02.02.2009
Сообщений: 45

Доброго времени суток! Возник такой вопрос: можно ли подгружать в чертеж блоки без их отображения?
Заранее прошу прощения, если эта тема поднималась ранее - юзал поиск и ничего не нашел
Просмотров: 3072
 
Непрочитано 01.10.2009, 15:19
#2
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,183
<phrase 1=


так ты когда вставляешь блок в чертеж (например через буфер и даже если ты тут же удалишь erase этот блок на экране, то он все равно остается в блоках.) Т.е его на чертеже не видно (он у тебя ни разу не вставлен), но в описаниях блоках он лежит (до тех пор пока ты не почистишь файл purge)
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 01.10.2009, 15:43
#3
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Можно. О чем идет речь - о программном решении или ручном?
Для предохранения от PURGE можно вставлять нужные блоки на служебный невидимый слой.
__________________
Reshaping the STEM field
Александр Бауск вне форума  
 
Автор темы   Непрочитано 01.10.2009, 19:49
#4
eugen81

ООО Предприятие "Ирбис"
 
Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
<phrase 1=


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

Последний раз редактировалось eugen81, 01.10.2009 в 19:54. Причина: Простая очепятка)
eugen81 вне форума  
 
Непрочитано 02.10.2009, 02:06
#5
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


eugen81, недавно в теме про мультилинии мне Krieger подсказал один макрос:

Цитата:
Вот если б можно было макросом в базу чертежа импортировать описание блока, не вставляя его вхождение... Тогда дальше все просто
Цитата:
Например так:
Код:
[Выделить все]
^C^C_-insert;"Mline.dwg";^C_-purge;_Blocks;Mline;_n;(setvar "CMLSTYLE" "PROBA");_mline
Цитата:
Сохраняем нашу мультилинию в файл Mline.dwg, по адресу добавленному в пути поиска када. Макрос вставляет блок, он импортируется весь, но при указке точки вставки мы обрываем команду. Потом очищаем чертеж от теперь уже лишнего блок пургеном, делаем заведомо известный стиль proba текущим и вызываем команду черчения млиний.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 02.10.2009 в 02:12.
wetr вне форума  
 
Непрочитано 02.10.2009, 03:44
#6
Клетчатый


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


необходимые блоки можно поместить в "tool pallete"
Клетчатый вне форума  
 
Автор темы   Непрочитано 02.10.2009, 07:47
#7
eugen81

ООО Предприятие "Ирбис"
 
Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
<phrase 1=


wetr, Спасибо) то, что нужно!
Как то я не додумался, что нужно просто insert оборвать

Последний раз редактировалось eugen81, 02.10.2009 в 11:13.
eugen81 вне форума  
 
Непрочитано 09.03.2010, 16:51
#8
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,440
Отправить сообщение для Елпанов Евгений с помощью Skype™


можно добавить блок и напрямую из лиспа
Код:
[Выделить все]
(vla-add (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
         (vlax-3d-point InsertionPoint)
         "New-Name"
)
потом, будет необходимо заполнить новый блок примитивами. Все как обычно, только вместо указания пространства модели или листа, указываем при создании примитива созданный блок. Или как вариант, копируем объекты из чертежа внутрь блока...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 09.03.2010, 18:28
#9
ShaggyDoc

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


Если необходимо программно внедрить блок из внешнего файла проще всего делать так
Код:
[Выделить все]
....
(vl-cmdf "_.INSERT" full_block_file_name)
(vl-cmdf)
....
Здесь второй вызов vl-cmdf без аргументов как раз прерывает вставку, но описание блока оказывается внедренным в чертеж.

Этот кусочек кода надо оборачивать в функцию, которая вычисляет полное имя файла, проверяет, нет ли уже такого описания блока, внедряет блок, а потом проверяет, внедрился ли.

Полный код наподобие
Код:
[Выделить все]
(defun ru-block-file-embed (block_name block_dir / block_file_name)
;;; Внедрение без вставки
  (setq block_name
         (ru-file-set-ext
           block_name
           ""
         ) ;_ end of ru-file-set-ext
  ) ;_ end of setq
  (if (tblsearch "block" block_name)
    t
    (progn
      (setq block_file_name
             (ru-string-replace
               (ru-file-set-ext
                 (strcat block_dir block_name)
                 ".dwg"
               ) ;_ end of ru-file-set-ext
               "/"
               "\\"
             ) ;_ end of ru-string-replace
      ) ;_ end of setq
      (if (findfile block_file_name)
        (progn
          (setvar "CMDECHO" 0)
          (vl-cmdf "_.INSERT" block_file_name)
          (vl-cmdf)
          (if (tblsearch "block" block_name)
            ;;Проверим блок после внедрения
            t
            (progn
              (ru-msg-alert
                (strcat "ОШИБКА!\n Блок\n"
                        block_name
                        "\nне внедрен в чертеж\n"
                        "!\nОбратитесь к администратору системы!"
                ) ;_ end of strcat
              ) ;_ end of ru-msg-alert
              NIL
            ) ;_ end of progn
          ) ;_ end of if
        ) ;_ end of progn
        (progn
          (ru-msg-alert
            (strcat "Файл\n"
                    block_file_name
                    " не установлен в составе версии \n'"
                    (ru-rucad-version)
            ) ;_ end of strcat
          ) ;_ end of ru-msg-alert
          NIL
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 14.03.2010, 15:37
#10
eugen81

ООО Предприятие "Ирбис"
 
Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
<phrase 1=


Да-да-да) именно так я и сделал Спасибо!
eugen81 вне форума  
 
Непрочитано 14.03.2010, 18:36
#11
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 1,997
Отправить сообщение для doctorraz с помощью Skype™


тупо так делаю...
_________________________
открываю файл с блоками
ctrl+A
ctrl+C
иду в файл куда надо описания вставить
ctrl+V
Esc
doctorraz вне форума  
 
Непрочитано 14.03.2010, 18:48
#12
Хмурый


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


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

Система Техэксперт дает уверенность в правильности и эффективности принимаемых инженерных решений!
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать чертеж на печать без искажений? morbias AutoCAD 5 02.10.2009 16:21
VBA: утечка памяти при вставке блоков Mikha Программирование 13 03.04.2009 09:18
Автоматизация вставки блоков в чертеж. gest AutoCAD 4 01.08.2008 14:54
Поворот блоков при вставке в чертеж Werwolf AutoCAD 11 20.06.2007 13:43
Как сделать правильный чертеж pk77 Разное 64 03.04.2007 16:36