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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп =выноска+поле

Лисп =выноска+поле

Ответ
Поиск в этой теме
Непрочитано 18.04.2006, 21:30
Лисп =выноска+поле
Pave1
 
электроснабжение и автоматика
 
г. Пермь
Регистрация: 21.06.2005
Сообщений: 329

Для тех кто умеет писать лиспы это наверное не сложная задачка, а мне, да и другим проектировщикам занимающимся электрикой, пригодился бы вот такой лисп:
1. указываешь линию (отрезок/полилинию/3D полилинию);
2. место вставки.
А лисп за тебя прописывает в получившейся сноске название слоя, к которому относится линия, и хорошо бы еще название слоя было в виде поля (field), чтобы если вдруг захочется изменить слой линии, надпись менялась и соответствовала новому слою.

А может у кого-нибудь уже есть что-нибудь подобное?
Буду признателен.
__________________
хочу все знать
Просмотров: 15070
 
Непрочитано 27.10.2006, 09:22
#21
Кулик Алексей aka kpblc
Moderator

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


Вопрос: почему нельзя использовать стандартный _leader либо _qleader? И там вбивать %%c<Значение диаметра>?
Как вариант:
Код:
[Выделить все]
(defun c:diamlead (/ start end value)
  (if (and (setq start (getpoint "\nНачальная точка <Выход> : "))
           (setq end (getpoint start "\nКонечная точка <Выход> : "))
           (setq value (getreal "\nЗначение диаметра <Выход> : "))
           ) ;_ end of and
    (command "_.leader" start end "" (strcat "%%c" (rtos value)) "")
    ) ;_ end of if
  ) ;_ end of defun
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.10.2006, 06:51
#22
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Спасиба что откликнулись!
А можна не использовать Leader . Ну не нравится мне как он работает.
(канешна может я его готовить не умею)
А как использовать готовый блок с атрибутами. И чтобы выносная линия привязывалась в зависимости от угла к правой или к левой стороне.
murzilka вне форума  
 
Непрочитано 31.10.2006, 09:45
#23
Кулик Алексей aka kpblc
Moderator

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


Ээээ... В общем, я пробовал такое сделать, качественно не получается - слишком много надо вычислять, да еще и реакторы прописывать. Мне любопытно, а чем LEADER не нравится? Поконкретнее, если можно - возможно, вопрос в 1-2 настройках.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.11.2006, 03:51
#24
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Доброва времени суток!!!
Я конешна не спорю что большинство проблем можна решить заданием переменных...
Тока вот я не знаю как...
Первая это конец выноски. Чтоб у него всегда стиль стрелки *none*...
Независимо от текущева стиля размеров. Это относится кстати и к размеру и плотности текста, у нас принято текст писать высотой 3 а размер ставится 2,5...
Вторая это сама полочка. Она получилась довольно большой. Точнее сильно выдвинута относительно начала текста.
И если сделать еще и второй текст под полкой чтоб она выравнивалась по большему...
А еще чтоб привязачная точка текста совпадала с прязочной полки. Это чтоб можно было просто брать за эту точку и передвигать текст вместе с полкой...
А на счет лидера такое мнение сложилось изза проблем возникающих при некорректно сделанных чертежей. Тут эта проблема обсуждалась, но решения я так и не нашел. Это когда чертеж изначально делается в трех координатных осях. Не специально, у подрядкиков так получается случайно )))
Привести *Z* в ноль не проблема. Но вот размеры и лидеры так не делаются. Пытался пользоваться *местными* лиспами. НЕУДАЧНО...
ВОТ!!!
Но если вы мне поможете с выноской. Я буду Вам премного благодарен.
murzilka вне форума  
 
Непрочитано 01.11.2006, 09:24
#25
Кулик Алексей aka kpblc
Moderator

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


Ммм... (это у меня аж зубы заболели ) - молю прочесть мою подпись, если обращение было ко мне.
Если необходимо именно такую выноску создавать (то бишь без стрелки на конце), то тут придется использовать vla-функции. А расстояние от "точки перелома" до текста определяется размером стрелки (сист.переменная DIMASZ) и DIMGAP. У меня один вопросец есть (прежде чем лисп катать): рисование выполняется с масштабом? то есть если масштаб 1:100, то размер текста должен быть не 2.5, а 250? или нет? Если в масштабе, то где и как задается этот масштаб, чтоб не было вопросов типа "У меня масштаб рисования 2:1, а текст ставится как для 1:100, что за фигня?! Автору лиспа открутить все что отрывается!"
---
Добавлено:
Цитата:
И если сделать еще и второй текст под полкой чтоб она выравнивалась по большему...
Это есть фактически, болтается на http://www.arcada.com.ua/forum/viewtopic.php?t=506 - только там переделать немного придется для Вашей задачи. Не особо проблема, думаю.
Цитата:
А еще чтоб привязачная точка текста совпадала с прязочной полки. Это чтоб можно было просто брать за эту точку и передвигать текст вместе с полкой...
Можно и реактор на stretch использовать, только муторно это.
Цитата:
А на счет лидера такое мнение сложилось изза проблем возникающих при некорректно сделанных чертежей. Тут эта проблема обсуждалась, но решения я так и не нашел. Это когда чертеж изначально делается в трех координатных осях. Не специально, у подрядкиков так получается случайно )))
Привести *Z* в ноль не проблема. Но вот размеры и лидеры так не делаются. Пытался пользоваться *местными* лиспами. НЕУДАЧНО...
ВОТ!!!
Ххе... Есть flatten из Express Tools, есть на http://www.arcada.com.ua/forum/viewtopic.php?t=755 его аналог (там только SOLID'ы пока не обрабатывались. Плющит все в мировую систему без особых вопросов. Поправочка: теперь и солиды обрабатывает ). На выбор
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.11.2006, 05:23
#26
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Бодрова утра!!!
На счет обращения - понял... )))
Про масштаб наверно всетаки загнул . Бывают , хоть и редко масштабы отличные от 1:100 ...
Но вот про стрелку в лидере эт точно не нужна.
А вот по первой ссылке. Я не знаю как это сложить... Стыдно мне но не знаю. Я щас в таком урюпинске абитаю что ни одной нормальной книги по Лиспу не найти. А есть желание освоить данной предмет. В нете нашел пару книг , но там практически описание команд и все а как их складывать не пойму...
Хотелось чтобы ты нарисовал прогу а я потом в ней как то разобрался ну и пару вопросов позадал бы.... )))
Про текст в Лидер . А можно же задать привязку текста СЛЕВА-СНИЗУ.
А вот про трехмерность размеров и flatten . Не получилось у меня.
Я ее запустил. Она попросила выбрать объект . Я ей показал на раскаряченный размер , после чево она спросила *удалять ли скрытые линии* я сказал ДА. И она просто разбила мне размер.
Если сказать нет то ничево не происходит.
Такое ащущение что это не та прога... )))
Прикрепил файл с такими размерами???
[ATTACH]1162434190.dwg[/ATTACH]
murzilka вне форума  
 
Непрочитано 02.11.2006, 10:14
#27
Кулик Алексей aka kpblc
Moderator

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


Насчет "плющилки". Там в файле несколько "отвратительных" моментов: заданная толщина (thickness)для окружностей; в блоках атрибуты отнесены по высоте и т.п. Вот переделка (см.аттач). Код для "плющилки":
Код:
[Выделить все]
;|=============================================================================
*    Функция-аналог flatten из Express Tools. Обрабатывает 3DFACE, не трогает
* AEC-объекты, тела.
=============================================================================|;
(defun c:kpblc-dwg-flatten (/                       *kpblc-activedoc*
                            _kpblc-error-catch      *error*
                            selset                  mod_item
                            _kpblc-conv-selset-to-ename
                            _kpblc-ent-conv-z-to-0
                            )

  (defun *error* (message)
    (if (member message
                '("console break"           "Function cancelled"
                  "Функция отменена"        "quit / exit abort"
                  "выйти прервать"
                  ) ;_list
                ) ;_member
      (princ "\nКоманда прервана пользователем")
      (princ
        (strcat "\ERRNO # "
                (itoa (getvar "ERRNO"))
                ": "
                message
                "\n"
                ) ;_strcat
        ) ;_princ
      ) ;_if
    (_kpblc-layer-status-restore)
    (vla-endundomark *kpblc-activedoc*)
    (princ)
    ) ;_defun 

  (defun _kpblc-error-catch
         (protected-function on-error-function / catch_error_result)
    (setq catch_error_result (vl-catch-all-apply protected-function))
    (if (and (vl-catch-all-error-p catch_error_result)
             on-error-function
             ) ;_ end of and
      (apply on-error-function
             (list (vl-catch-all-error-message catch_error_result))
             ) ;_ end of APPLY
      catch_error_result
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-layer-status-restore (/ item)
    (if *kpblc-list-layer-status*
      (progn
        (foreach item *kpblc-list-layer-status*
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
               ) ;_ end of LAMBDA
            nil
            ) ;_ end of _kpblc-error-catch
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
               ) ;_ end of LAMBDA
            nil
            ) ;_ end of _kpblc-error-catch
          ) ;_ end of foreach
        ) ;_ end of progn
      ) ;_ end of if
    (setq *kpblc-list-layer-status* nil)
    ) ;_ end of defun

  (defun _kpblc-layer-status-save (layers-on / item)
    (vlax-for item (vla-get-layers *kpblc-activedoc*)
      (setq *kpblc-list-layer-status*
             (append *kpblc-list-layer-status*
                     (list
                       (list item
                             (cons "freeze" (vla-get-freeze item))
                             (cons "lock" (vla-get-lock item))
                             ) ;_ end of list
                       ) ;_ end of list
                     ) ;_ end of append
            ) ;_ end of setq
      (if layers-on
        (progn
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-freeze item :vlax-false)
               ) ;_ end of LAMBDA
            nil
            ) ;_ end of _KPBLC-ERROR-CATCH
          (vla-put-lock item :vlax-false)
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of defun

  (defun _kpblc-conv-selset-to-ename (selset)
    (if selset
      (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-conv-ent-to-ename (ent_value)
    (cond
      ((= (type ent_value) 'vla-object) (vlax-vla-object->ename ent_value))
      ((= (type ent_value) 'ename) ent_value)
      ((= (type ent_value) 'list) (cdr (assoc -1 ent_value)))
      (t nil)
      ) ;_ end of cond
    ) ;_ end of defun

  (defun _kpblc-conv-ent-to-vla (ent_value)
    (cond
      ((= (type ent_value) 'vla-object) ent_value)
      ((= (type ent_value) 'ename) (vlax-ename->vla-object ent_value))
      ((= (type ent_value) 'list)
       (cond
         ((= (type (car ent_value)) 'ename)
          (vlax-ename->vla-object (car ent_value))
          )
         (t
          (if
            (not
              (vl-catch-all-error-p
                (vl-catch-all-apply
                  (vlax-ename->vla-object (_kpblc-conv-ent-to-ename ent_value))
                  ) ;_ end of vl-catch-all-apply
                ) ;_ end of vl-catch-all-error-p
              ) ;_ end of not
             nil
             ) ;_ end of if
          )
         ) ;_ end of cond
       )
      (t nil)
      ) ;_ end of cond
    ) ;_ end of defun

  (defun _kpblc-ent-conv-z-to-0 (ent / new pt lst loc:transpoint selset)
    (defun loc:transpoint (point ent)
      (if (/= (cdr (assoc 210 (entget ent))) '(0. 0. 1.))
        (trans point ent 0)
        point
        ) ;_ end of if
      ) ;_ end of defun

    (cond
      ((member (cdr (assoc 0 (entget ent))) '("INSERT" "HATCH"))
       (_kpblc-ent-modify-autoregen
         ent
         10
         (list (cadr (assoc 10 (entget ent)))
               (caddr (assoc 10 (entget ent)))
               0.
               ) ;_ end of list
         nil
         ) ;_ end of _kpblc-ent-modify-autoregen
       )
      ((= (cdr (assoc 0 (entget ent))) "LINE")
       (foreach item '(10 11)
         (setq pt (loc:transpoint (cdr (assoc item (entget ent))) ent))
         (_kpblc-ent-modify-autoregen
           ent
           item
           (list (car pt) (cadr pt) 0.)
           nil
           ) ;_ end of _kpblc-ent-modify-autoregen
         ) ;_ end of foreach
       )
      ((member (cdr (assoc 0 (entget ent))) '("CIRCLE" "ARC"))
       (setq pt (trans (cdr (assoc 10 (entget ent))) ent 0))
       (_kpblc-ent-modify-autoregen
         ent
         10
         (list (car pt) (cadr pt) 0.)
         nil
         ) ;_ end of _kpblc-ent-modify-autoregen
       )
      ((= (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
       (setq lst (mapcar '_kpblc-conv-3d-to-2d
                         (_kpblc-conv-ent-pline-vertex-to-wcs ent)
                         ) ;_ end of mapcar
             ) ;_ end of setq
       (if (not (equal (cdr (assoc 210 (entget ent))) '(0. 0. 1.)))
         (progn
           (vla-put-coordinates
             (_kpblc-conv-ent-to-vla ent)
             (_kpblc-conv-pointlist-to-variant (apply 'append lst))
             ) ;_ end of vla-put-coordinates
           (_kpblc-ent-modify-autoregen ent 210 '(0. 0. 1.) nil)
           ) ;_ end of progn
         ) ;_ end of if
       (_kpblc-ent-modify-autoregen ent 38 0 nil)
       (_kpblc-ent-modify-autoregen ent 39 0 nil)
       )
      ((= (cdr (assoc 0 (entget ent))) "LEADER")
       (kpblc-is-debug-print "\nВозможна неправильная обработка LEADER!")
       (vla-put-coordinates
         (_kpblc-conv-ent-to-vla ent)
         (_kpblc-conv-pointlist-to-variant
           (apply
             'append
             (mapcar
               '_kpblc-conv-2d-to-3d
               (mapcar '_kpblc-conv-3d-to-2d
                       (_kpblc-conv-list-to-3dpoints
                         (vlax-safearray->list
                           (vlax-variant-value
                             (vla-get-coordinates (_kpblc-conv-ent-to-vla ent))
                             ) ;_ end of vlax-variant-value
                           ) ;_ end of vlax-safearray->list
                         ) ;_ end of _KPBLC-CONV-LIST-TO-3DPOINTS
                       ) ;_ end of mapcar
               ) ;_ end of mapcar
             ) ;_ end of apply
           ) ;_ end of _kpblc-conv-pointlist-to-variant
         ) ;_ end of vla-put-coordinates
       )
      ((= (cdr (assoc 0 (entget ent))) "TEXT")
       (setq pt (loc:transpoint (cdr (_kpblc-get-text-point ent)) ent))
       (_kpblc-ent-modify-autoregen ent 10 (list (car pt) (cadr pt) 0.) nil)
       )
      ((= (cdr (assoc 0 (entget ent))) "MTEXT")
       (setq pt (loc:transpoint (cdr (_kpblc-get-text-point ent)) ent))
       (_kpblc-ent-modify-autoregen ent 10 (list (car pt) (cadr pt) 0.) nil)
       )
      ((= (cdr (assoc 0 (entget ent))) "DIMENSION")
       (command "_.dimdisassociate" ent "")
       (foreach item '(10 11 12 13 14 15 16)
         (if (cdr (assoc item (entget ent)))
           (progn
             (setq pt (loc:transpoint (cdr (assoc item (entget ent))) ent))
             (_kpblc-ent-modify-autoregen
               ent
               item
               (list (car pt) (cadr pt) 0.)
               nil
               ) ;_ end of _kpblc-ent-modify-autoregen
             ) ;_ end of progn
           ) ;_ end of if
         ) ;_ end of foreach
       )
      ((= (cdr (assoc 0 (entget ent))) "3DFACE")
       ;; Для 3DFACE преобразование попробуем не проводить
       (vla-addlightweightpolyline
         (vla-objectidtoobject
           *kpblc-activedoc*
           (vla-get-ownerid (vlax-ename->vla-object ent))
           ) ;_ end of vla-ObjectIDToObject
         (_kpblc-conv-pointlist-to-variant
           (apply 'append
                  (mapcar
                    '_kpblc-conv-3d-to-2d
                    (mapcar 'cdr
                            (vl-remove-if-not
                              '(lambda (x) (member (car x) '(10 11 12 13)))
                              (entget ent)
                              ) ;_ end of vl-remove-if-not
                            ) ;_ end of mapcar
                    ) ;_ end of mapcar
                  ) ;_ end of apply
           ) ;_ end of _kpblc-conv-pointlist-to-variant
         ) ;_ end of vla-addlightweightpolyline
       (_kpblc-ent-properties-copy
         (_kpblc-conv-ent-to-vla ent)
         (_kpblc-conv-ent-to-vla (entlast))
         ) ;_ end of _kpblc-ent-properties-copy
       (entdel ent)
       (setq ent (entlast))
       (_kpblc-ent-modify-autoregen ent 70 1 t)
       )
      ((= (cdr (assoc 0 (entget ent))) "SOLID")
       (mapcar
         '(lambda (x)
            (if (cdr (assoc (car x) (entget ent)))
              (_kpblc-ent-modify-autoregen ent (car x) (cdr x) t)
              ) ;_ end of if
            ) ;_ end of LAMBDA
         (mapcar
           '(lambda (a) (cons a (trans (cdr (assoc a (entget ent))) ent 0)))
           '(10 11 12 13)
           ) ;_ end of mapcar
         ) ;_ end of mapcar
       )
      ) ;_ end of cond
    (_kpblc-ent-modify-autoregen ent 210 (list 0. 0. 1.) nil)
    ent
    ) ;_ end of defun


  (defun _kpblc-ent-modify-autoregen (ent        bit        value
                                      ext_regen  /          ent_list
                                      old_dxf    new_dxf    layer_dxf70
                                      )
    (setq ent (_kpblc-conv-ent-to-ename ent))
    (if (not
          (and
            (or
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "STYLE")
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "DIMSTYLE")
              (= (strcase (cdr (assoc 0 (entget ent))) nil) "LAYER")
              ) ;_ end of or 
            (= bit 100)
            ) ;_ end of and 
          ) ;_ end of not 
      (progn
        (setq ent_list (entget ent)
              new_dxf  (cons bit
                             (if (and (= bit 62) (= (type value) 'str))
                               (if (= (strcase value) "BYLAYER")
                                 256
                                 0
                                 ) ;_ end of if 
                               value
                               ) ;_ end of if 
                             ) ;_ end of cons 
              ) ;_ end of setq 
        (if (not (equal new_dxf (setq old_dxf (assoc bit ent_list))))
          (progn
            (entmod (if old_dxf
                      (subst new_dxf old_dxf ent_list)
                      (append ent_list (list new_dxf))
                      ) ;_ end of if 
                    ) ;_ end of entmod
            (if ent_regen
              (entupd ent)
              (redraw ent)
              ) ;_ end of if
            ) ;_ end of progn 
          ) ;_ end of if 
        ) ;_ end of progn 
      ) ;_ end of if 
    ent
    ) ;_ end of defun

  ;; Обрабатываем только активное пространство, потому что для остальных
  ;; используемая функция (trans) выдает ошибку
  (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark *kpblc-activedoc*)
  (if (setq selset (ssget))
    (progn
      (_kpblc-layer-status-save t)
      (foreach item (_kpblc-conv-selset-to-ename selset)
        (setq mod_item (_kpblc-ent-conv-z-to-0 item))
        (if (vlax-property-available-p
              (_kpblc-conv-ent-to-vla mod_item)
              "thickness"
              ) ;_ end of vlax-property-available-p
          (vla-put-thickness (_kpblc-conv-ent-to-vla mod_item) 0.)
          ) ;_ end of if
        ) ;_ end of foreach
      (_kpblc-layer-status-restore)
      ) ;_ end of progn
    ) ;_ end of if
  (vla-endundomark *kpblc-activedoc*)
  (princ)
  ) ;_ end of defun
Насчет литературы по лиспу и программированию под AutoCAD было обсуждение на http://www.arcada.com.ua/forum/viewtopic.php?t=431 (и дополнительно на http://www.arcada.com.ua/forum/viewtopic.php?t=522 ).
Теперь по "лидеру" (ну и словечко!). Из поста 19 проанализируй код - он достаточно сложен. Хотя твоя задача решается заменой строк
Код:
[Выделить все]
lead_obj (vla-addleader
           (_kpblc-get-active-space-obj)
           (_kpblc-conv-pointlist-to-variant
             (apply 'append (list start-point end-point))
             ) ;_ end of _kpblc-conv-pointlist-to-variant
           ann_obj
           aclinewitharrow
           ) ;_ end of vla-AddLeader
на нечто типа
Код:
[Выделить все]
lead_obj
(vla-addleader
  (_kpblc-get-active-space-obj)
  (_kpblc-conv-pointlist-to-variant
    (apply 'append (list start-point end-point))
    ) ;_ end of _kpblc-conv-pointlist-to-variant
  ann_obj
  aclinenoarrow
  ) ;_ end of vla-AddLeader
Что называется, найти одно отличие
[ATTACH]1162451684.zip[/ATTACH]
---
Добавлено:
Если у тебя не требуется поле, обязательно замени определение аннотации для выноски (это который ann_obj).
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.11.2006, 06:48
#28
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Доброва времени суток!!!
По плющилку....
Она у меня не запустилась... Набирал команду kpblc-dwg-flatten
Вааще как это правильно делать? Може я что не то делаю...
Я беру код, закидываю ево в файл acad.lsp который лежит в суппорте.
И он у меня автоматически загружается при запуске автокада.
А про лидера дела такие. Засунул с поста 19 код, заменил ,как ты сказал стрелку на БЕЗ стрелки и...
Так же не запустилась.
"bad argument type: consp 512" - пишет
я так понимаю что это объктная привязка. Она что только ближайшую точку ? А нельзя пользоваться моими включенными?
murzilka вне форума  
 
Непрочитано 03.11.2006, 08:56
#29
Кулик Алексей aka kpblc
Moderator

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


О мой старый голова! Вот они, минусы модульных систем... В приложении - подправленный код. Если сильно надо, можно попробовать сделать инсталлер на это меню (только явно не сегодня). Комментарии там унутри. С выноской попробую сегодня разобраться, но не гарантирую. Там в принципе сложного мало, надо просто последовательно все прописать Если гуры подключатся, то будет совсем гуд
[ATTACH]1162533394.rar[/ATTACH]
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.11.2006, 09:38
#30
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Да не плохо!!!
Тока вот если у тебя сохранился мой пример, попробуй сам сделать.
Получилось он все сплющил за исключение одного блока number_ruum.
С ним он просто поглумился. )))
Это номер помещения. Цифра в кружочке. Так вот он кружочек опустил в ноль а цифру забыл )))
Инсталятор мне не нужен. Я все равно пользуюсь клавай для команд.
murzilka вне форума  
 
Непрочитано 03.11.2006, 09:47
#31
Кулик Алексей aka kpblc
Moderator

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


Ага. Я знаю. Я специально не стал в комментах писать. Суть в следующем: в этом блоке у тебя атрибут отнесен по высоте изначально. Как вариант можно войти в редактирование этого блока, применить плющилку, потом выйти с сохранением и выполнить _attsync или _battman. Но! Прежде чем это делать, поищи - Vova поднимал тему по поводу поведения этих команд - там есть интересная инфа.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.11.2006, 09:51
#32
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


А еще!!! Это уже на другом файле...
Прога протоптала размеры. А потом переходит на полилинии.
И выдает ашипку!!!
"errno # 0: Ошибка автоматизации. invalid list"
ВОТ!!!
murzilka вне форума  
 
Непрочитано 03.11.2006, 09:57
#33
Кулик Алексей aka kpblc
Moderator

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


Присылай или выкладывай. Догадываюсь, где собака порылась. Но надо на конкретике смотреть.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.11.2006, 10:14
#34
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


ИЗВИНИТИ!!!
Блок я проверил. Изначально он был нормальный. И даже в этом чертежике он хоть поднят на 2999.96 но это относится и к цырклу и цыфири...
Вот файл...
[ATTACH]1162538040.rar[/ATTACH]
murzilka вне форума  
 
Непрочитано 03.11.2006, 12:55
#35
Кулик Алексей aka kpblc
Moderator

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


Значит насчет этого файла. У меня код отработал не совсем на ура - не обработал выноски (вылетел, я потом подправил). Сплайны тоже мимо (было ожидаемо). И блоки тож. Вопрос - если со сплайнами заморачиваться, там принимать управляющие точки или определяющие (в английской версии соответсвенно Control points / Fit points)? Блоки обрабатываем?
P.S. Если обрабатываем сплайны, а у них точки разнесены по высоте (то есть первая на 0, вторая на 100, третья на -1000), то в результате вид сплайна может капитально измениться.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.11.2006, 01:17
#36
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Доброва Утра!!!
В общем так. На сплайны ЗАБЬЕМ!!!
Не знаю кто ево использовал. Но это скорее единичный случай.
Вааще , изначально проблема была с размерами и их родственниками )))
Такой чертеж я привожу в ручную в нормальный вид за пару минут. Проблемы составляют блоки, если один из них стоит на нуле то другие не хотят прыгать в ноль. Но и это решается с помощью фильтра.
И размеры, которые вааще никак не решаются.
Изначально хотелось прогу для исправления размеров. Но если получится и все остальное исправлять то это канешна буит замечательно...
з.ы. ну а что с выноской делать?)))
murzilka вне форума  
 
Непрочитано 07.11.2006, 10:54
#37
Кулик Алексей aka kpblc
Moderator

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


Погодим немного с выноской, ок? Для начала сплющим файл в камбалообразный вид
Цитата:
Но это скорее единичный случай.
Не сказал бы. Сплайнов в файле явно не один Другой вопрос, что у них все точки в одной высоте болтаются Для такого варианта попробуй приложенный код (уж очень сильно хочется снести все автоматом). А там и выноской займемси
[ATTACH]1162886047.rar[/ATTACH]
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.11.2006, 07:11
#38
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Доброва утра , Уважаемый !
С новым кодом погонял файлик. Сначала ничево он не смог сделать со сплайном и блоки разрывал. Но потом при выделении всево рисунка выпал ФАТАЛ ИРРОР!!!
*Command may not be nested more than 4 deep*
ВОТ!!!
Начел по одному . Все нормально. И сплайны по одному сплющил. Но стоило выделить , наверно больше десяти с блоком вместе и ... фатал...
В общем по одному он сплющивает блоки нормально... но
murzilka вне форума  
 
Непрочитано 08.11.2006, 08:08
#39
Кулик Алексей aka kpblc
Moderator

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


(Ожесточенно чешу затылок). Я тестировал на файле, который здесь был выложен - все шарашилось на ура. Сейчас еще разок попробую...
---
Добавлено: Только что специально прогнал несколько раз в разных вариантах, вроде как все нормально работает (на предоставленном файле). Пациента б глянуть...
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.11.2006, 09:47
#40
murzilka


 
Регистрация: 23.08.2006
Краснодар
Сообщений: 21


Пациент тот же , еще раз выкладываю )))
Пациент перестает дышать на блоках , када их больше 2-3...
или на каких то специфичных.
Проверил исчо раз применением ко всему нарисованному )))
[ATTACH]1162968464.rar[/ATTACH]
murzilka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп =выноска+поле

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

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