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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как правильно менять пути к растрам? (ACAD 2013)

Как правильно менять пути к растрам? (ACAD 2013)

Ответ
Поиск в этой теме
Непрочитано 25.12.2017, 08:31 #1
Как правильно менять пути к растрам? (ACAD 2013)
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,787

Не могу корректно поменять пути к растрам (если конкретно - то заменить абсолютные на относительные). Суть в том, что я получаю указатель на растр через
Код:
[Выделить все]
 (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "acad_image_dict"))
и меняю в соответствующем указателе DXF группу 1. И вроде бы все хорошо, файл теоретически находится. Но после выполнения обновления растра AutoCAD его "теряет".
Собственно вопрос - что я упускаю? Почему замены только группы 1 недостаточно и что надо сделать дополнительно?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Просмотров: 2219
 
Непрочитано 25.12.2017, 13:49
#2
VVA

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


Привет, Алексей.
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
что надо сделать дополнительно?
Попробуй задать путь функцией vla-put-imagefile. У Alaspher в PL_XRefChgr так и делается
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 25.12.2017, 14:10
#3
Кулик Алексей aka kpblc
Moderator

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


Как-то странно... Менять пути для вхождений растров, а не для описаний.
---
Попробовал. Не срабатывает. Растр точно так же "теряется", хотя путь вполне корректен.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2017, 19:57
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Как-то странно... Менять пути для вхождений растров, а не для описаний.
В AutoCAD ActiveX/COM нет объекта для описания растра.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 25.12.2017, 21:47
#5
Кулик Алексей aka kpblc
Moderator

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


Есть-то оно есть, но ооочень куцее. От этого не легче
Offtop: Ох и тяжко же идет C#!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2017, 21:49
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Есть-то оно есть, но ооочень куцее.
Это какой объект ты имеешь в виду?
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 25.12.2017, 21:59
#7
Кулик Алексей aka kpblc
Moderator

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


И вхождение растра, и его описание. Или я не там смотрю. По описанию:
Код:
[Выделить все]
 (setq def (car (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "acad_image_dict")))))
<Entity name: 7ffffb0a410>
_$ (entget def)
'((-1 . <entity name: 7ffffb0a410>)
  (0 . "IMAGEDEF")
  (5 . "23F1")
  (102 . "{ACAD_REACTORS")
  (330 . <entity name: 7ffffb09c20>)
  (330 . <entity name: 7ffffb0a420>)
  (102 . "}")
  (330 . <entity name: 7ffffb09c20>)
  (100 . "AcDbRasterImageDef")
  (90 . 0)
  (1 . "FullFileName.tif")
  (10 7500.0 7500.0 0.0)
  (11 0.0635 0.0635 0.0)
  (280 . 1)
  (281 . 5)
  )
_$ (vlax-dump-Object (vlax-ename->vla-object def) t)
; IAcadObject: The standard interface for a basic AutoCAD object
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 000000013fe83318>
;   Document (RO) = #<VLA-OBJECT IAcadDocument 000000002e566e18>
;   Handle (RO) = "23F1"
;   HasExtensionDictionary (RO) = 0
;   ObjectID (RO) = 45
;   ObjectID32 (RO) = 45
;   ObjectName (RO) = "AcDbRasterImageDef"
;   OwnerID (RO) = 46
;   OwnerID32 (RO) = 46
; Methods supported:
;   Delete ()
;   GetExtensionDictionary ()
;   GetXData (3)
;   SetXData (2)
T
_$ 
Ну, а по вхождению аналогично, уж приводить результаты не буду
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 25.12.2017 в 22:09.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2017, 22:06
1 | #8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По описанию:
Обрати внимание, что у него только один интерфейс: IAcadObject, т.е. обертки для AcDbRasterImageDef нет. Соответственно нет ни методов, ни свойств.
Что касается твоей задачи на C#, то есть готовое решение: http://adn-cis.org/izmenenie-putej-k...sitelnyie.html

----- добавлено через ~2 мин. -----
А что это за странный путь:
(1 . "<FullFileName.tif")
???
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 25.12.2017, 22:08
#9
Кулик Алексей aka kpblc
Moderator

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


Статью видел, ее и пробую переработать Не станешь же просто так тупо копипастить код

----- добавлено через 38 сек. -----
Путь перебивал руками, моя очепятка )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2017, 22:40
#10
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Путь перебивал руками, моя очепятка )))
А может быть ты не так прописываешь относительный путь???
Например, файл в том же каталоге, что и dwg-файл:

Александр Ривилис вне форума  
 
Автор темы   Непрочитано 25.12.2017, 22:58
#11
Кулик Алексей aka kpblc
Moderator

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


Я это учитывал, когда лисп прописывал. Суть не в этом, а в том, что замена DXF 1 приводит к "потере" растра.
Хотя... Сейчас еще одна идея мелькнула, попробую провернуть.
---
Идея не прокатила. Плюнул связываться, оставляю .NET-решение.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 26.12.2017 в 09:42.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как правильно менять пути к растрам? (ACAD 2013)

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В поиске сравнительные таблицы старых (СНиП и пр.) и новых нормативных документов (актуализированные СП) Armin Поиск литературы, чертежей, моделей и прочих материалов 19 25.11.2016 08:27
ACAD MEP 2013. Мультивидовые элементы на плане отображаются вне границ секущей плоскости. dishalex Вертикальные решения на базе AutoCAD 18 08.04.2016 18:17
Почему сильно меняется размер файла в ACAD MEP 2013? Dante_Tmb AutoCAD 2 01.08.2013 21:14
Как правильно поправить коды звениев коридора Civil 2013 black_mts Вертикальные решения на базе AutoCAD 1 17.04.2013 05:17
В какой файл Acad прописывает пути из Support File Searh Pat plaz Программирование 7 26.08.2004 10:49