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

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

Как мне весь RTEXT поместить на один слой ?

Ответ
Поиск в этой теме
Непрочитано 05.02.2014, 01:45 #1
Как мне весь RTEXT поместить на один слой ?
PL
 
California
Регистрация: 23.11.2006
Сообщений: 4,750

Купили ZWCAD+2014Std в дополнению к AUTOCAD2014 , а он не понимает RTEXT которым прописан путь к фаилу у нас сбоку в сбоку в рамках.
$(getvar, "dwgprefix")$(getvar, "dwgname") $(edtime, 0, MON DD"," YYYY - H:MMam/pm) $(getvar, "loginname")


Вместо него крест при печати в ZWCAD+2014Std.

такое решение придумал чтобы выключить этот крест:
Я создаю новый слой "s-pathfile" который будет выключаться в ZWCAD и включаться в AUTOCAD
(command "-layer" "ON" "*filepath*" "") в - acaddoc.lsp

(command "-layer" "OFF" "*filepath*" "") в - zwcaddoc.lsp


хочу чтоб автоматически при открытии фаила, RTEXT, в случае его наличия, автоматом переносился на нужный создаваемый слой:


(setq ln "s-pathfile")
(setq r1 (tblsearch "layer" ln))
(if (= r1 nil)
(vl-cmdf "-LAYER" "N" "s-pathfile" "C" "1" "" "")

и дальше как то выбрать RTEXT и поместить на слой s-pathfile
Просмотров: 3248
 
Непрочитано 05.02.2014, 08:54
#2
Кулик Алексей aka kpblc
Moderator

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


А там RTEXT или обычный текст с полем?
Если именно RTEXT, формируй набор по типу объекта: (ssget '((0 . "RTEXT")))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.02.2014, 09:30
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


В команде _-LAYER неверный синтаксис. Красным будет текущий слой, а не s-pathfile
Код:
[Выделить все]
 (setq ln "s-pathfile")
(if (null(tblsearch "layer" ln))
 (command "_-LAYER" "_N" ln "_C" "1" ln "")
)
(setvar "ctab" "Model") ;_Go to <Model> tab
(if (setq ss (ssget "_X" '((0 . "RTEXT"))))
  (command "_change" ss "" "_P" "_LAyer" ln "")
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 05.02.2014, 18:05
#4
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


Цитата:
Сообщение от VVA Посмотреть сообщение
В команде _-LAYER неверный синтаксис. Красным будет текущий слой, а не s-pathfile
Код:
[Выделить все]
 (setq ln "s-pathfile")
(if (null(tblsearch "layer" ln))
 (command "_-LAYER" "_N" ln "_C" "1" ln "")
)
(setvar "ctab" "Model") ;_Go to <Model> tab
(if (setq ss (ssget "_X" '((0 . "RTEXT"))))
  (command "_change" ss "" "_P" "_LAyer" ln "")
  )
Спасибо большое !

----- добавлено через ~7 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А там RTEXT или обычный текст с полем?
Если именно RTEXT, формируй набор по типу объекта: (ssget '((0 . "RTEXT")))
у меня RTEXT со времен старых автокадов. но сейчас можно и поля, я их никогда не применял. а текстом с полем и лиспом можно как то прописать строчку в рамке без DIESEL ?
$(getvar, "dwgprefix")$(getvar, "dwgname") $(edtime, 0, MON DD"," YYYY - H:MMam/pm) $(getvar, "loginname")

в таком виде что ее ZWCAD будет понимать?
PL вне форума  
 
Непрочитано 05.02.2014, 19:59
#5
Кулик Алексей aka kpblc
Moderator

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


PL, у меня нет ZWCAD и вряд ли когда-нибудь будет
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.02.2014, 21:10
#6
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


Цитата:
Сообщение от VVA Посмотреть сообщение
В команде _-LAYER неверный синтаксис. Красным будет текущий слой, а не s-pathfile
Код:
[Выделить все]
 (setq ln "s-pathfile")
(if (null(tblsearch "layer" ln))
 (command "_-LAYER" "_N" ln "_C" "1" ln "")
)
;(setvar "ctab" "Model") ;_Go to <Model> tab
(if (setq ss (ssget "_X" '((0 . "RTEXT"))))
  (command "_change" ss "" "_P" "_LAyer" ln "")
  )
Я убрал переключение в модел, вроде без этого работает, у нас все рамки в модел.
а так на до запоминать ctab и возвращать в исходную. я сделал но при открытии фаила все эти переключения увеличивают время открытия.

и заменил Rтехт на ACAD_PROXY_ENTITY для ZWCAD, он не понимает что такое Rтехт
(if (setq ss (ssget "_X" '((0 . "ACAD_PROXY_ENTITY"))))
(command "_change" ss "" "_P" "_LAyer" ln "")
)

Работает ! спасибо !
PL вне форума  
 
Непрочитано 06.02.2014, 19:24
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


PL, Все дело в том, что (ssget "_X" ...) выбирает из всего чертежа (включая модель, листы). А команды работают только с примитивами текущего пространства
Т.е. если рамки у тебя в модели, ты перейдешь в лист и сохранишься, то при открытии код выше работать не должен, т.к. RTEXT'а в листе нет
Но это легко поправить, если изменять слой через entmod
Код:
[Выделить все]
 
(setq ln "s-pathfile")
(if (null(tblsearch "layer" ln))
 (command "_-LAYER" "_N" ln "_C" "1" ln "")
)
(if (setq ss (ssget "_X" '((0 . "RTEXT,ACAD_PROXY_ENTITY"))))
  (progn
    (setq i -1)
    (repeat (sslength ss)
      (setq e1 (ssname ss (setq i (1+ i)))
           ed (entget e1))
      (entmod (subst (cons 8 ln)(assoc 8 ed) ed))
      )
    )
  )
Обрати внимание, что ssget выбирает и RTEXT и ACAD_PROXY_ENTITY. Т.е он должен работать и в Автокаде и ZW Каде
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как мне весь RTEXT поместить на один слой ?

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос всех линий слоя в блоках в другой слой Positron Программирование 6 10.02.2012 15:59
Как в автокаде все лини сделать в один слой но чтобы цвета и толщина осталась преждней dextron3 AutoCAD 6 27.11.2010 01:51
Как редактировать весь текст на черетже за один раз. Boo87 AutoCAD 3 17.06.2010 09:43
Виден только один слой Pave1 AutoCAD 2 29.09.2005 11:24
Один слой = три слоя? (вопрос чайника) Переводчик AutoCAD 15 23.09.2005 19:38