Zabor-33.ru

Строительный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Lisp для autocad откос

САПР в Уфе

Страницы

  • Блог
  • Форум Сообщества
  • Я в Сообществе
  • Мечта электрика

понедельник, 22 апреля 2013 г.

AutoCAD: Создаем кнопку для LISP-команды

Рисунок 1
Рисунок 2
Рисунок 3
Рисунок 4

4. Настраиваем параметры команды. Обратите внимание, в поле Макрос прописывается команда в том виде, в котором она вызывается в командной строке (рис.5). Для удобства я добавила понятное юзеру имя, описание, кнопку же выбрала из стандартного набора пиктограмм.

Рисунок 5
Рисунок 6

8 комментариев:

Когда-то создавала кнопку в АСЕ, методом «научного перебора») А с вашей статьей бы за 5 мин сделала, отличная инструкция!

Наталья, спасибо на добром слове. Если не ошибаюсь, то именно ваш вопрос на форуме помог мне разобраться с этим, так что взаимопомощь сработала 🙂

Есть один вариант 🙂 Создается отдельный профиль AutoCAD, в котором корпоративный файл меню подгружается как частичное меню. Тогда его можно нормально редактировать.

P.S. Сам подобного не проворачивал, поскольку приходится при загрузке проходить по собственному меню и модифицировать некоторые моменты в нем. Но, по слухам, такое срабатывает.

Если честно, я не совсем еще разобралась с профилями. У меня GeoniCS-зараза, затирает настроенный профиль.
А на счет частичного файла адаптации-у меня постоянно ошибки вылетают, особенно когда случайно подгружаешь корпоративный файл как частичный, а потом еще раз корпоративный как корпоративный. Так что к таким методам скептически отношусь

Ярлык вызова построй 🙂
«C:Program FilesAutoCAD 2009acad.exe» /p «AutoCAD»

Ключ /p указывает, какой профиль загружать. Если такого профиля не было, он создается «с нуля». Чертовски удобная штука 🙂

P.S. У меня на машине больше 50 ярлыков для запуска разных кадов с разными настройками 😉 И ничего, друг другу они не мешают 🙂

Заставили работать с автокадом и писать программу в автолиспе. Компилирую — лисп-файл, выхожу в акад — чертеж заткнулся на середине. Еще раз без изменения кода просто снова компилирую — чертеж построился. Изменил масштаб — чертеж не строится. Опять компилирую без изменения кода — чертеж строится. Беру другой проект с какого-то учебного по акаду сайта — все тоже самое. Это нормальная пргорамма, это нормальная работа? В чем дело? Есть знатоки? Что сделать, чтобы работало устойчиво. Или придется увольняться.

Visual LISP ¸ µ€µ‚‹ °´°‚°†¸¸ AutoCAD

Text of Visual LISP ¸ µ€µ‚‹.

681.3.06 AutoCAD Autodesk, , , , , . AutoLISP, DIESEL, DCL Visual LISP. — ActiveX. . AutoCAD 2000 AutoCAD 2000L

. .Visual LISP AutoCAD. .: -, 2001.-576 : .ISBN 5-94157-020-1

. . , 2001 , «-«, 2001 02429 24.07.00. 22.03.01. 70×100 Vie. . . . . 46,44. 5000 . 155. «-«, 198005, -, ., 29. , , 77.99.1.953..950.3.99 01.03.1999 . . , 198005, -, ., 29.

1. AutoCAD1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. acad.pgp AutoCAD AutoCAD AutoCAD

17 1920 25 31 41 44 47 48 51 53 53 54 55 56 57 57 59 59 60 61 61 61 64 64 64 65 65 66 66 67 67 67

2. AutoLISP 2.1. AutoLISP 2.1.1. 2.1.2. setq 2.1.3. 2.2. 2.2.1. 2.2.2. 2.2.3. 2.2.4. load 2.2.5. vl-load-all 2.3. AutoCAD AutoLISP 2.3.1. command 2.3.2. vl-cmdf. 2.4. 2.4.1. + 2.4.2. 2.4.3. * 2.4.4. / 2.4.5. /+ 2.4.6. / 2.4.7.

2.5. 2.5.1. = 2.5.2. / = 2.5.3. = 2.5.7. and. 2.5.8. or 2.5.9. not 2.5.10. null 2.5.11. // 2.5.12. progn 2.5.13. cond 2.5.14. minusp 2.5.15. zerop 2.5.16. numberp 2.5.17. listp 2.5.18. vl-consp 2.5.19. atom 2.5.20. vl-symbolp 2.5.21. boundp 2.5.22. eq 2.5.23. equal 2.5.24. while 2.5.25. repeat 2.6. 2.6.1. fix.. 2.6.2. 2.6.3. max 2.6.4. min 2.6.5. gcd 2.6.6. angle 2.6.7. distance 2.6.8. sqrt 2.6.9. sin 2.6.10. cos 2.6.11. atan 2.6.12. 2.6.13. expt 2.6.14. log 2.6.15. logand 2.6.16. logior 2.6.17. Ish 2.6.18. Boole 2.6.19. inters 2.6.20. polar 2.6.21. textbox 2.6.22. vports 2.6.23. vl-symbol-value 2.6.24. set. 68 68 68 69 69 70 70 71 71 72 72 73 73 74 76 76 76 77 77 78 78 78 79 79 79 80 81 81 82 82 83 83 83 84 84 84 85 85 85 86 86 86 87 87 88 89 89 90 90 92 93

2.7. 2.7.1. type 2.7.2. float 2.7.3. itoa 2.7.4. rtos 2.7.5. atoi 2.7.6. atof. 2.7.7. angtof 2.7.8. angtos 2.7.9. distof 2.7.10. trans 2.7.11. cvunit 2.8. 2.8.1. chr. 2.8.2. ascii 2.8.3. read v 2.8.4. strcase 2.8.5. strcat 2.8.6. strlen 2.8.7. substr 2.8.8. wcmatch 2.8.9. vl-string->list 2.8.10. vl-list->string 2.8.11. vl-string-elt 2.8.12. vl-string-left-trim 2.8.13. vl-string-right-trim 2.8.14. vl-string-trim 2.8.15. vl-string-mismatch 2.8.16. vl-string-position 2.8.17. vl-string-search 2.8.18. vl-string-subst 2.8.19. vl-string-translate 2.8.20. vl-symbol-name 2.8.21. ( ending) 2.8.22. ( strcaser) 2.9. 2.9.1. list 2.9.2. append 2.9.3. nth 2.9.4. reverse 2.9.5. car. 2.9.6. cdr. 2.9.7. caar, cadrw 2.9.8. cons 2.9.9. vl-list* 2.9.10. member 2.9.11. assoc 2.9.12. apply 2.9.13. mapcar 2.9.14. vl-every 2.9.15. foreach 93 93 94 94 95 96 96 96 97 98 98 100 101 101 101 102 103 103 104 104 105 106 106 107 107 107 108 108 108 109 109 110 110 111 111 112 112 113 114 114 114 115 116 116 117 118 118 119 119 120

2.9.16. eval 2.9.17. quote 2.9.18. acad_strlsort 2.9.19. last 2.9.20. subst 2.9.21. length 2.9.22. vl-list-length 2.9.23. vl-member-if. 2.9.24. vl-member-if-not 2.9.25. vl-position 2.9.26. vl-remove 2.9.27. vl-remove-if. 2.9.28. vl-remove-if-not 2.9.29. vl-some 2.9.30. vl-sort 2.9.31. vl-sort-i 2.9.32. vl-catch-all-apply 2.9.33. vl-catch-all-error-message 2.9.34. vl-catch-all-error-p 2.10. 2.10.1. initget 2.10.2. getfcword 2.10.3. getint 2.10.4. getreal. 2.10.5. getdist 2.10.6. getangle 2.10.7. getorient 2.10.8. getpoint 2.10.9. getcorner 2.10.10. getstring 2.10.11. getvar. 2.10.12. setvar 2.10.13. getenv 2.10.14. setenv 2.10.15. getc/g 2.10.16. setcfg 2.10.17. getcname 2.10.18. getfiled 2.10.19. acadcolordlg 2.11. , 2.11.1. flndfile 2.11.2. open 2.11.3. close 2.11.4. read-line 2.11.5. write-line 2.11.6. princ 2.11.7. phnl 2.11.8. print 2.11.9. read-char. 2.11.10. write-char 2.11.11. prompt 120 120 121 121 121 121 122 122 123 123 123 124 124 125 125 126 126 127 127 127 128 130 131 132 132 132 133 133 134 134 134 135 135 136 136 136 136 137 138 139 139 140 140 141 141 141 142 142 142 143 143

2.11.12. alert 2.11.13. terpri 2.11.14. vl-directory-ftles 2.11.15. vl-flle-copy 2.11.16. vl-file-delete 2.11.17. vl-file-directory>-p 2.11.18. vl-file-rename 2.11.19. vl-file-size 2.11.20. vl-file-systime 2.11.21. vl-filename-base 2.11.22. vl-filename-directory 2.11.23. vl-fdename-extension 2.11.24. vl-filename-mktemp 2.11.25. vl-princ-to-string 2.11.26. vl-prini-to-string 2.11.27. 2.12. AutoCAD 2.12.1. entlast 2.12.2. entnext 2.12.3. entsel 2.12.4. entdel 2.12.5. entget 2.12.6. entmake 2.12.7. entmakex 2.12.8. entmod 2.12.9. entupd 2.12.10. handent 2.12.11. nentsel 2.12.12. nentselp 2.12.13. 2.12.14. ssget 2.12.15. ssadd 2.12.16. ssdel. 2.12.17. sslength 2.12.18. ssmemb 2.12.19. ssname 2.12.20. ssnamex 2.12.21. sssetftrst 2.12.22. ssgetfirst 2.12.23. AutoCAD 2.13. 2.13.1. 2.13.2. tblsearch 2.13.3. tblnext 2.13.4. tblobjname 2.13.5. 2.13.6. setview 2.13.7. snvalid 2.14. , 2.14.1. 2.14.2. regapp 143 144 144 145 146 146 146 147 147 148 148 148 149 150 150 151 152 153 153 154 155 155 157 157 158 158 158 158 159 160 160 162 163 163 163 164 164 166 167 167 170 170 170 171 171 172 172 174 175 175 177

2.14.3. 2.14.4. xdsize 2.14.5. xdroom 2.15. , — 2.15.1. 2.15.2. namedobjdict 2.15.3. dictsearch 2.15.4. dictnext 2.15.5. dictadd 2.15.6. dictremove 2.15.7. dictrename 2.15.8. layoutlist 2.15.9. — 2.16. 2.16.1. lambda 2.16.2. defun 2.16.3. AutoCAD 2.16.4. defun-q 2.16.5. defun-q-list-ref. 2.16.6. defim-q-list-set. 2.16.7. function 2.16.8. vlisp-compile 2.16.9. exit 2.16.10. quit 2.16.11. *error*. 2.16.12. vl-acad-defun 2.16.13. vl-acad-undefun 2.16.14. vl-exit-with-error. 2.16.15. vl-exit-with-value 2.16.16. atoms-family 2.16.17. trace 2.16.18. untrace 2.17. , Windows 2.17.1. ver 2.17.2. 2.17.3. alloc 2.17.4. expand 2.17.5. ^ 2.17.6. vl-registry-read 2.17.7. vl-registry-write 2.17.8. vl-registry-delete 2.17.9. vl-registry-descendents 2.17.10. arx 2.17.11. arxload 2.17.12. arxunload 2.17.13. autoload. 2.17.14. autoarxload 2.17.15. vl-arx-import 2.17.16. vl-doc-export. 2.17.17. vl-doc-import 177 178 179 179 179 180 180 181 183 184 184 185 185 187 188 188 192 192 194 194 195 195 196 196 196 197 198 198 198 199 199 200 200 201 201 201 202 202 202 203 203 204 204 205 205 206 206 207 207 207

2.17.18. vl-list-exported-functions 2.17.19. vl-list-loaded-vlx 2.17.20. vl-vlx-loaded-p 2.17.21. vl-unload-vlx 2.17.22. vl-get-resource 2.17.23. vl-vbaload. 2.17.24. vl-vbarun 2.17.25. vl-bb-set 2.17.26. vl-bb-ref 2.17.27. vl-doc-set 2.17.28. vl-doc-ref. 2.17.29. vl-load-all 2.17.30. vl-propagate 2.17.31. 2.17.32. 2.17.33. 2.18. 2.18.1. osnap 2.18.2. redraw 2.18.3. graphscr 2.18.4. textscr 2.18.5. textpage 2.18.6. grtext 2.18.7. grdraw 2.18.8. grvecs 2.18.9. grclear 2.18.10. grread 2.18.11. initdia 2.18.12. tablet 2.19. 2.19.1. acad.lsp 2.19.2. acaddoc.lsp 2.19.3. ACADLSPASDOC 2.19.4. sr.startup 3. Visual LJSP 3.1. Visual LISP 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.1.6. 3.1.7. 3.1.8. 3.2. Visual LISP 3.2.1. 3.2.2. 3.2.3. 3.2.4. 3.2.5. 208 209 209 210 210 211 211 211 212 213 213 214 214 215 217 218 219 219 220 221 221 221 221 224 224 225 225 228 229 230 230 231 232 232 233 234 234 235 236 237 244 246 250 251 251 251 252 252 253 254

10 3.3. Visual LISP 3.3.1. 3.3.2. 3.4. 3.4.1. 3.4.2. 3.4.3. VLX- 3.4.4. 4. 4.1. 4.1.1. 4.1.2. 4.2. 4.2.1. 4.2.2. 4.3. AutoLISP, 4.3.1. menugroup 4.3.2. menucmd 4.4. 4.4.1. : 4.4.2. 4.4.3. 4.5. 4.5.1. 4.5.2. 4.5.3. 4.5.4. 4.5.5. 4.5.6. 4.5.7. 4.5.8. 4.5.9. 4.5.10. 4.6. 4.6.1. 4.6.2. 4.6.3. 4.6.4. 4.7. 4.7.1. 4.7.2. 4.8. 4.9. 4.10. 4.10.1. 4.10.2. 4.10.3. 4.10.4. 4.11. 4.11.1. 4.11.2.

254 255 255 256 257 259 262 267 269 269 270 271 273 275 277 279 279 280 282 283 284 286 287 287 288 288 289 289 290 290 290 291 292 293 293 295 297 298 299 299 301 301 302 302 302 305 305 308 309 310 310

4.12. HELPSTRINGS 4.13. ACCELERATORS 4.14. DIESEL 4.14.1. 4.14.2. 4.14.3. , 4.14.4. 4.14.5. DIESEL AutoLISP 4.15. MNL- 5. 5.1. DCL 5.1.1. 5.1.2. 5.2. 5.2.1. ioadjiialog 5.2.2. unloadjiialog 5.2.3. new dialog 5.2.4. startdialog 5.2.5. done jiialog 5.2.6. term jiialog 5.2.7. 5.3. 5.3.1. 5.3.2. 5.3.3. 5.3.4. 5.3.5. 5.3.6. 5.4. , 5.4.1. actionjile 5.4.2. modejile 5.4.3. set tile 5.4.4. getjile 5.4.5. getjjttr 5.4.6. clientjJatajile 5.4.7. 5.5. , 5.5.1. startJist 5.5.2. addjist 5.5.3. endjist 5.6. , 5.6.1. startjmage 5.6.2. endjmage 5.6.3. fdljmage 5.6.4. slidejmage 5.6.5. vector image 5.6.6. dimxjMe 5.6.7. dimyjile 5.7. 5.7.1.

1J_ 312 313 314 314 314 315 315 316 316 320 320 320 324 328 328 328 329 329 330 330 330 331 332 336 342 344 345 346 347 348 349 350 354 355 355 355 357 357 357 358 358 358 359 359 360 360 361 361 361 361

12 5.7.2. 5.7.3. 6. 6.J. HELP- Windows 6.1.1. HELP- 6.1.2. CNT- 6.1.3. help 6.1.4. WIN- 6.1.5. WIN- startapp 6.2. HTML- 6.2.1. HTML- CNT- -. 6.2.2. HTML- 6.2.3. HTML- startapp 6.3. AutoCAD 6.3.1. acad_helpdlg 6.4. — 6.4.1. setfunhelp 6.4.2. setfunhelp 7. ActiveX 7.1. AutoLISP .1. .2. vl-load-com .3. .4. vlax-get-acad-object .5. vla-get-activedocument .6. vla-get-modelspace .7. vla-get-paperspace .8. ActiveX .9. .10. VLA- .11. iax-ename->vla-object .12. vlax-vla-object->ename .13. .14. .15. vlax-make-variant J 6 . vlax-variant-type .17. vlax-variant-vahte .18. vlax-variant-change-t

Программа на LISP для AUTOCAD

Помогите, пожалуйста, написать такую программу на LISP для AUTOCAD.

1. Вводим 4 значения — X, Y, Z1, Z2
2. Выделяем прямоугольник
3. Копируем этот прямоугольник в выбранную точку.
4. Раздвигаем новыи прямоугольник слева и справа на величину X
5. Увеличиваем высоту прямоугольника на величину Y (только сверху)
6. Чертим внутри прямоугольника отрезок, параллельныи высоте и отступаюшии от левои стороны прямоугольника на Z1 мм
7. Чертим внутри прямоугольника отрезок, параллельныи ширине и отступаюшии от верхнеи стороны прямоугольника на Z2 мм

Помощь в написании контрольных, курсовых и дипломных работ здесь.

C++, C#, LISP для AutoCAD
Посоветуйте, пожалуйста, хорошую литературу по C++, C#, LISP для написания макросов и программ для.

Нужна программа для автоматизации проектирования в AutoCAD
Подскажите, как найти компании или группы разработчиков, которые могут разработать или продают.

Visual Lisp. Autocad
Всем привет. Произвольно размещенные на плоскости отрезки стянуть в одну заданную точку. Не.

Clojure Lisp и AutoCAD
Добрый вечер! Помогите подготовить реферат на тему «Применение Lisp в AutoCAD». Нужна информация.

А чего именно AutoLISP? Задание такое?

На мой взгляд лисп не лучший вариант:
1. зубодробительный синтаксис.
2. написание команд зависит от локализации.

Мы так залипли на предприятии с локализацией — есть код на лиспе — примерно на 1500 строк для построения кучи геометрии по параметрам. написано было кучу лет назад, когда еще русской локализации не было. На новых версиях «русского» автокада не работает, переделывать на «русские» команды — сизифов труд — замена на команды с _ в начале в автоматическом режиме тоже не подходит — т.к. не везде такая замена корректна, в каких то параметрах не проходит.

Корче мое мнение — лучше использовать VBA для автоматизации автокада.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

LISP активный лист AutoCAD
Скажите пожалуйста, как с помощью LISP сделать неактивный лист AutoCAD активным?

Lisp программа
Привет всем! Может быть кто-то может мне помочь? Надо создать программу в Lisp которая меняет.

Программа Lisp
Помогите пожалуйста. Нужно создать программу, вычисляющую количество элементов введенного списка.

Программа на LISP
Здравствуйте, уважаемые форумчане. мне нужно на след неделе сдать курсовую по LISPу. Курсовая.

Программа на Lisp
Написать функцию по проектированию тела. Вывод вертексов осуществляется путем расчета. Ребра.

Программа в Lisp
Помогите с программой,пожалуйста. Дан массив из 15 целых чисел.Если min элемента массива находится.

Мы принимаем к оплате:

«Подарочный сертификат» от нашего Учебного Центра – это лучший подарок для тех, кто Вам дорог! Оплате обучение и подарите Вашим родным и близким обучение по любому из курсов.

«Сертификат на повторное обучение» дает возможность повторно пройти обучение в нашем Учебном Центре со скидкой 1000 рублей!

Откосы в автокаде

Исполнительная-схема.ру

Описание (в скобках приведены выдержки из пояснений к условным знакам из «Условные знаки для топографических планов масштабов 1:500; 1:1000; 1:2000; 1:5000»)

  1. Шаг штриховки. Устанавливает расстояние между штрихами по бровки откоса (1, при большой протяжённости 1.5, 2, 3)
  2. Не доводить до подошвы. Устанавливает расстояние на которое не доводятся длинные штрих до подошвы, чтобы они не сливались с подошвой.
  3. Длина короткого штриха. Устанавливает величину короткого штриха (2 — 1:500,1:1000. 1.5 — 1:2000,1:5000. 13 (33%) от длинного при ширине откоса более 3 см на плане)
  4. Объединить объекты. Можно объединить созданные штрихи в группу или в блок.
  5. Тип.
    • Обычный
    • Проектный
    • Добычный
    • Укреплённый
    • Прореживать 5 штрихов строится, следующих 7 пропускаются, и так далее
  6. Слой. Можно выбрать слой для откоса, из списка существующих или создать новый. Так же можно задать цвет, в случаи нового слоя, цвеи будет назначен слою, в случаи выбора существующего слоя, цвет будет назначен непосредственно объектам откоса.
  7. Редактирование. После выбора бровки и подошвы, будут построены временные сплошные штрихи, после чего будет предложено отредактировать их положение. Если войти в режим редактирования, будет предложено сначала выбрать диапазон(сектор) редактирования штрихов, потом выбрать основной редактируемый штрих в этом диапазоне и указать его новое положение. После выхода из режима редактирования, штрихи примут заданный им вид, согласно выбранному типу.
  8. Сохранение. все введённыевыбранные данные в диалоге, будут сохранены, даже между сеансами AutoCAD
  9. В качестве бровкиподошвы можно выбрать следующие типы объектов: Линия, Полилиния(2D3D), Сплайн, Характерные линии(Civil)
  10. Очень не желательно чтобы бровкаподошва имели касание в крайних точках(началоконец).

Программы взяты с сайта geodesist.ru, Автор:Disney Размер 17 кб Скачать v3.3 Размер 25 кб Скачать V4.4.5

Тип линии откос в автокаде

Главная » Откосы » Тип линии откос в автокаде

В строительстве применяется большое количество различных типов линий. Это делается для того, чтобы отличать один объект от другого. Используя разные типы линий на чертеже, Вы делаете свою работу более удобной.

В продуктах семейства AutoCAD (AutoCAD, AutoCAD Civil3D, AutoCAD Architecture, AutoCAD Mechanical и т.п.) уже предусмотрены некоторые основные типы линий.

Но часто бывает так, что при выполнении чертежей, Вам недостаточно типовых линий и приходиться их рисовать вручную используя примитивы AutoCAD (линии, дуги, текст), что очень трудоемко и забирает много времени (особенно во время редактирования).

Для того чтобы ускорить и упростить Вашу работу, представляю Вашему внимаю большой набор готовых типов линий, которые можете скачать по ссылке:

  • набор дополнительных штриховки для AutoCAD

Скачав и распаковав архив (который весит всего 44,0 КБ), Вы получите следующие файлы готовых типов линий:

  • набор типов линий для обозначения сварных швов;
  • набор типов линий для обозначения заводских и монтажных швов;
  • набор типов линий для оформления топографических планов;
  • набор типов линий для геодезии и картографии;
  • дополнительный набор из разных типов линий (обозначение разрыва, обозначение земли в разрезе и т.п.).

Хочу отметить, что данные типы линий не поставляются в стандартном комплекте продуктов с дистрибутивами Autodesk семейства AutoCAD, работают со всеми версиями AutoCAD и нету никаких ограничений для их использования.

Важно!: При передаче чертежа, использующего данные типы линий на другой компьютер, где они не установлены, необходимо к файлу *.dwg приложить файлы с типом линий, которые Вы скачали по ссылке выше.

Если, скачав и распаковав архив у Вас возникает вопрос, что же делать дальше, как добавить данные типы линий в AutoCAD и как ими пользоваться — об этом Вы можете узнать, перейдя по ссылке: Как добавить типы линий в AutoCAD.

Набор линий AutoCAD для геодезии

Линии для AutoCAD

Объем:3,39 КБ Набор типов линий скачан 13480 раз

Этот набор линии для AutoCAD содержит все необходимые линии для нанесения на топосъемки условных обозначений В набор вошло 130 типов линий.

Перечень линий, вошедших в набор:

  • Границы государственных заповедников
  • Границы городских земель
  • Границы районов
  • Границы автономных областей
  • Границы областей
  • Границы республик
  • Границы государственные

Порядок установки: Архив содержит два файла:

Их нужно скопировать на свой компьютер, в папку , находящуюся по адресу: C:/Users/UT/AppDataRoaming/Autodesk/AutoCAD 2011/R18.1/rus/Support

По справедливой просьбе наших читателей, уточним, как установить линии для геодезии в свой AutoCAD. Этот способ поможет вам независимо от того, какая у вас версия программы. Итак:

1. Откройте ваш AutoCAD. Найдите раскрывающийся список для выбора типа линий и нажмите “Другое”.

2. В открывшемся диалоговом окне (ДО) “Диспетчер типов линий” нажимаем “Загрузить” > ДО “Загрузка/перезагрузка типов линий” > Файл… > ДО “Выбор файла типов линий”

В результате перед вами окажется содержимое нужной вам папки. Именно туда вам нужно скопировать содержимое скачанного архива. Вы можете открыть эту папку, а можете прямо сейчас поместить туда нужные файлы.

Полный адрес этой папки вы увидите при наведении курсора на поле с надписью Support слева вверху. Если вы на него нажмете ЛКМ, то увидите путь к папке в виде дерева.

Для этого вам нужно лишь разархивировать их и перенести в поле ДО “Выбор файла типов линий”.

Набор линий AutoCAD для геодезии

Набор линий AutoCAD для геодезии

Объем:3,39 КБ Набор типов линий скачан 2607 раз

Этот набор линии для AutoCAD содержит все необходимые линии для нанесения на топосъемки условных обозначений В набор вошло 130 типов линий.

LispBox

This blog was initially created for people, who love autolisp routines, as I love it.

Изменение динамического блока из LISP-программы.

11 Thursday Dec 2014

Tags

В последнее время в AutoCAD стали широко применяются динамические блоки.

Возможность управления динамическими блоками из LISP-программы открывает новые перспективы автоматизации проектов.

В этом уроке мы рассмотрим пример изменении динамических свойств блока из LISP-программы.

В начале, проведем не большие приготовления:

1) Создадим, блок с дополнительными данными, при помощи программы mp_kub3. См. рис. 1

Эта программа рассмотрена в уроке: «LISP. Создание блока».

Откройте программу mp_kub3.lsp в редакторе Visual LISP.

Перейдите в Автокад.

Введите в командной строке: mp_kub3 и нажмите .

На запрос «Задайте длину стороны куба :» введите например 500 и нажмите

На запрос «Укажите базовую точку :» щелкните мышкой в рабочем окне Автокад.

Программа создаст блок куба с размерами сторон 500. См. Рис. 2.

2) Вставим динамический блок «Vyn«, при помощи программы Udim.lsp. См. Рис. 3.

Динамический блок мы создавали в уроке: «Создание динамического блока». Если у Вас нет динамического блока «Vyn», скачайте его и разместите в путях поддержки Автокад.

Откройте программу Udim.lsp в редакторе Visual LISP.

Перейдите в Автокад.

Введите в командной строке: Udim и нажмите .

На запрос «Выберите блок :» — Укажите блок куба.

На следующий запрос «Выберите блок :» – нажмите .

Программа нарисует выноску. См. Рис. 4

Мы видим, что динамический блок размещен не совсем удачно. Хотелось удлинить как выносную линию, так и длину полки.

Давайте посмотрим, какие динамические свойства нам доступны для изменения.

Выделите динамический блок и нажмите Ctrl+1. Откроется палитра свойств. См. Рис. 5.

На вкладке «Настройка» мы видим, что для изменения нам доступны:

Положение1 X – положение точки 1 относительно точки bр по координате X;

Положение1 Y – положение точки 1 относительно точки bр по координате Y;

Расстояние1 – длина выносной линии;

Угол1 – угол наклона выносной линии к оси X.

Расстояние2 – длина полки.

Давайте начнем с параметра Расстояние1 и попробуем изменить длину выносной линии.

Сохраните программу Udim.lsp под другим именем (Udim2.lsp).

Измените имя функции defun (Udim2).

После вставки динамического блока, используя функцию (entlast), возвращаем имя вставленного объекта.

Потом переводим обычный примитив в VLA-объект:

И сохраняем его в переменной din_bl:

(setq din_bl (vlax-ename->vla-object (entlast)))

Кроме этого, давайте добавим переменную sv1, в которой мы будем хранить имя изменяемого свойства:

(setq sv1 «Расстояние1″)

При помощи функции vla-getdynamicblockproperties считываем динамические свойства у VLA-объект din_bl:

Давайте, чтобы следим за ходом наших действий, откроем Консоль Visual LISP.

Выделим строки, как на рис. 7, и загрузим выделенный фрагмент.

В окне Консоль Visual LISP мы видим, что наши динамические свойства вернулись в виде:

Чтобы, прочитать значение типа данных variant, используем функцию vlax-variant-value:

(vlax-variant-value (vla-getdynamicblockproperties din_bl))

Выделите эту строку и загрузите выделенный фрагмент. См. Рис. 8.

В окне Консоль Visual LISP мы видим, что наши динамические свойства вернулись в виде безопасного массива:

При помощи функции vlax-safearray->list преобразуем массив в список:

(vlax-safearray->list(vlax-variant-value (vla-getdynamicblockproperties din_bl)))

Выделите эту строку и загрузите выделенный фрагмент. См. Рис. 9.

Эта строка вернет нам список с нашими динамическими свойствами (Положение1 X, Положение1 Y, Расстояние1 и так далее), которые представлены в виде VLA-объектов:

Чтобы, в списке оставить только то динамическое свойство, которое нам нужно, применим функцию vl-remove-if-not, которая в общем виде выглядит так:

Функция vl-remove-if-not удаляет из списка все элементы, возвращающие nil при проверке тест-функцией.

— функция, применяемая для проверки поочередно к каждому элементу списка.

— список из которого нужно удалить объекты.

В качестве тест-функции мы будем использовать следующее выражение:

(lambda (x) (= (vla-get-propertyname x) sv1))

Функция lambda создает безымянные пользовательские функции, которые можно определить и тут же выполнить. В общем виде она выглядит так:

Функция vla-get-propertyname считывает имя свойства.

Выражение (= (vla-get-propertyname x) sv1) – сравнивает имя свойства, полученное из элемента списка, с именем, которое хранится в переменной sv1 («Расстояние1»). Если они = , то возвращает Т, в противном случаи nil.

Добавляем в программы следующие строки:

Выделим строки, как на рис. 10, и загрузите выделенный фрагмент.

Функция vl-remove-if-not оставит в списки, только одно динамическое свойство.

Чтобы получить само свойство, а не список с одним свойством, применяем функцию car, которая извлекает первый элемент из списка.

И сохраняем его в переменной din_sv:

Добавляем выше сказанное в программу.

Выделите строки, как на рис. 11, и загрузите выделенный фрагмент.

Мы видим, что выделенный фрагмент возвращает нам, только одно динамическое свойство в виде VLA-объекта.

Давайте проверим то ли свойство мы получили. Для этого добавим следующую строку:

(vla-get-propertyname din_sv) – которая считывает имя свойства. См. Рис. 12.

Мы видим, что в переменной din_sv хранится динамическое свойство (VLA-объект), которое нам нужно. Последнюю строчку из программы можно удалить (мы использовали ее, только для проверки).

Нам остается, только изменить значение динамического свойства. Давайте поменяем значение свойства «Расстояние1» на 350.

В начале нужно привести это значение к типу variant. Для этого используем функцию vlax-make-variant, которая в общем виде выглядит так:

— значение присваиваемое варианту.

— тип данных значения (вещественное число, строка и так далее)

Нужно, чтобы новое значение было того же типа, что и старое.

Чтобы определить тип старого значения, добавляем следующее выражение:

(vlax-variant-type (vla-get-value din_sv))

vla-get-value – считает значение din_sv

vlax-variant-type – возвращает его тип.

Добавьте, эту строку в программу.

Выделите ее и загрузите выделенный фрагмент. См. Рис. 13.

Строка вернет нам код типа «5», что соответствует типу: Вещественное число с двойной точностью.

Преобразуем наше новое значение в тип variant:

(vlax-make-variant 350 (vlax-variant-type (vla-get-value din_sv)))

При помощи функции vla-put-value меняем старое значение на новое.

В общем виде функция vla-put-value выглядит так:

— свойство значение которого нужно изменить;

— новое значение. Должно иметь тип variant

Добавляем выражение, которое меняет значение:

(vla-put-value din_sv (vlax-make-variant 350 (vlax-variant-type (vla-get-value din_sv))))

Чтобы значение вступило в силу vla-объект динамического блока нужно обновить. Делаем это при помощи функции vla-update

Добавляем все выше сказанное. Выделите строки, как на рис. 14, и загрузите выделенный фрагмент.

Перейдите в Автокад. Выносная линия у динамического блока стала длинней. См. Рис. 15.

Чтобы остальные динамические свойства нам изменять стало проще, преобразуем часть кода в пользовательскую функцию Change_din_sv:

Для вызова функции в общем виде используется выражение:

(Change_din_sv din_bl sv new_value) , где:

din_bl – динамический блок, в котором нужно поменять значение динамического свойства;

sv – имя динамического свойства;

new_value – новое значение динамического свойства.

Добавляем в программу пользовательскую функцию Change_din_sv, и вызываем ее используя в качестве имени динамического свойства «sv1», а в качестве нового значения «350». См. Рис. 16.

Теперь, для того, чтобы поменять угол наклона выносной линии достаточно добавить две строчки:

(Change_din_sv din_bl sv2 (/ pi 2)) – меняем значения свойства на (/ pi 2).

(/ pi 2) – угол 90 градусов в радианах.

Добавляем эти строки. См. Рис. 17.

Нажимаем кнопку «Загрузить активное окно редактора».

Затем на кнопку «Активизация AutoCAD».

Вводим в командной строке: Udim2 и нажмите .

На запрос «Выберите блок :» — Укажите блок куба.

На следующий запрос «Выберите блок :» – нажмите .

Программа нарисует выноску. См. Рис. 18.

Мы видим, что значения динамических свойств (Расстояние1 и Угол1) изменились.

Но в каждом конкретном случаи, мы заранее не знаем какие значения динамических свойств лучше задать. Поэтому попросим сделать это пользователя. Пусть, после указания блока базовая точка, прикрепляется к блоку сама, а точку «1» пользователь указывает сам.

Попросим пользователя указать точку «1», при помощи функции getpoint:

Значения сохраним в переменной p1.

Расстояние между точками ро и р1 определим при помощи функции distance:

(setq ras (distance po p1))

Значения сохраним в переменной ras.

Угол наклона определим при помощи функции angle:

(setq ugl (angle po p1))

Значения сохраним в переменной ugl.

В функцию Change_din_sv меняющую свойства «Расстояние1» вместо 350 вставим ras.

В функцию Change_din_sv меняющую свойства «Угол1» вместо (/ pi 2) вставим ugl.

Добавим две сточки меняющие длину полки на значение 290.

В результате наша программа примет следующий вид. См. Рис. 19.

Нажимаем кнопку «Загрузить активное окно редактора».

Затем на кнопку «Активизация AutoCAD».

Вводим в командной строке: Udim2 и нажмите .

На запрос «Выберите блок :» — Укажите блок куба.

На запрос «Укажите выносную линию:» — Укажите вторую точку линии.

На запрос «Выберите блок :» — Снова укажите блок куба.

На запрос «Укажите выносную линию:» — Укажите вторую точку линии в другом месте.

На следующий запрос «Выберите блок :» – нажмите .

Программа нарисует две выноски к одному блоку. См. Рис. 20.

В заключение добавляем локальные переменные в список временных переменных функции defun.

Окончательный вариант программы. См. Рис. 21.

На этом наш урок окончен. В нем мы рассмотрели, как из LISP-программы можно управлять свойствами динамического блока.

Пишите в комментариях:

Также пишите в комментариях:

Трудно ли было выполнить этот урок?

Если, что-то не получилось. Пишите, постараюсь помочь.

Была ли для Вас полезной информация, данная в этом уроке?

На какие вопросы программирования, Вы хотели бы, увидит ответы в следующих уроках?

Я с удовольствием отвечу на ваши вопросы.

Если вы хотите получать новости с моего сайта. Оформляйте подписку.

голоса
Рейтинг статьи
Читайте так же:
Ширина траншеи с откосами по дну
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector