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

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

окружность в виде полилинии

Ответ
Поиск в этой теме
Непрочитано 12.10.2010, 11:30
окружность в виде полилинии
pwm58
 
Регистрация: 14.10.2008
Сообщений: 29

как нарисовать??
Просмотров: 27605
 
Непрочитано 13.10.2010, 12:05
#21
Trucker

инженер
 
Регистрация: 24.08.2004
Саратов
Сообщений: 89
<phrase 1=


Чем вариант Хмурого и Profana не подошел то? Кольцо - это и есть полилиния.
Цитата:
Команда:
КОЛЬЦО
Внутренний диаметр кольца <10.0000>:

Внешний диаметр кольца <10.0000>:

Центр кольца или <выход>:
Центр кольца или <выход>:
__________________
Инженер должен быть в меру ленивым...
Trucker вне форума  
 
Непрочитано 13.10.2010, 16:31
#22
Reindeer

Судостроение/судоремонт
 
Регистрация: 22.10.2009
Мурманск
Сообщений: 96


Цитата:
Сообщение от Владимир Спицын Посмотреть сообщение
нарисовать окружность (Круг) как обычно. Далее рисование-Контур. Сохранение контуров выбрать "Полилиния". Клацнуть мышью внутри окружность. Окружность из полилинии готова (совпадает с окружностью).
И получицо два объекта, лежащих один на одном, что ведёт к некоторым неудобствам -_-
Способ-то нормальный, сам пользуюсь, просто надо удалять начальную окружность сразу после
Reindeer вне форума  
 
Непрочитано 18.10.2010, 17:29
#23
dartamon


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


Цитата:
Сообщение от Reindeer Посмотреть сообщение
Способ-то нормальный, сам пользуюсь, просто надо удалять начальную окружность сразу после
Вот прога в ЛИСПе (PKRUG.LSP), она все, что нужно удаляет сама:
(defun C:PKRUG ()
(terpri)
(princ "Ширина равна текущей ширине плинии.")
(command "_CIRCLE" pause "_dia" pause)
(progn
(setq krug (entlast))
(setq spkrug (entget krug))
(setq cen (cdr (assoc 10 spkrug)))
(setq rad (cdr (assoc 40 spkrug)))
(setq nach (polar cen 0 rad))
(command "_pline" nach "_arc" "Ц" cen "_a" 180 "_close")
(entdel krug)
(setq pkrug (entlast))
(setq sppkrug (entget pkrug))
(entmod sppkrug)))
(command)
)

Пользуюсь уже лет 14. А вот один косячек победить не могу: выбираем центр окружности при активной привязке (F3), вводим диаметр, и вот если не деактивировать F3, окружность рисуется в точку.
А так все нормульно.
dartamon вне форума  
 
Непрочитано 18.10.2010, 18:06
#24
black_mts

Строительство
 
Регистрация: 24.09.2010
Сочи
Сообщений: 215


в Civil 2011 есть преобразователь дуг в плинию, но нет преобразовать круг в плинию, это наверное преберегли для A-CAD 2013-2014
black_mts вне форума  
 
Непрочитано 18.10.2010, 18:58
#25
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
А вот один косячек победить не могу: выбираем центр окружности при активной привязке (F3), вводим диаметр, и вот если не деактивировать F3, окружность рисуется в точку.
Небось, все привязки задействованы и изображение на экране относительно мелкое.
Profan вне форума  
 
Непрочитано 18.10.2010, 19:57
#26
VVA

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


dartamon, Грабли №1 А вообще советую почитать посты со 167 по 241. Найдешь много для себя полезного.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.10.2010, 22:22
1 | #27
Li6-D


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


Цитата:
Сообщение от dartamon Посмотреть сообщение
Пользуюсь уже лет 14. А вот один косячек победить не могу: выбираем центр окружности при активной привязке (F3), вводим диаметр, и вот если не деактивировать F3, окружность рисуется в точку.
А так все нормульно.
Вот вариант переделки команды С:PKRUG без косячков, кругов-шаблонов.
На этапе ввода точек будет та привязка, какая была до выполнения команды.
Интересно, что если заменить:
(command "_.PLINE" rad "_Arc" "_CE" cen "_Angle" 180 "_CLose")
на
(command "_.PLINE" rad "_Arc" "_CEnter" cen "_Angle" 180 "_CLose"),
то работать почему-то не будет. По крайней мере у меня не работает...
Код:
[Выделить все]
(defun C:PKRUG (/ cmdecho osmode *error* cen rad)
  (setq cmdecho (getvar "CMDECHO") ;Сохранение исходных значений
        osmode (getvar "OSMODE"))  ;системных переменных ACAD.
  ;;Обработчик ошибок для восстановления системных переменных ACAD.
  ;;Например, в случае прерывания команды клавишей ESС и пр.
  (defun *error* (msg)
    (setvar "OSMODE" osmode)   ;Аварийное восстановление объектной привязки
    (setvar "CMDECHO" cmdecho) ;Аварийное восстановление командного эха
    (princ)
  )
  (princ "\nШирина равна текущей ширине плинии. ")
  (setq cen (getpoint "Укажите центр круга: ") 
        rad (polar cen 0 (distance cen (getpoint cen "\nУкажите радиус круга: "))))
  (setvar "OSMODE" 1024) ;Отключение объектной привязки перед выполнением (command...).
  (setvar "CMDECHO" 0)   ;Отключение командного эха перед выполнением (command...).
  (command "_.PLINE" rad "_Arc" "_CE" cen "_Angle" 180 "_CLose")
  (setvar "OSMODE" osmode)   ;Штатное восстановление объектной привязки
  (setvar "CMDECHO" cmdecho) ;Штатное восстановление командного эха
  (princ)
)

Последний раз редактировалось Li6-D, 18.10.2010 в 22:43. Причина: Разжевал как мог
Li6-D вне форума  
 
Непрочитано 18.10.2010, 22:28
#28
Кулик Алексей aka kpblc
Moderator

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


Нет меток начала и конца отмены.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2010, 00:53
#29
Li6-D


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Нет меток начала и конца отмены.
И то верно.
Если и дальше следовать старыми "командными" методами, без всяких там vla-startundomark...vla-endundomark код можно исправить так:
Код:
[Выделить все]
(defun C:PKRUG (/ cmdecho osmode *error* cen rad)
  (setq cmdecho (getvar "CMDECHO") ;Сохранение исходных значений
        osmode (getvar "OSMODE"))  ;системных переменных ACAD.
  ;;Обработчик ошибок для восстановления системных переменных ACAD.
  ;;Например, в случае прерывания команды клавишей ESС и пр.
  (defun *error* (msg)
    (setvar "OSMODE" osmode)
    (setvar "CMDECHO" cmdecho)
    (princ)
  )
  (setvar "CMDECHO" 0)   ;Отключение командного эха перед выполнением (command...).
  ;;Начало формирования группы команд для отмены (при необходимости)
  ((lambda (u) ;Как же без лямбды?
     (cond
       ((zerop u) (command "_.UNDO" "_All"))
       ((= u 3) (command "_.UNDO" "_Control" "_All"))
     )
     (command "_.UNDO" "_Group")
   )
   (rem (getvar "UNDOCTL") 16)
  )
  (princ "\nШирина равна текущей ширине плинии. ")
  (setq cen (getpoint "Укажите центр круга: ") 
        rad (polar cen 0 (distance cen (getpoint cen "\nУкажите радиус круга: "))))
  (setvar "OSMODE" 1024) ;Отключение объектной привязки перед выполнением (command...).
  (command "_.PLINE" rad "_Arc" "_CE" cen "_Angle" 180 "_CLose")
  (command "_.UNDO" "_End")  ;Конец формирования группы команд для отмены
  (setvar "OSMODE" osmode)   ;Восстановление объектной привязки
  (setvar "CMDECHO" cmdecho) ;Восстановление командного эха
  (princ)
)
Li6-D вне форума  
 
Непрочитано 19.10.2010, 01:17
#30
Кулик Алексей aka kpblc
Moderator

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


Ну запутали...
Код:
[Выделить все]
(defun c:plcircle (/ sysvar_lst fun_sysvar-save fun_sysvar-restore *error*)

  (defun fun_sysvar-save (lst)
    (foreach item lst
      (setq sysvar_lst (cons (cons (car item) (getvar (car item))) sysvar_lst))
      (setvar (car item) (cdr item))
      ) ;_ end of foreach
    ) ;_ end of defun

  (defun fun_sysvar-restore ()
    (foreach item sysvar_lst
      (setvar (car item) (cdr item))
      ) ;_ end of foreach
    ) ;_ end of defun

  (defun *error* (msg)
    (fun_sysvar-restore)
    (command "_.undo" "_e")
    (princ msg)
    (princ)
    ) ;_ end of defun

  (command "_.undo" "_be")
  (if (and (setq cen (getpoint "\nÓêàæèòå öåíòð êðóãà <Îòìåíà> : "))
           (setq rad (getdist cen "\nÓêàæèòå ðàäèóñ êðóãà <Îòìåíà> : "))
           ) ;_ end of and
    (progn
      (fun_sysvar-save '(("cmdecho" . 0) ("nomutt" . 1) ("osmode" . 0)))
      (command "_.pline"
               (polar cen 0 rad)
               "_a"
               "_ce"
               cen
               "_angle"
               (if (member (getvar "aunits") '(0 1))
                 180.
                 pi
                 ) ;_ end of if
               "_close"
               ) ;_ end of command
      ) ;_ end of progn
    ) ;_ end of if
  (fun_sysvar-restore)
  (command "_.undo" "_e")
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.10.2010, 06:10
#31
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да кому нужна отмена полилинии? Стёр ее, да и все.
Profan вне форума  
 
Непрочитано 19.10.2010, 19:49
#32
Li6-D


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


Написали, конечно, по максимуму. Для примера. Как будто под заказ.
Но и в коде Алексея тоже есть легкая кривизна...
Выполните (command "_.undo" "_c" "_n") или (command "_.undo" "_c" "_o") перед выполнением plcircle
Li6-D вне форума  
 
Непрочитано 19.10.2010, 19:53
#33
Кулик Алексей aka kpblc
Moderator

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


Li6-D, я вообще стараюсь не использовать командные методы. Так что для рабочего варианта точно не это получилось бы...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > окружность в виде полилинии



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новые команды для работы с полилинией VVA Программирование 647 18.09.2023 11:16
lisp: Длина по полилинии до точки vosh LISP 19 15.07.2013 15:10
как преобразовать полилинии с шириной в полилинии с весом идентичным ширине? Vadym AutoCAD 28 05.07.2010 21:14
выноски к полилинии gizmo_zx Программирование 6 01.03.2010 12:17
структурированный список Holon Программирование 22 11.09.2007 14:09