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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Базовая точка существующего блока

Базовая точка существующего блока

Ответ
Поиск в этой теме
Непрочитано 04.06.2009, 09:34
Базовая точка существующего блока
Рин
 
Проектируем
 
Sever Kavkaza
Регистрация: 03.04.2008
Сообщений: 122

Привет всем!!! Как можно поменять базовую точку существующего блока... и чтобы после редактирования эти блоки остались на прежних местах на чертеже.
Просмотров: 45529
 
Непрочитано 31.03.2010, 08:46
#21
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,784
Отправить сообщение для ssn с помощью Skype™


сдаётся мне, что в экспрессах была такая функция.... хотя сам недавно искал (правда не сильно надо было) и не нашел.
ssn вне форума  
 
Непрочитано 30.06.2011, 15:12
#22
Bidomi


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


Нужно просто переопределить блок и подровнять его на чертеже.

Последний раз редактировалось Bidomi, 30.06.2011 в 15:20.
Bidomi вне форума  
 
Непрочитано 30.06.2011, 15:42
#23
proteirei


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


Выбрать блок, вызвать всплывающее меню, выбрать в нем "Редактирование блока" (другой вариант: через верхнее меню Сервис - Редактор блоков)
Далее меняем базовую точку в редакторе блоков.

Дальше 2 варианта:
1. Если все предыдущие блоки должны остаться на месте, то после перезадания базовой точки выходим из редактирования с сохранением блока под новым именем.
2. Если все блоки надо сместить под новую базу, то сохраняем под текущим названием и получаем немедленный результат.
proteirei вне форума  
 
Непрочитано 30.06.2011, 15:47
#24
Nike

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


Код:
[Выделить все]
 
;;;=================================================================
;;;
;;; RINS.LSP V3.00
;;;
;;; Redйfinir le point d'insertion d'un bloc simplement.
;;;
;;; Copyright (C) Patrick_35
;;;
;;;=================================================================
(defun c:rins(/ bl dec deh doc ech ent js n nom nom_bl lst1 lst2 pt rep rota uni)
 
  (defun rota(pt bas rot / lay lck po)
    (setq lay (vla-item (vla-get-layers doc) (getvar "clayer")))
    (and (eq (vla-get-lock lay) :vlax-true)
      (setq lck T)
      (vla-put-lock lay :vlax-false)
    )
    (setq po (vla-addpoint (if (eq (getvar "cvport") 1)
                 (vla-get-paperspace doc)
                 (vla-get-modelspace doc)
               )
               (vlax-3d-point pt)
         )
    )
    (vla-rotate po (vlax-3d-point bas) rot)
    (setq pt (vlax-get po 'coordinates))
    (vla-delete po)
    (and lck (vla-put-lock lay :vlax-true))
    pt
  )
 
  (defun nom_bl(bl)
    (if (vlax-property-available-p bl 'effectivename)
      (vla-get-effectivename bl)
      (vla-get-name bl)
    )
  )
 
  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (if (ssget (list (cons 0 "INSERT")))
    (progn
      (vlax-for bl (setq js (vla-get-activeselectionset doc))
    (or (member (setq nom (nom_bl bl)) lst2)
      (setq lst1 (cons bl lst1)
        lst2 (cons nom lst2)
      )
    )
      )
      (vla-delete js)
      (initget "Oui Non _Yes _No")
      (setq rep (getkword "\nDйsirez-vous conserver l'emplacement actuel des blocs <O> : "))
      (or rep
    (setq rep "Oui")
      )
      (foreach ent (reverse lst1)
    (vla-highlight ent :vlax-true)
    (while (not (setq pt (getpoint "\nVeuillez sйlectionner son nouveau point de base : "))))
    (vla-highlight ent :vlax-false)
    (setq bl  (vla-item (vla-get-blocks doc) (setq nom (nom_bl ent)))
          dec (mapcar '- (rota (trans pt 1 0) (vlax-get ent 'insertionpoint) (- (vlax-get ent 'rotation))) (vlax-get ent 'insertionpoint))
    )
    (if (< (vlax-get ent 'xscalefactor) 0)
      (setq dec (list (- (car dec)) (cadr dec) (caddr dec)))
    )
    (setq deh (mapcar '/ dec (list (abs (vlax-get ent 'xscalefactor)) (abs (vlax-get ent 'yscalefactor)) (abs (vlax-get ent 'zscalefactor)))))
    (vlax-put bl 'origin (mapcar '+ (vlax-get bl 'origin) deh))
    (if (ssget "x" (list (cons 0 "INSERT") (cons 2 (strcat nom ",`**"))))
      (progn
        (vlax-for ent (setq js (vla-get-activeselectionset doc))
          (and (eq rep "Oui") (eq (strcase (nom_bl ent)) (strcase nom))
        (progn
          (setq dec (mapcar '* (rota deh '(0.0 0.0 0.0) (vlax-get ent 'rotation)) (list (abs (vlax-get ent 'xscalefactor)) (abs (vlax-get ent 'yscalefactor)) (abs (vlax-get ent 'zscalefactor)))))
          (vlax-put ent 'insertionpoint (mapcar '+ (vlax-get ent 'insertionpoint) dec))
          (if (< (vlax-get ent 'xscalefactor) 0)
            (vlax-put ent 'insertionpoint (polar (vlax-get ent 'insertionpoint) (vlax-get ent 'rotation) (* (abs (vlax-get ent 'xscalefactor)) 2 (distance '(0.0 0.0 0.0) deh))))
          )
        )
          )
        )
        (vla-delete js)
        (princ (strcat "\nModification du point de base pour le bloc \"" nom "\" effectuй."))
      )
    )
      )
    )
    (princ "\nPas de bloc de sйlectionnй.")
  )
  (vla-endundomark doc)
  (princ)
)
Nike вне форума  
 
Непрочитано 30.06.2011, 16:00
#25
proteirei


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


Nike, у меня мнение странное, что с обсуждением темы мы опоздали, ибо она открыта 04.06.2009
proteirei вне форума  
 
Непрочитано 30.06.2011, 18:26
#26
VVA

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


еще один вариант changeblockinsertion

__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.04.2012, 15:48
#27
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от Do$ Посмотреть сообщение
Другой вариант:
малюсенькое дополнение:
(ssget "_:S" (quote ((0 . "INSERT")))) заменить на (ssget "_:S:E" (quote ((0 . "INSERT"))))
Отличная программа для статических блоков.
crosandr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Базовая точка существующего блока

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точка вставки блока Visla AutoCAD 14 03.05.2012 22:59
Изменение параметров дин блока ch-viktor Программирование 5 23.05.2008 21:38
добавление скрипта к вставке блока с палитры. TheBuTeK Программирование 13 17.10.2007 21:29
Базовая точка sheinik AutoCAD 6 20.06.2007 22:32
Точка вставки блока и маленький глюк Serzhio AutoCAD 2 21.04.2005 11:16