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

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

Помогите с командой

Ответ
Поиск в этой теме
Непрочитано 14.11.2006, 04:15 #1
Помогите с командой
ОлегД
 
Россия
Регистрация: 14.11.2006
Сообщений: 3

Как-то раз видел как из txt-файла с координатами с помощью какой-то команды удалось прорисовать точки в AutoCADе.
Т.е. txt-файл являлся какбы базой данных для точек и содержал лишь необходимые коориднаты X,Y,Z
Может быть кто сталкивался, помогите пожалуйста разобраться.
Спасибо
Просмотров: 2571
 
Непрочитано 14.11.2006, 06:19
#2
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Самый простой вариант:
Вставь это в блокнот, сохрани с расширением scr. Открой AutoCAD набери в комстроке '_script и укажи сохраненный файл scr.
Код:
[Выделить все]
(while (setq pt (getpoint)) (command "_point" pt))
0.0,0.0
-5.10615,11.7619
-14.6369,33.7157
-32.2567,63.6499
-53.2724,84.0045
-79.1114,103.728
-103.275,124.603
-117.989,161.008
-117.988,194.737
-107.351,225.733
-88.8177,247.645
-60.4619,255.83
-32.9698,255.901
-17.3387,242.747
-8.12695,234.274
-2.4834,230.012
0,228.137
5.10615,11.7619
14.6369,33.7157
32.2567,63.6499
53.2724,84.0045
79.1114,103.728
103.275,124.603
117.989,161.008
117.988,194.737
107.351,225.733
88.8177,247.645
60.4619,255.83
32.9698,255.901
17.3387,242.747
8.12695,234.274
2.4834,230.012
Вообще, можно сразу весь код в комстроку скопировать.
Krieger вне форума  
 
Автор темы   Непрочитано 14.11.2006, 08:24
#3
ОлегД


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


не получается. Пишет "...неизвестная команда..."
ОлегД вне форума  
 
Непрочитано 14.11.2006, 08:36
#4
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Он потом должен в кавычках написать какая команда ему неизвестна.
Дык какая? Проследи, чтоб после строк не было лишних пробелов. У тебя случайно не AutoCAD LT?
Krieger вне форума  
 
Непрочитано 14.11.2006, 09:08 Re: Помогите с командой
#5
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Цитата:
Сообщение от ОлегД
Т.е. txt-файл являлся какбы базой данных для точек и содержал лишь необходимые коориднаты X,Y,Z
Спасибо
DSTP_PNTIMPRT (ToolPac -> Utility -> Point import)
ытя вне форума  
 
Непрочитано 14.11.2006, 09:40
#6
nmr


 
Регистрация: 22.08.2006
/dev/null
Сообщений: 92


Код:
[Выделить все]
(defun c:pft (/ f1 str)
  (setq f1 (open (getfiled "Выбираем файл с координатами" "" "txt" 0) "r"))
  (while
    (setq str (read-line f1))
    (command "point" str)
    );while
  (close f1)
  (princ)
  );defun
это будет работать только для файлов вида
x1,y1,[z1]
x2,y2,[z2]
..............
nmr вне форума  
 
Непрочитано 14.11.2006, 10:01
#7
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Координаты точек должны быть записаны в текстовом файле через запятую. Например:
126.3,333.88,899.12
100,200,300
200,100,0

или:
126.3,333.88,899.12 100,200,300 200,100,0

Тогда копируйте содержимое этого текстового файла в буфер обмена
Вызывайте команду _point и вставляйте содержимое буфера обмена в командную строку

That is all
Хмурый вне форума  
 
Непрочитано 14.11.2006, 10:57
#8
VVA

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


Код:
[Выделить все]
(defun str-str-lst1 (str pat / i ipat)
  (defun mymin ( lst / buf)
    (setq buf (vl-remove-if-not 'numberp lst))
    (if buf (apply 'min buf) nil))
  (cond ((= str "") nil)
        ((setq i (mymin (setq ipat (mapcar '(lambda ( razd)(vl-string-search razd str)) pat))))
         (cons (substr str 1 i)
               (str-str-lst1 (substr str (+ (strlen (nth (VL-POSITION i ipat) pat)) 1 i)) pat)))
        (t (list str)))) ;_  defun

(defun C:T6 (/ FIL FN STR *error* ptlist)
 (defun *error* (msg)(princ msg)(vla-endundomark *kpblc-activedoc*))
  (or *kpblc-activedoc* (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object))))
  (vla-endundomark *kpblc-activedoc*)(vla-startundomark *kpblc-activedoc*)
    (setq FN (getfiled "Выберите файл для вставки" "" "txt" 16))
  (if FN
    (progn
      (setq FIL (open FN "r"))
      (while (setq STR (read-line FIL))
	(setq STR (vl-string-trim " \n" STR))
      (if (not (member (substr STR 1 1) '("" ";")))
      (progn	
	(setq STR (MAPCAR 'ATOF (STR-STR-LST1 STR '(",;" "," ";" " " "\t")))
	      STR (mapcar '+ str '(0 0 0))
	      )
	(while (< (length str) 3)(setq str (append str '(0))))
	(setq ptlist (append ptlist (list str)))
	)
      )	
      ) ;_while
      (close FIL)
(mapcar '(lambda (pt)
	   (entmake (list '(0 . "POINT")
			  '(100 . "AcDbEntity")
			  '(100 . "AcDbPoint")
			  (cons 10 pt)
			  ) ;_ end of list
		    ) ;_ end of entmake
	   );_ end of lambda
	ptlist)
    ) ;_ end of progn
  ) ;_ end of if
(vla-endundomark *kpblc-activedoc*)
(princ)
)
(princ "\nНаберите в командной строке T6")
Разделителем чисел может быть пробел , ; табуляция. Разделитель целой и дробной части точка. Возможны комментарии - строка должна начинаться с ;
Не зависит от текущего значения OSMODE. Если пропущены координаты, то они добавляются 0
например
строка 8 -> точка 8,0,0;
строка 8,9 -> точка 8,9,0
VVA вне форума  
 
Автор темы   Непрочитано 15.11.2006, 03:23
#9
ОлегД


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


Спасибо, брацы.
С вашей помощью все прекрасно работает. Ну а AutoCAD у меня 2006.
ОлегД вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите с командой