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

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

Высотные отметки

Ответ
Поиск в этой теме
Непрочитано 15.08.2008, 14:03
Высотные отметки
OHUKC
 
Регистрация: 29.07.2008
Сообщений: 55

Помогите пожалуйста довести до ума прогу ...нашёл на одном из форумов
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=42685NX
Хотелось бы чтоб масштабировалось нормально...
и возможность прорисовки стрелки и простановки втекста высотной отметки в другую сторону
файл чертежа для примера прилагается...

код проги

Вложения
Тип файла: dwg
DWG 2004
пример.dwg (404.8 Кб, 2309 просмотров)


Последний раз редактировалось OHUKC, 15.08.2008 в 14:16.
Просмотров: 8820
 
Автор темы   Непрочитано 15.08.2008, 19:44
#21
OHUKC


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


НЕ .....надо чтоб только в начале запрашивало....вызвал команду...указал .что надо...проставил отметки с одной стороны фасада...завершил команду...затем вызвал заново ...указал что не надо и проставил с другой стороны фасада )))
OHUKC вне форума  
 
Автор темы   Непрочитано 18.08.2008, 14:05
#22
OHUKC


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


есть фасад.нужно чтоб высотные отметки проставлялись как слева фасада , так и справа.по умолчанию они в данном коде отрисовываются всегда для проставления справа фасада.нужно , чтоб в начале спрашивало с какой стороны будут ставится высотные отметки: справа или слева фасада.если слева, то тогда зеркально отражать относительно оси Y.
OHUKC вне форума  
 
Непрочитано 18.08.2008, 21:20
#23
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Пробуй:
Код:
[Выделить все]
(defun C:level (/ hgt po pt pts tpt txt x *error* adoc msht dmz mirr)
  (defun *error* (msg)
    (princ msg)
    (vla-endundomark adoc)
    (setvar "DIMZIN" dmz)
  ) ;_ end of defun
  (vl-load-com)
  (setvar "PLINEWID" 0)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  ) ;_ end of vla-startundomark
  (setq dmz (getvar "DIMZIN"))
  (setvar "DIMZIN" 0)
  (if (null *OLMSHT*)
    (setq *OLMSHT* 1)
  ) ;_ end of if
  (if
    (progn
      (initget "G K П Л _ П Л П Л")
      (= (getkword
    "\nСторона для вставки высотных отметок[Правая/Левая] :<Правая> "
  ) ;_ end of getkword
  "Л"
      ) ;_ end of =
    ) ;_ end of progn
     (setq mirr -1)
     (setq mirr 1)
  ) ;_ end of if
  (and (or (initget 6 "1 10 20 50 100 1000") t)
       (princ "\nscale [1/10/20/50/100/500/1000] <")
       (princ *OLMSHT*)
       (princ ">: ")
       (or (setq msht (getdist)) (setq msht *OLMSHT*))
       (setq *OLMSHT* msht)
       (or (vl-propagate '*OLMSHT*) t)
       (setq msht (/ msht 100.0))
       (setq po (getpoint "\nSpecify o.oo point: "))
       (setq hgt (getvar "TEXTSIZE"))
       (while (setq pt (getpoint "\nSpecify next point (Enter for esc):"))
  (setq txt (rtos (setq pts (* msht (- (cadr pt) (cadr po)))) 2 2))
  (if (and (not (minusp pts)) (not (zerop pts)))
    (setq txt (strcat "+" txt))
  ) ;_ end of if
  (if (not (vl-string-search "." txt))
    (setq txt (strcat txt ".00"))
  ) ;_ end of if
  (setq pts (list pt
    (mapcar '+ pt (list 0 (* hgt 0.6) 0)) ;_hgt of arrow
    (mapcar '+ pt (list 0 (* hgt 1.75) 0)) ;_Vert line
    (mapcar '+ pt (list (* mirr hgt 3.5) (* hgt 1.75) 0))
     ) ;_Horizont line
        tpt (mapcar '+ pt (list (* mirr hgt 1.75) (* hgt 2.0) 0))
  ) ;_ end of setq
  (entmakex (list
       '(0 . "LINE")
       '(100 . "AcDbEntity")
       (cons 410 (getvar "CTAB"))
       (cons 8 (getvar "CLAYER"))
       '(100 . "AcDbLine")
       (cons 62 256)
       (cons 10 (trans (polar pt PI (* hgt 0.9)) 1 0))
       (cons 11 (trans (polar pt 0 (* hgt 0.9)) 1 0))
     ) ;_ end of list
  ) ;_ end of entmake
  (entmakex
    (append (list
       '(0 . "LWPOLYLINE")
       '(100 . "AcDbEntity")
       (cons 410 (getvar "CTAB"))
       (cons 8 (getvar "CLAYER"))
       '(100 . "AcDbPolyline")
       (cons 62 256)
       (cons 90 (length pts))
       (cons 70 0)
       (cons 43 0.0)
     ) ;_ end of list
     (mapcar '(lambda (x) (cons 10 x))
      (mapcar '(lambda (x) (trans x 1 0)) pts)
     ) ;_ end of mapcar
    ) ;_ end of append
  ) ;_ end of entmake
  (vla-setwidth
    (vlax-ename->vla-object (entlast))
    0
    0.0
    (* hgt 2)
  ) ;_ end of vla-setwidth
  (entmakex (list '(0 . "TEXT")
    (cons 10 (trans tpt 1 0))
    (cons 11 (trans tpt 1 0))
    (cons 410 (getvar "CTAB"))
    (cons 8 (getvar "CLAYER"))
    (cons 7 (getvar "TEXTSTYLE"))
    (cons 62 256)
    (cons 40 hgt)
    (cons 50 0.0)
    (cons 1 txt)
    (cons 72 1)
     ) ;_ end of list
  ) ;_ end of entmake
       ) ;_ end of while
  ) ;_ end of and
  (setvar "DIMZIN" dmz)
  (vla-endundomark adoc)
  (princ)
) ;_ end of defun
(princ "\n >>> Insert levels Command: level")
(princ)

Последний раз редактировалось CB, 18.08.2008 в 21:34.
CB вне форума  
 
Автор темы   Непрочитано 19.08.2008, 10:13
#24
OHUKC


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


СПАСИбО ОГРОМНОЕ
то что нужно
OHUKC вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Высотные отметки

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срезка голов свай до проектной отметки tsman Технология и организация строительства 29 28.06.2017 12:51
Блок отметки высоты на разрезе Grinzaid Динамические блоки 13 19.04.2008 12:58
Уровень планировочной отметки Bracus Архитектура 18 29.02.2008 13:44
Civil 3D 2008. Как повернуть проектные отметки на плане ? Valery Brelovsky Прочее. Отраслевые разделы 8 23.01.2008 12:05
Отметки высот Халтурщик AutoCAD 5 29.01.2007 15:58