1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Скрыть объявление

выноска координат одной клавишей по иксам и игрекам

Тема в разделе "Autodesk", создана пользователем dkuroch, 4 июн 2013.

  1. Alexandr-GR

    Alexandr-GR Форумчанин

    Добавлю, что лежать этот ХХХ.lsp должен в папке, к которой прописан путь (в Настройка -- > "Путь доступа к вспомогательным файлам").
    Либо же ^C^C^P(if (not c:XXX)(load "Полный путь/XXX.lsp") );^PXXX;
     
    borik нравится это.
  2. BearDyugin

    BearDyugin Модератор Форумчанин

    Ну тогда и я, не добавлю, а заострю внимание.
    В LISP-е при написании пути используется, не как везде принято, один слэш (\), а либо один обратный (/), либо два обычных (\\)
     
  3. Qvinto

    Qvinto Форумчанин

    Вот поэтому я все в Support и держу.
     
  4. chehoff

    chehoff Форумчанин

    пробовал прописать макрос, создал иконку, но не работает. видимо где то не доработал в прописании. буду еще пробовать. кстати лисп оказался непричем(всвязи с переустановкой автокада. причина была в залипании клавиши CTRL. узнал об этом, когда вышел из автокада и при запуске Word выскочило сообщение: нажат Ctrl. тут на форуме уже жаловались что не работает ESC. так это из этой же оперы.Пользуясь случаем скажу пропанель задач(Alexandr-GR должен помнить): победил ее зависание следующим образом: переместил ее вправо на экране, установив в настройках тип-всплывающая,ту линейку инструментов что была справа скинул вниз на линейку(орто, привязки) попутно убрал линейку слеваи в итоге получил чистый по ширине экран(не считая 5мм прокрутки справа).
     
  5. А размер текста и самой выносной линии изменить как-то можно? А то у меня координаты на половину чертежа получаются...
     
  6. borik

    borik Форумчанин

    BAHO,
    Формат-Стиль мультивыноски...
     
  7. Спасибо!
     
  8. chehoff

    chehoff Форумчанин

    Qvinto: Это избавит вас от рутинной и суетливой работы по ручной загрузке лиспов.
    Сhehoff: мы не ищем легких путей!.
     
  9. Bose Vermesser

    Bose Vermesser Форумчанин

    Всед доброго времени суток. Есть ли такой лисп - выноска координаты Z (отметки), аналогично X,Y?
     
  10. BearDyugin

    BearDyugin Модератор Форумчанин

    Код:
    (defun c:geo_z_leader (/ koord z)
      (vl-load-com)
      (while
        (and
          (setq koord (getpoint "\nТочка <Выход>"))
        )
        (setq
          z (strcat
          "Z="
          (rtos
            (caddr koord)
            2
          )
        )
        )
        (VL-cmdf "_leader"    "none" koord pause "" z    "")
      )
    )
    (princ "Вызов фукции: geo_z_leader")
     

    Вложения:

    • geo_z_leader.LSP
      Размер файла:
      332 байт
      Просмотров:
      286
    Кирилл Большаков нравится это.
  11. Bose Vermesser

    Bose Vermesser Форумчанин

    спасибо, но что-то не работает. Он на блоки не реагирует, только на примитив точка?
     
  12. Philin

    Philin Форумчанин

    У меня есть на VBA под автокад программа (называется Vinoska). Делает различные выноски, координаты и высоту в том числе. Привязка к объектам осуществляется в соответствии с включенными пользователем в текущий момент привязками.
    Вот окно программы (в принципе тут понятно какие выноски она может чертить):

    [​IMG]

    Скачать можно здесь! Там общий пакет программ с инструкцией по установке и работе с ними.

    Ну, а выглядит это всё примерно так (скрин со старой версии, текущая версия ВСЕГДА пишет 3 знака после запятой, если это не отклонения от проекта (там целые числа мм. или см.)):
    [​IMG]
     
  13. borik, Доброго времени суток! подскажите, что подправить в лиспе, чтобы координаты в выноске выводились в последовательности xyz, а не yxz? Заранее благодарен
     
  14. borik

    borik Форумчанин

    stormok,
    Да простит меня автор этого лиспа...
    Код:
    (defun c:geo_koord_mleader (/ pod_z koord  xyz)
    (initget "Да Нет Lf Ytn _ Y N Y N")
      (setq
        pod_z (getkword "\nПодписывать Z [Да/Нет] <Нет>? : ")
      )
      (while (and
          (setq koord (getpoint "\nТочка <Выход>"))
        )
        (setq
        ; xyz  (strcat "Y=" (rtos (nth 0 koord) 2 3)"\nX=" (rtos (nth 1 koord) 2 3)(if
          xyz  (strcat "X=" (rtos (nth 1 koord) 2 3)"\nY=" (rtos (nth 0 koord) 2 3)(if
        (= pod_z "Y")
          (strcat "\nZ=" (rtos (nth 2 koord) 2 3))
          ""
      ))
        )
        (VL-cmdf "_mleader" koord pause  xyz "")
      )
    )
     
    (princ "Вызов фукции: geo_koord_mleader")
     
    Иван Солшенко и stormok нравится это.

  15. Спасибо большое!
     
  16. Уважаемый Борик)
    У меня к Вам еще одна просьба, не могли бы подправить тот лисп, который вы мне тогда написали.
    Нужно, чтобы он округлял координаты до 2-х знаков после запятой, заранее благодарен.


    нашел в инете такой лисп, но он как то криво рисует саму выноску, т.е. "х" и "у" они над полкой, а нужно чтобы "х" был вверху, а "у" снизу.
    Код:
    (vl-load-com)
    
    (defun c:geo-coord (/ *error* _kpblc-eval-value-round adoc pt pt2 dimzin ans)
    
      (defun _kpblc-eval-value-round (value to)
                                    ;|
    ;; http://forum.dwg.ru/showthread.php?p=301275
    *    Выполняет округление числа до указанной точности
    *    Примеры вызова:
    (_kpblc-eval-value-round 16.365 0.01) ; 16.37
    |;
        (if (zerop to)
          value
          (* (atoi (rtos (/ (float value) to) 2 0)) to)
          ) ;_ end of if
        ) ;_ end of defun
    
      (defun *error* (msg)
        (vla-endundomark adoc)
        (princ msg)
        (princ)
        ) ;_ end of defun
    
      (vla-startundomark
        (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
        ) ;_ end of vla-startundomark
    
      (setq dimzin (getvar "dimzin"))
      (setvar "dimzin" 0)
      (if (= (type
              (setq ans (vl-catch-all-apply
                          (function (lambda (/ res)
                                      (initget "Да Нет Yes No _ Y N Y N")
                                      (cond
                                        ((= (type (setq res
                                                          (getkword
                                                            "\nПодписывать Z [Да/Нет] <Нет> ? : "
                                                            ) ;_ end of getkword
                                                        ) ;_ end of setq
                                                  ) ;_ end of type
                                            'str
                                            ) ;_ end of =
                                          res
                                          )
                                        (t "N")
                                        ) ;_ end of cond
                                      ) ;_ end of lambda
                                    ) ;_ end of function
                          ) ;_ end of vl-catch-all-apply
                    ) ;_ end of setq
              ) ;_ end of type
            'str
            ) ;_ end of =
        (progn
          (while
            (and
              (= (type (setq
                        pt (vl-catch-all-apply
                              (function
                                (lambda ()
                                  (getpoint
                                    "\nУкажите подписываемую точку <Отмена> : "
                                    ) ;_ end of getpoint
                                  ) ;_ end of lambda
                                ) ;_ end of function
                              ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                      ) ;_ end of type
                'list
                ) ;_ end of =
              (= (type (setq
                        pt2 (vl-catch-all-apply
                              (function
                                (lambda ()
                                  (getpoint
                                    pt
                                    "\nТочка размещения выноски <Отмена> : "
                                    ) ;_ end of getpoint
                                  ) ;_ end of lambda
                                ) ;_ end of function
                              ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                      ) ;_ end of type
                'list
                ) ;_ end of =
              ) ;_ end of and
            (vl-cmdf
              "_.leader"
              "_none"
              pt
              "_none"
              pt2
              ""
              (strcat "{\\LX="
                      (rtos (_kpblc-eval-value-round (cadr pt) 0.01) 2 2) "}"
                      (if (= ans "Y") "{\\L" "")
                      "\nY="
                      (rtos (_kpblc-eval-value-round (car pt) 0.01) 2 2)
                      (if (= ans "Y") "}" "")
                      (if (= ans "Y")
                        (strcat "\nZ="
                                (rtos (_kpblc-eval-value-round (caddr pt) 0.01) 2 2)
                                ) ;_ end of strcat
                        ""
                        ) ;_ end of if
                      ) ;_ end of strcat
              ""
              ) ;_ end of vl-cmdf
            ) ;_ end of while
          ) ;_ end of progn
        ) ;_ end of if
      (vla-endundomark adoc)
      ) ;_ end of defun
     
    Последнее редактирование модератором: 12 дек 2013
    iriska19 нравится это.
  17. borik

    borik Форумчанин

    Не я его написал, я его слегка подправил...
    ::wink24.gif:: найди отличия...
    Код:
    (defun c:geo_koord_mleader (/ pod_z koord  xyz)
    (initget "Да Нет Lf Ytn _ Y N Y N")
      (setq
        pod_z (getkword "\nПодписывать Z [Да/Нет] <Нет>? : ")
      )
      (while (and
          (setq koord (getpoint "\nТочка <Выход>"))
        )
        (setq
        ; xyz  (strcat "Y=" (rtos (nth 0 koord) 2 3)"\nX=" (rtos (nth 1 koord) 2 3)(if
        ;xyz  (strcat "X=" (rtos (nth 1 koord) 2 3)"\nY=" (rtos (nth 0 koord) 2 3)(if
          xyz  (strcat "X=" (rtos (nth 1 koord) 2 2)"\nY=" (rtos (nth 0 koord) 2 2)(if
        (= pod_z "Y")
          ;(strcat "\nZ=" (rtos (nth 2 koord) 2 3))
          (strcat "\nZ=" (rtos (nth 2 koord) 2 2))
          ""
      ))
        )
        (VL-cmdf "_mleader" koord pause  xyz "")
      )
    )
     
    (princ "Вызов фукции: geo_koord_mleader")
     
    kenga10, look и pitpen72 нравится это.
  18. borik, borik, borik, borik,
    Огромное спасибо! Это так облегчает жизнь)))
     
  19. pitpen72

    pitpen72 Форумчанин

    Хотел написать вопрос :) Прочитал переписку и вопрос писать не надо! Спасибо огромное!!!! Особенно borik,
    --- Сообщения объединены, 13 дек 2013, Оригинальное время сообщения: 13 дек 2013 ---
    С поворотом выноски только не могу разобраться... Пока вручную и каждую! Подскажите хитрый ход...
     
  20. все настройки мульти-выноски правятся через: формат->Стиль мультивыноски
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление