|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Высотные отметки
Регистрация: 29.07.2008
Сообщений: 55
|
||
Просмотров: 9050
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Я файл не качал, поэтому совет может оказаться "впустую": на форуме рассматривались дин.блоки отметок...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 29.07.2008
Сообщений: 55
|
тут смысл работы проги в том , что кликаешь на нулевую отметку (линию), а затем на точки , которым нужно проставить высотные отметки....тока я чё-то не пойму с масштабом, отметки ставятся маленькие, так что приходится увеличивать...и всегда в одну сторону
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Решается полем вкупе со смещением base (созданием ПСК)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 29.07.2008
Сообщений: 55
|
(defun C:level (/ hgt po pt pts tpt txt x *error* adoc msht dmz)
(defun *error* (msg)(princ msg)(vla-endundomark adoc)(setvar "DIMZIN" dmz)) (vl-load-com)(setvar "PLINEWID" 0) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (setq dmz (getvar "DIMZIN"))(setvar "DIMZIN" 0) (if (null *OLMSHT*)(setq *OLMSHT* 1)) (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))) (if (not (vl-string-search "." txt))(setq txt (strcat txt ".00"))) (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 (* hgt 3.5) (* hgt 1.75) 0)));_Horizont line tpt (mapcar '+ pt (list 0 (* hgt 2.0) 0))) (entmake (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)) )) (entmake (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)) (mapcar '(lambda (x) (cons 10 x))(mapcar '(lambda(x)(trans x 1 0)) pts))) ) (vla-setwidth (vlax-ename->vla-object (entlast)) 0 0.0 (* hgt 2)) (entmake (list '(0 . "TEXT") (cons 10 (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) ) ) ) ) (setvar "DIMZIN" dmz)(vla-endundomark adoc) (princ) ) (princ "\n >>> Insert levels Command: level") (princ) |
|||
![]() |
|
||||
Зачем изобретать колесо, когда уже изобрели феррари
![]() ![]() |
||||
![]() |
|
||||
Можно. В правом нижнем углу есть окошко масштаба. Или не окошко, а маленькая кнопочка. На нее кликни, выбери масштаб. После этого ставь отметку. Ее размер будет соответствовать выбранному масштабу. Имеется в виду масштаб чертежа, в котором будешь печатать.
|
||||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
Я не зря я спросил в <<чем заключается "нормальность>>...
Ну а по делу - дело в следующем За размеры изображения отвечает значение системной переменной "textsize". Какую высоту текста ты хочешь иметь, такое и назначь ей значение: например (setvar 'textsize 40) |
|||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
Вообще-то сделать наверно не сложно, НО если тебе надо поставить, к примеру 100 отметок, все 100 раз будет мелькать <<какойнить запрос типа "отобразить зеркально? (Y/N)">> ???
![]() Ну и что такое <зеркально> - отразить можно относительно оси X или Y. Короче давай картинку что должно получитья при выборе "отразить зеркально" Последний раз редактировалось CB, 15.08.2008 в 21:06. |
|||
![]() |
|
||||
Регистрация: 29.07.2008
Сообщений: 55
|
есть фасад.нужно чтоб высотные отметки проставлялись как слева фасада , так и справа.по умолчанию они в данном коде отрисовываются всегда для проставления справа фасада.нужно , чтоб в начале спрашивало с какой стороны будут ставится высотные отметки: справа или слева фасада.если слева, то тогда зеркально отражать относительно оси Y.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Срезка голов свай до проектной отметки | 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 |