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

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

Автоматизация "копипасты +"

Ответ
Поиск в этой теме
Непрочитано 10.12.2008, 21:41 #1
Автоматизация "копипасты +"
Dim Ka
 
Регистрация: 10.12.2008
Сообщений: 7

Простая, но очень сложная задача!
Доброго времени суток Уважаемые программисты и любители CADa.
Есть набор объектов: блоки, текст, размеры - на создание которых уходит очень мало времени,
а вот большая часть уходит на выделение, копирование, указание базовой точки и установку на позицию после
копирования: можно ли автоматизировать процесс, ведь большинство позиций - постоянны ?:
Алгоритм примерно таков:
1. Выделение объектов, которые находятся в прямоугольнике с координатами потивоположных углов:
Р1(6300,500), Р2(-700,-783).
2. Базовая точка для копирования = Р2(-700,-783)
3. Точка для вставки скопированных объектов Р3(-1300,а Y=2600+n1251),
т.е в позиции для вставки меняется координата Y и она зависит только от n, где n - целое число от 1 до 12 , запрашиваемое у пользователя (либо в ком. сроке, но лучше щёлкнуть на Text).
В итоге: после запуска программы указываем n и набор уже выделенных автоматически объектов копируется в точку Р3, в которой изменяется координата Y по указанному выше правилу.
Может быть есть другой путь решения этой рутинной "копипасты".
Помогите избавится от рутины, готов ждать месяц и два, лишь бы работало, потом за пять минут долечу.
Заранее благодарен, с Уважением Дмитрий.
Просмотров: 2561
 
Непрочитано 10.12.2008, 23:01
#2
Кулик Алексей aka kpblc
Moderator

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


А чем _.array не угодил?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.12.2008, 19:57
#3
Dim Ka


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


А чем _.array не угодил?


Можно и через _array, только как? Ведь при вставке на нужную позицию в новом прямоугольнике объекты уже изменены мною( значения и местоположение), да и перескочить через позицию вряд ли удастся, т.е в итоге дожен получиться вертикальный набор из совершенно разных объектов. _array на такое способен?
Dim Ka вне форума  
 
Непрочитано 12.12.2008, 10:33
#4
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


>Dim Ka
Цитата:
1. Выделение объектов, которые находятся в прямоугольнике с координатами
потивоположных углов: Р1(6300,500), Р2(-700,-783).
2. Базовая точка для копирования = Р2(-700,-783)
3. Точка для вставки скопированных объектов Р3(-1300,а Y=2600+n1251),
т.е в позиции для вставки меняется координата Y и она зависит
только от n, где n - целое число от 1 до 12, запрашиваемое у пользователя
Код:
[Выделить все]
;;;Вариант 1
(defun test (/ n)
  (if (setq n (getint "\n Введите целое число от 1 до 12: "))
    (progn
      (vl-cmdf "_zoom" "_w" '(6300. 500.) '(-700. -783.))
      (vl-cmdf "_.copybase"
               '(-700. -783.)
               (ssget "_C" '(6300. 500.) '(-700. -783.))
               ""
               "_.pasteclip"
               "_non"
               (list -1300. (+ 2600. (* 1251. n)))
      ) ;_ end of command
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun
;;;Вызов (test)
;;;Вариант 2
(defun test1 (/ n)
  (if (setq n (getint "\n Введите целое число от 1 до 12: "))
    (progn
      (vl-cmdf "_zoom" "_w" '(6300. 500.) '(-700. -783.))
      (vl-cmdf "_.copy"
               (ssget "_C" '(6300. 500.) '(-700. -783.))
               ""
               '(-700. -783.)
               (list -1300. (+ 2600. (* 1251. n)))
      ) ;_ end of vl-cmdf
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun
;;;Вызов (test1)
CB вне форума  
 
Автор темы   Непрочитано 12.12.2008, 15:48
#5
Dim Ka


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


Вот эта да !, просто СУПЕР, всё работает именно так,как я и хотел. Огромное СПАСИБО СВ и Кулик А., мои два месяца ожидания
обернулись 2-х недельным отпуском и с`экономили 60% времени, надеюсь эта тема поможет не только мне в избавлении от рутины,
а "прозрачный" код легко приспособить под свои нужды.
С Уважением Дмитрий.
Dim Ka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматизация "копипасты +"



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация вставки блоков в чертеж. gest AutoCAD 4 01.08.2008 14:54
Сбор нагрузок: возможна ли автоматизация? helpstud Конструкции зданий и сооружений 2 10.01.2008 16:44
автоматизация сбора нагрузок beam21 Прочее. Архитектура и строительство 18 16.02.2006 11:34