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

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

Проблема вставки Динамических блоков

Ответ
Поиск в этой теме
Непрочитано 09.09.2007, 19:50 #1
Проблема вставки Динамических блоков
Владимир М
 
-
 
Ухта
Регистрация: 31.07.2005
Сообщений: 381

Проблема вставки Динамических блоков
Есть чертеж с дин. блоком который находится в определенной папке мне его нужно вставить через LISP выражение
Например:
  • (defun C:forma ()
    (command "_ATTDIA" "1" "_insert" (getfiled "Выбери форматку:" (vl-string-translate "\\" "/" (vl-filename-directory (findfile "C:\\designer\\Форматки\\An.dwg"))) "dwg" 16) pause "1" "1" "0")
    )
При выборе дин блока "An.dwg"
Пишет
Цитата:
Команда: _ATTDIA
Новое значение ATTDIA <1>: 1
Команда: _insert Имя блока или [?]: C:\designer\Форматки\An.dwg
Блок An.dwg ссылается сам на себя
*Неверно*
; ошибка: Функция отменена
Что делать?
Типа ссылается сам на себя так нельзя!
__________________
Я не волшебник, я только учусь…
Просмотров: 9622
 
Непрочитано 09.09.2007, 22:30
#2
Аshаs-ка

проектировсчик
 
Регистрация: 06.01.2006
Москва
Сообщений: 1,982


Файл попробуй переименовать, где блок лежит. Этот дурак электронный не врубается, как это - и файл и блок в нем одинаково зовутся... An-1 что ли назови....
Аshаs-ка вне форума  
 
Автор темы   Непрочитано 11.09.2007, 19:58
#3
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Я знаю что получится как ты говоришь - но будет не желаемый результат блок в блоке! Его придетья взрывать!
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 11.09.2007, 20:53
#4
Krieger

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


Если не хочешь взрывать можешь не взрывать. Можно только сэмитировать вставку, оборвав команду _insert на указке точки вставки. Ну а дальше вставлять то что надо (нужный блок будет в файле) и незабыть очистить файл от двойного блока.
Krieger вне форума  
 
Автор темы   Непрочитано 11.09.2007, 21:00
#5
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Спасибо, Krieger. Попробую...
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Автор темы   Непрочитано 11.09.2007, 21:10
#6
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Что то не понимаю как оборвать команду, паузу типа поставить или Esc
Я знаю если этот блок будет в списке данного чертежа то встака будет без проблем, может как то это в LISP отразить имена блоков. Кто поможет? Идея интерестная!
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 11.09.2007, 22:43
#7
Кулик Алексей aka kpblc
Moderator

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


Примерно так:
Код:
[Выделить все]
(command "_.-insert" <ИмяФайла.dwg>)
(command nil)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.09.2007, 06:36
#8
ShaggyDoc

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


Правильное решение - не делать в файле блок с именем файла. Иначе всегда будут проблемы.

Если файл предполагается вставлять как блок, а блок в нем один, то примитивы должны быть самостоятельные. Если же файл используется как библиотека (например, в нем все форматки), то внутри библиотеки должны быть именно блоки. Имена блоков не должны совпадать с именем файла.

Но если, конечно хочется побольше и почаще мучиться, делайте, как делали. В том числе абсолютные константные имена файлов в программах.
ShaggyDoc вне форума  
 
Непрочитано 12.09.2007, 09:16
#9
Krieger

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


Цитата:
Сообщение от ShaggyDoc
Правильное решение - не делать в файле блок с именем файла. Иначе всегда будут проблемы.

Если файл предполагается вставлять как блок, а блок в нем один, то примитивы должны быть самостоятельные. Если же файл используется как библиотека (например, в нем все форматки), то внутри библиотеки должны быть именно блоки. Имена блоков не должны совпадать с именем файла.

Но если, конечно хочется побольше и почаще мучиться, делайте, как делали. В том числе абсолютные константные имена файлов в программах.
А действительно, научите грамотно, программно вставлять динамические блоки из одного файла-библиотеки. Вставлять все подряд и потом удалять ненужное мне кажется неоптимальным.
Krieger вне форума  
 
Автор темы   Непрочитано 12.09.2007, 15:16
#10
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Krieger, ну просто вместе думаем одинаково и понимаем тоже! Жаль, что не из Ухты! Был бы лучшим другом
Для Кулик Алексей aka kpblc
значит
Код:
[Выделить все]
(command "_.-insert" <ИмяФайла.dwg>) 
(command nil)
вот плохо что имена блоков разные! Что мне при каждом количестве разные имена ставить - сколько кнопок будет?
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
 
Непрочитано 12.09.2007, 15:29
#11
Кулик Алексей aka kpblc
Moderator

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


Дурной вопрос: а toolpalettes запрещены?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.09.2007, 15:42
#12
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


toolpalettes - это пока единственное решение которому я придерживаюсь пока (туда положил - и вытаскивай без головной боли) и палетку свою можно сделать. Но хотелось и другой вариант проработать.
__________________
Я не волшебник, я только учусь…
Владимир М вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Проблема вставки Динамических блоков

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

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