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

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

Insert по пути к файлу

Ответ
Поиск в этой теме
Непрочитано 02.09.2010, 11:46 #1
Insert по пути к файлу
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Скажите можно ли выполнить команду INSERT программно, если я укажу не просто имя файла, а полностью путь к нему.
Просто, если указывать только имя, нужно заранее прописывать путь к нему в опциях, а если таких путей сотни
Просмотров: 3415
 
Непрочитано 02.09.2010, 11:52
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


мдя
gomer вне форума  
 
Непрочитано 02.09.2010, 11:54
1 | #3
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


(vl-cmdf "insert" (strcat "C:/Program Files/AutoCAD 2010/Sample/" BlockName) (getpoint "\nPick Point:") "" "" "")
Nike вне форума  
 
Автор темы   Непрочитано 02.09.2010, 12:19
#4
Zaghim


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


Заработало! СПАСИБО!!!
Zaghim вне форума  
 
Непрочитано 02.09.2010, 12:25
#5
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


...
Nike вне форума  
 
Непрочитано 02.09.2010, 12:31
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


попробуй так:
Код:
[Выделить все]
(defun insert_block_from_path (path name / fn pt)
;;; Функция вставки блока из определенной папки
;;;  (insert_block_from_path "D:\\test" "test")
  (vl-load-com)
  (if (and (vl-file-directory-p path)
	   (setq fn
		  (findfile
		    (strcat
		      (car (acad_strlsort
			     (mapcar
			       '(lambda	(x)
				  (vl-string-right-trim (chr x) path)
				)
			       '(47 92)
			     )
			   )
		      )
		      (chr 92)
		      name
		      ".dwg"
		    )
		  )
	   )
      )
    (if	(setq pt (getpoint "\nУкажите точку вставки блока: "))
      (vl-cmdf "_.-insert" fn pt "" "" "")
      (alert (strcat "Ошибка: Не указана точка вставки блока"))
    )
    (alert (strcat "Ошибка: Не найден файл блока '" name "'"))
  )
  (princ)
)

Последний раз редактировалось gomer, 05.09.2010 в 14:11. Причина: Добавлено: Проверка наличия файла и указания точки
gomer вне форума  
 
Непрочитано 02.09.2010, 15:15
#7
ShaggyDoc

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


Цитата:
попробуй так:
А вот "так" не надо. Если findfile вернет NIL, незачем запрашивать точку.
ShaggyDoc вне форума  
 
Непрочитано 02.09.2010, 15:43
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А вот "так" не надо. Если findfile вернет NIL, незачем запрашивать точку.
так он ее не будет запрашивать - она'ж внутри особой формы and
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 02.09.2010, 16:03
#9
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Обнаружил проблему: не хватает обработки path:
(vl-file-directory-p "d:\\test" )
(vl-file-directory-p "d:\\test\\" )
возвращает T...
Исправил...

Последний раз редактировалось gomer, 02.09.2010 в 16:32.
gomer вне форума  
 
Непрочитано 04.09.2010, 17:43
#10
ShaggyDoc

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


Цитата:
так он ее не будет запрашивать - она'ж внутри особой формы and
А представим (vl-file-directory-p path) вернет NIL. Или findfile вернет NIL. Что будет делать пользователь? Ничего не происходит, а он и не знает, что случилось. И недоумевает. Откуда ему знать, что тут "особая форма" издевательства над ним.

Такие дела надо пропускать через if с непременным информированием - что делается. А может и с ловушкой ошибок.
ShaggyDoc вне форума  
 
Непрочитано 04.09.2010, 23:42
#11
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Про информирование - полностью согласен, но его можно и "внутрь" and запихать, изначально говорилось про будет-ли запрашивать точку - не будет - а что можно еще добавить - Вы метр лучше меня знаете - вопрос бесконечный - проифнормировать, рядом поискать и т.д.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.09.2010, 09:34
#12
Profan


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


Цитата:
Вы метр лучше меня знаете
А что там особого надо знать про метр? Все знают, что метр - размерность длины, расстояния и равен 100 см.
Profan вне форума  
 
Непрочитано 05.09.2010, 10:01
#13
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


то профан - хорошо "О Метр"
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.09.2010, 10:28
#14
Кулик Алексей aka kpblc
Moderator

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


Offtop: Метр и мэтр - разные вещи Да и запятые тоже не помешают
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.09.2010, 10:54
#15
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Offtop: да я понял - но исправлять уже поздно
p.s. ShaggyDoc ни в коем случае не хотел Вас задеть.
p.p.s. - насчет запятых - чем ближе к полуночи - тем меньше запятых.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.09.2010, 14:14
#16
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Обнаружил еще одну проблему если в рисунке есть блок с таким же именем... вставляется именно он
gomer вне форума  
 
Непрочитано 05.09.2010, 19:53
#17
ShaggyDoc

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


Цитата:
Сообщение от gomer Посмотреть сообщение
Обнаружил еще одну проблему если в рисунке есть блок с таким же именем... вставляется именно он
Это уж само собой. Чтобы вставился именно блок из файла, надо чуть посоображать. Рекомендую это сделать самостоятельно.

А ещё надо учитывать возможность атрибутов, причем разных типов. Просто так - (vl-cmdf "_.-insert" fn pt "" "" "") подойдет только для частных случаев.

PS. Не надо задним числом код менять (мелкое жульничество), иначе непонятно про что разговор. Новая версия - новый пост.
ShaggyDoc вне форума  
 
Непрочитано 05.09.2010, 20:08
#18
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Не надо задним числом код менять (мелкое жульничество), иначе непонятно про что разговор. Новая версия - новый пост.
не считаю это жульничеством, так как искать самую новую версию очень просто... хотя насчет понимания вы правы
gomer вне форума  
 
Непрочитано 06.09.2010, 06:36
#19
ShaggyDoc

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


Цитата:
так как искать самую новую версию очень просто...
Вот когда выкладывают готовую программу, а потом её периодически обновляют - правильнее менять в одном месте. Как делает, например, VVA с PL-Tools. Да и при этом желательно в головном посте комментировать, когда и что заменено.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Insert по пути к файлу



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По одному файлу подшивки определить пути нахождения других UserCAD AutoCAD 3 05.02.2009 23:48
Отображение пути к файлу в 2009 igor2807 AutoCAD 3 09.09.2008 11:39
Как программно узнать настоящий путь к файлу растра, если он был найден Акадом не по указанному пути kp+ Программирование 4 20.12.2007 12:54
Regen Holon Программирование 28 03.08.2007 15:18