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

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

Переназначение объектов и нумерация

Ответ
Поиск в этой теме
Непрочитано 01.06.2009, 18:14 #1
Переназначение объектов и нумерация
zenon
 
Остекляем!!! Алюминим!!!
 
Москва
Регистрация: 21.02.2005
Сообщений: 3,917

Задача №1
Есть объект и есть поле с ссылкой на этот объект, и взятием с него определенного свойстваю. При копировании объекта и поля, ссылка в поле остается на старый объект. В идеале хотелось бы чтоб ссылка сама переназначалась на копию, но можно и простым указанием на новый объект.
Задача №2
Данный вопрос очень помог бы при нумерации.
Есть текст позиции, надо пронумеровать массив, с указанием по элементно начиная с n-го.(указывает сам юзер).
ps Прошу учесть, в качестве позиции могут выступать атрибуты и Мтексты.
pss см. вложенный файл
Draw.dwg

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
Просмотров: 2603
 
Непрочитано 01.06.2009, 22:58
#2
VVA

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


задача №1. Посмотри команду DEMO5 - замена ID владельца свойства в существующем поле
Задача 2: NUM и RENUM подойдут?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.06.2009, 23:01
#3
Кулик Алексей aka kpblc
Moderator

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


Ничего не понимаю... Вроде код должен нормально сработать, ан ни в какую
Код:
[Выделить все]
(defun test (/ adoc _kpblc-conv-string-to-list fld ent)

  (defun _kpblc-conv-string-to-list (string separator / i)
                                    ;|
*    Функция разбора строки. Возвращает список либо точечную пару.
*    Параметры вызова:
*	string		разбираемая строка
*	separator	символ, используемый в качестве разделителя частей
*    Примеры вызова:
(_kpblc-conv-string-to-list "1;2;3;4;5;6" ";")	;'(1 2 3 4 5 6)
(_kpblc-conv-string-to-list "1;2" ";")		;'(1 2)
*    За основу взяты уроки Евгения Елпанова по рекурсиям
|;
    (cond
      ((= string "") nil)
      ((setq i (vl-string-search separator string))
       (cons (substr string 1 i)
             (_kpblc-conv-string-to-list
               (substr string (+ (strlen separator) 1 i))
               separator
               ) ;_ end of _kpblc-conv-string-to-list
             ) ;_ end of cons
       )
      (t (list string))
      ) ;_ end of cond
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (while (and (= (type (setq fld (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (vlax-ename->vla-object (car (nentsel "\nУкажите поле <Отмена> : ")))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                             ) ;_ end of setq
                       ) ;_ end of type
                 'vla-object
                 ) ;_ end of =
              (vlax-method-applicable-p fld 'fieldcode)
              (= (type (setq ent (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (vlax-ename->vla-object (car (entsel "\nУкажите новый объект <Отмена> : ")))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                             ) ;_ end of setq
                       ) ;_ end of type
                 'vla-object
                 ) ;_ end of =
              ) ;_ end of and
    (vl-catch-all-apply
      (function
        (lambda ()
          (vla-put-textstring
            fld
            (apply (function strcat)
                   (mapcar
                     (function
                       (lambda (x / pos)
                         (strcat (if (setq pos (vl-string-search "ObjId" x))
                                   (strcat (substr x 1 pos) "ObjId " (vl-princ-to-string (vla-get-objectid ent)))
                                   x
                                   ) ;_ end of if
                                 ">%"
                                 ) ;_ end of strcat
                         ) ;_ end of lambda
                       ) ;_ end of function
                     (_kpblc-conv-string-to-list (vla-fieldcode fld) ">%")
                     ) ;_ end of mapcar
                   ) ;_ end of apply
            ) ;_ end of vla-put-textstring
          (vla-update fld)
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of while
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
P.S. Что значит на caduser'e практически не появляться...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.06.2009, 23:05
#4
VVA

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


Кулик Алексей aka kpblc, Offtop: Ничего удивительного, на 16 тысяч постов нужно время. Уже наверное не один десяток мышей загнал до смерти . А ссылки на лиспы достаточно старые. Опубликованы во времена "старого" caduser'a
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.06.2009, 23:09
#5
Кулик Алексей aka kpblc
Moderator

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


VVA, тем более Помнить надо, а память уже никуда не годится И новых плашек не продают
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Переназначение объектов и нумерация



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Набор объектов DEM Программирование 21 26.03.2014 19:11
Нужен перечень объектов, утверждение проектов которых не требует заключения экспертизы _andrey52 Организация проектирования и оформление документации 4 27.11.2008 12:06
FILTER / фильтр BM60 Справочник команд 0 08.07.2008 15:35
Создание своих объектов и хранение данных в dwg файлах zmaximus Программирование 2 11.04.2008 18:36
Помогите доделать программу добавления объектов в блок МишаVBA Программирование 1 20.05.2006 01:04