Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

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

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

  1. Alexandr-GR

    Форумчанин

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

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

    Регистрация:
    30 ноя 2007
    Сообщения:
    2.747
    Симпатии:
    2.503
    Адрес:
    Сибирь
    Ну тогда и я, не добавлю, а заострю внимание.
    В LISP-е при написании пути используется, не как везде принято, один слэш (\), а либо один обратный (/), либо два обычных (\\)
     
    #22
  3. Qvinto

    Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    5.681
    Симпатии:
    4.223
    Адрес:
    Украина, г.Калуш
    Вот поэтому я все в Support и держу.
     
    #23
  4. chehoff

    Форумчанин

    Регистрация:
    14 май 2012
    Сообщения:
    1.062
    Симпатии:
    184
    Адрес:
    Первый в мире, второй по Сибири
    пробовал прописать макрос, создал иконку, но не работает. видимо где то не доработал в прописании. буду еще пробовать. кстати лисп оказался непричем(всвязи с переустановкой автокада. причина была в залипании клавиши CTRL. узнал об этом, когда вышел из автокада и при запуске Word выскочило сообщение: нажат Ctrl. тут на форуме уже жаловались что не работает ESC. так это из этой же оперы.Пользуясь случаем скажу пропанель задач(Alexandr-GR должен помнить): победил ее зависание следующим образом: переместил ее вправо на экране, установив в настройках тип-всплывающая,ту линейку инструментов что была справа скинул вниз на линейку(орто, привязки) попутно убрал линейку слеваи в итоге получил чистый по ширине экран(не считая 5мм прокрутки справа).
     
    #24
  5. BAHO

    Регистрация:
    15 апр 2012
    Сообщения:
    8
    Симпатии:
    0
    А размер текста и самой выносной линии изменить как-то можно? А то у меня координаты на половину чертежа получаются...
     
    #25
  6. borik

    Форумчанин

    Регистрация:
    29 июн 2011
    Сообщения:
    894
    Симпатии:
    578
    Адрес:
    Витебск
    BAHO,
    Формат-Стиль мультивыноски...
     
    #26
  7. BAHO

    Регистрация:
    15 апр 2012
    Сообщения:
    8
    Симпатии:
    0
    Спасибо!
     
    #27
  8. chehoff

    Форумчанин

    Регистрация:
    14 май 2012
    Сообщения:
    1.062
    Симпатии:
    184
    Адрес:
    Первый в мире, второй по Сибири
    Qvinto: Это избавит вас от рутинной и суетливой работы по ручной загрузке лиспов.
    Сhehoff: мы не ищем легких путей!.
     
    #28
  9. Bose Vermesser

    Форумчанин

    Регистрация:
    14 июл 2009
    Сообщения:
    324
    Симпатии:
    92
    Всед доброго времени суток. Есть ли такой лисп - выноска координаты Z (отметки), аналогично X,Y?
     
    #29
  10. BearDyugin

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

    Регистрация:
    30 ноя 2007
    Сообщения:
    2.747
    Симпатии:
    2.503
    Адрес:
    Сибирь
    Код:
    (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 байт
      Просмотров:
      279
    #30
    Кирилл Большаков нравится это.
  11. Bose Vermesser

    Форумчанин

    Регистрация:
    14 июл 2009
    Сообщения:
    324
    Симпатии:
    92
    спасибо, но что-то не работает. Он на блоки не реагирует, только на примитив точка?
     
    #31
  12. Philin

    Форумчанин

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

    [​IMG]

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

    Ну, а выглядит это всё примерно так (скрин со старой версии, текущая версия ВСЕГДА пишет 3 знака после запятой, если это не отклонения от проекта (там целые числа мм. или см.)):
    [​IMG]
     
    #32
  13. stormok

    Регистрация:
    11 авг 2013
    Сообщения:
    21
    Симпатии:
    4
    borik, Доброго времени суток! подскажите, что подправить в лиспе, чтобы координаты в выноске выводились в последовательности xyz, а не yxz? Заранее благодарен
     
    #33
  14. borik

    Форумчанин

    Регистрация:
    29 июн 2011
    Сообщения:
    894
    Симпатии:
    578
    Адрес:
    Витебск
    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")
     
    #34
    Иван Солшенко и stormok нравится это.
  15. stormok

    Регистрация:
    11 авг 2013
    Сообщения:
    21
    Симпатии:
    4

    Спасибо большое!
     
    #35
  16. stormok

    Регистрация:
    11 авг 2013
    Сообщения:
    21
    Симпатии:
    4
    Уважаемый Борик)
    У меня к Вам еще одна просьба, не могли бы подправить тот лисп, который вы мне тогда написали.
    Нужно, чтобы он округлял координаты до 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
     
    #36
    Последнее редактирование модератором: 12 дек 2013
    iriska19 нравится это.
  17. borik

    Форумчанин

    Регистрация:
    29 июн 2011
    Сообщения:
    894
    Симпатии:
    578
    Адрес:
    Витебск
    Не я его написал, я его слегка подправил...
    ::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")
     
    #37
    kenga10, look и pitpen72 нравится это.
  18. stormok

    Регистрация:
    11 авг 2013
    Сообщения:
    21
    Симпатии:
    4
    borik, borik, borik, borik,
    Огромное спасибо! Это так облегчает жизнь)))
     
    #38
  19. pitpen72

    Форумчанин

    Регистрация:
    11 авг 2011
    Сообщения:
    102
    Симпатии:
    14
    Адрес:
    Тюмень
    Хотел написать вопрос :) Прочитал переписку и вопрос писать не надо! Спасибо огромное!!!! Особенно borik,
    --- Сообщения объединены, 13 дек 2013, Оригинальное время сообщения: 13 дек 2013 ---
    С поворотом выноски только не могу разобраться... Пока вручную и каждую! Подскажите хитрый ход...
     
    #39
  20. stormok

    Регистрация:
    11 авг 2013
    Сообщения:
    21
    Симпатии:
    4
    все настройки мульти-выноски правятся через: формат->Стиль мультивыноски
     
    #40

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление