Đến nội dung


Hình ảnh
- - - - -

[ yêu cầu ] Lisp up nội dung từ Excel vào Cad


  • Please log in to reply
42 replies to this topic

#21 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 31 March 2013 - 08:32 AM

Cám ơn Bạn, Nhưng việc sử dụng Block ttinh thì lisp yên cần sửa từng ô. Việc này thì mình  la2m từng block thì hơi lâu.

Bạn có thể hướng dẫn cụ thể lại cho mình được chứ.


  • 0

#22 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 04 April 2013 - 08:22 AM

Không muốn dùng Block Attribute thì chơi Lisp này, đúng theo yêu cầu luôn.

http://www.cadviet.c..._cad_rev1_1.lsp

;=====LISP UPDATE SO LIEU TU FILE TXT VAO CAD - REV1==========
;================KANGKUNG 25/03/2013==========================
(defun C:KK()
  (command "UNDO" "BE")
  (setq taphop(ssget '((0 . "TEXT"))) os(getvar "OSMODE"))
  (if (not Path) (setq Path(getvar "dwgprefix")))
  (setq file(getfiled "Select File:" Path "txt" 2) Path file index 0 TEXT_LIST (list))
  (while (< index (sslength taphop))
    (setq TEXT (entget (ssname taphop index)))
    (if (/= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
      (progn
	(setq String(cdr(assoc 1 TEXT)))
	(if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
	  (setq InsertPoint(cdr(assoc 10 TEXT)))
	  (setq InsertPoint(cdr(assoc 11 TEXT))))
	(setq TEXT_LIST (append (list (list String InsertPoint)) TEXT_LIST))))
    (setq index (1+ index)))
  (setq file_in(open file "R") lst_solieu(list))
  (while(setq txt(read-line file_in))
    (if (/= txt nil) (setq lst (read (strcat "(" txt ")"  ))))
    (foreach dt TEXT_LIST
      (if (= (car dt) (vl-princ-to-string(car lst)))
	(progn
	  (setq pt1(cadr dt) pt2(list (- (car pt1) 1.0757) (- (cadr pt1) 1.3762)) pt3(list (+ (car pt1) 1.2744) (- (cadr pt1) 1.3762)) pt4(list (car pt1) (- (cadr pt1) 2.7500)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Main_DTOV") (cons 62 3) (cons 10 pt1) (cons 40 0.5) (cons 1 (vl-princ-to-string(car lst))) (cons 72 1) (cons 11 pt1) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Main_CDTC") (cons 62 130) (cons 10 pt2) (cons 40 0.5) (cons 1 (rtos (cadr lst) 2 2)) (cons 72 1) (cons 11 pt2) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Main_DTOV") (cons 62 2) (cons 10 pt3) (cons 40 0.5) (cons 1 (rtos (caddr lst) 2 2)) (cons 72 1) (cons 11 pt3) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Main_KLOV") (cons 62 31) (cons 10 pt4) (cons 40 0.5) (cons 1 (rtos (cadddr lst) 2 2)) (cons 72 1) (cons 11 pt4) (cons 73 2)))
	  )
	)
      )
    )
  (COMMAND "ERASE" TAPHOP "")
  (close file_in)
  (command "UNDO" "END")
  )
(princ "\n                Written By KangKung - 25/03/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

Bạn cho mình xin hởi: nếu nình muốn up thêm 2 cột nửa ở cuối thì phải bổ sung những lệnh ở hàng nào vậy KangKung?

Mong được Bạn chỉ giúp.


  • 0

#23 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 05 April 2013 - 12:49 PM

Bạn tientracdia này toàn đánh cờ 1 nước. Bạn muốn up thêm 2 cột chứ thêm 20 cột nữa đều được tuy nhiên số liệu thế nào và thể hiện ở vị trí nào trên bản vẽ. Ít nhất cũng nên cho người viết Lisp biết cụ thể số liệu đầu vào và đầu ra thì mới có câu trả lời chính xác được.


  • 0

#24 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 05 April 2013 - 02:15 PM

Xin lỗi.

Trước đây nhập từ excel sang cad vào các vong tròn kí hiệu dựa vào cột STT file excel chỉ có các cột , như : STT, CCTC, Dientich, Khoiluong.

nay mình muốn thêm  2 cột CDTN, CDTK trên file excel và muốn nhập nội dung đó vào vòng tròn kí hiệu theo mẫu kí hiệu mới.

Rất mong được giúp. Cám ơn


  • 0

#25 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 05 April 2013 - 04:18 PM

Lisp mới đây. Tuy nhiên cách bạn đang làm việc hơi thiếu khoa học, làm lấy được chứ chưa có phương pháp tối ưu. Nếu quản lý đối tượng bằng block thuộc tính thì cách nhập số liệu đơn giản hơn nhiều. Lần đầu bạn muốn nhập số liệu với 4 cột, lần này là 6 cột, lần thứ n thì bao nhiêu? Tất cả điều này được giải quyết dễ dàng và đơn giản bằng cách sử dụng block thuộc tính. Muốn bao nhiêu số liệu thì chỉ cần thay đổi block thuộc tính là được thôi chứ không mất thời gian ngồi đo đo tính tính vị trí các Text rồi nhét vào trong code như mình đã làm. Mặt khác để Text như trên bản vẽ của bạn thì lại chưa có Lisp xuất ngược ra txt. Và nói trước là mình sẽ không chạy theo yêu cầu của bạn một lần nữa đâu nhé. Nếu bạn dùng block thuộc tính thì xuất ngược xuôi gì đều được hết.

;=====LISP UPDATE SO LIEU TU FILE TXT VAO CAD - REV1==========
;================KANGKUNG 25/03/2013==========================
;================ UPDATED 05/04/2013==========================
(defun C:KK()
  (command "UNDO" "BE")
  (setq taphop(ssget '((0 . "TEXT"))) os(getvar "OSMODE"))
  (if (not Path) (setq Path(getvar "dwgprefix")))
  (setq file(getfiled "Select File:" Path "txt" 2) Path file index 0 TEXT_LIST (list))
  (while (< index (sslength taphop))
    (setq TEXT (entget (ssname taphop index)))
    (if (/= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
      (progn
	(setq String(cdr(assoc 1 TEXT)))
	(if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
	  (setq InsertPoint(cdr(assoc 10 TEXT)))
	  (setq InsertPoint(cdr(assoc 11 TEXT))))
	(setq TEXT_LIST (append (list (list String InsertPoint)) TEXT_LIST))))
    (setq index (1+ index)))
  (setq file_in(open file "R") lst_solieu(list))
  (while(setq txt(read-line file_in))
    (if (/= txt nil) (setq lst (read (strcat "(" txt ")"  ))))
    (foreach dt TEXT_LIST
      (if (= (car dt) (vl-princ-to-string(car lst)))
	(progn
	  (setq pt1(cadr dt) pt2(list (- (car pt1) 1.0627) (- (cadr pt1) 0.9735)) pt3(list (+ (car pt1) 1.2873) (- (cadr pt1) 0.9735))
		pt4(list (- (car pt1) 1.0627) (- (cadr pt1) 2.0669)) pt5(list (+ (car pt1) 1.2873) (- (cadr pt1) 2.0669))
		pt6(list (car pt1) (- (cadr pt1) 3.1385))
		)
	  (command "ZOOM" "W" (list (- (car pt1) 3) (+ (cadr pt1) 2)) (list (+ (car pt1) 3) (- (cadr pt1) 5)))
	  (command "ERASE" "W" (list (- (car pt1) 3) (+ (cadr pt1) 1)) (list (+ (car pt1) 3) (- (cadr pt1) 4)) "")
	  (entmakex (list '(0 . "LINE")
		  (cons 8 "Layer7")
		  (cons 62 73)
		  (cons 10 (list (- (car pt1) 2.3281) (- (cadr pt1) 0.4652)))	(cons 11 (list (+ (car pt1) 2.3281) (- (cadr pt1) 0.4652)))
		  ))
	  (entmakex (list '(0 . "LINE")
		  (cons 8 "Layer7")
		  (cons 62 73)
		  (cons 10 (list (- (car pt1) 2.4999) (- (cadr pt1) 1.3975)))	(cons 11 (list (+ (car pt1) 2.4999) (- (cadr pt1) 1.3975)))
		  ))
	  (entmakex (list '(0 . "LINE")
		  (cons 8 "Layer7")
		  (cons 62 73)
		  (cons 10 (list (- (car pt1) 2.2015) (- (cadr pt1) 2.5608)))	(cons 11 (list (+ (car pt1) 2.2015) (- (cadr pt1) 2.5608)))
		  ))
	  (entmakex (list '(0 . "LINE")
		  (cons 8 "Layer7")
		  (cons 62 73)
		  (cons 10 (list (car pt1) (- (cadr pt1) 0.4652)))	(cons 11 (list (car pt1) (- (cadr pt1) 2.5608)))
		  ))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer1") (cons 62 3) (cons 10 pt1) (cons 40 0.5) (cons 1 (vl-princ-to-string(nth 0 lst))) (cons 72 1) (cons 11 pt1) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer2") (cons 62 130) (cons 10 pt2) (cons 40 0.5) (cons 1 (rtos (nth 1 lst) 2 2)) (cons 72 1) (cons 11 pt2) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer3") (cons 62 3) (cons 10 pt3) (cons 40 0.5) (cons 1 (rtos (nth 2 lst) 2 2)) (cons 72 1) (cons 11 pt3) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer4") (cons 62 130) (cons 10 pt4) (cons 40 0.5) (cons 1 (rtos (nth 3 lst) 2 2)) (cons 72 1) (cons 11 pt4) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer5") (cons 62 3) (cons 10 pt5) (cons 40 0.5) (cons 1 (rtos (nth 4 lst) 2 2)) (cons 72 1) (cons 11 pt5) (cons 73 2)))
	  (entmakex (list '(0 . "TEXT") (cons 8 "Layer6") (cons 62 31) (cons 10 pt6) (cons 40 0.5) (cons 1 (rtos (nth 5 lst) 2 2)) (cons 72 1) (cons 11 pt6) (cons 73 2)))
	  )
	)
      )
    )
  (close file_in)
  (command "UNDO" "END")
  (alert "Well Done")
  )
(princ "\n                Written By KangKung - 05/04/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

  • 3

#26 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 05 April 2013 - 05:56 PM

Cám ơn Bạn thật nhiều

 

Lisp mới đây. Tuy nhiên cách bạn đang làm việc hơi thiếu khoa học, làm lấy được chứ chưa có phương pháp tối ưu. Nếu quản lý đối tượng bằng block thuộc tính thì cách nhập số liệu đơn giản hơn nhiều. Lần đầu bạn muốn nhập số liệu với 4 cột, lần này là 6 cột, lần thứ n thì bao nhiêu? Tất cả điều này được giải quyết dễ dàng và đơn giản bằng cách sử dụng block thuộc tính. Muốn bao nhiêu số liệu thì chỉ cần thay đổi block thuộc tính là được thôi chứ không mất thời gian ngồi đo đo tính tính vị trí các Text rồi nhét vào trong code như mình đã làm. Mặt khác để Text như trên bản vẽ của bạn thì lại chưa có Lisp xuất ngược ra txt. Và nói trước là mình sẽ không chạy theo yêu cầu của bạn một lần nữa đâu nhé. Nếu bạn dùng block thuộc tính thì xuất ngược xuôi gì đều được hết.

 

Cám ơn Bạn KangKung thật nhiều nha.

Xin Bạn giúp :

1. Nếu như mình sử dụng Block thuộc tính file a.dwg mà hiện nay mình có thay đổi từ 4 cột lên 6 cột, thì phải chỉnh Block và lisp như thế nào ( sử dụng file mẫu gời ở trên )?

2. Vòng tròn có hay đổi bán kính?

3. Nhập vào và xuất ra ?

Mong Bạn thông cảm và giúp đỡ.


  • 0

#27 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 05 April 2013 - 06:25 PM

71162_thanks.jpg


  • 3

#28 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 05 April 2013 - 07:49 PM

71162_thanks.jpg

MỘT CÁI BẤM CHƯA NÓI LÊN TẤT CẢ


  • -3

#29 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 05 April 2013 - 09:27 PM

Lisp mới đây. Trước khi chạy bạn Copy cái này vào Support:

http://www.cadviet.c...tientracdia.dwg

(Chú ý: sau khi download về thì đổi tên File thành BLOCK_TIENTRACDIA.dwg)

Sau khi chạy Lisp thì số liệu sẽ là Block thuộc tính. Dùng Lisp ở #11 để xuất ngược lại sang TXT. Nếu muốn số liệu trên bản vẽ là các Text bình thường thì dùng lệnh BURST để phá vỡ các Block thuộc tính.

;========LISP UPDATE SO LIEU TU FILE TXT VAO CADU==========
;================KANGKUNG 25/03/2013=======================
;=================UPDATED 05/04/2013=======================
(defun C:KK()
  (command "UNDO" "BE")
  (setq taphop(ssget '((0 . "TEXT"))))
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (if (not Path)
    (setq Path(getvar "dwgprefix")))
  (setq file(getfiled "Select File:" Path "txt" 2))
  (setq Path file)
  (setq index 0)
  (setq TEXT_LIST (list))
  (while (< index (sslength taphop))
    (setq TEXT (entget (ssname taphop index)))
    (if (/= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
      (progn
	(setq String(cdr(assoc 1 TEXT)))
	(if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
	  (setq InsertPoint(cdr(assoc 10 TEXT)))
	  (setq InsertPoint(cdr(assoc 11 TEXT)))
	  )
	(setq TEXT_LIST (append (list (list String InsertPoint)) TEXT_LIST))
	)
      )
    (setq index (1+ index))
    )
  (setq file_in(open file "R"))
  (setq lst_solieu(list))
  (while(setq txt(read-line file_in))
    (if (/= txt nil) (setq lst (read (strcat "(" txt ")"  ))))
    (foreach dt TEXT_LIST
      (if (= (car dt) (vl-princ-to-string(car lst)))
	(progn
	  (setq pt(cadr dt))
	  (command "ZOOM" "W" (list (- (car pt) 3) (+ (cadr pt) 2)) (list (+ (car pt) 3) (- (cadr pt) 5)))
	  (command "ERASE" "W" (list (- (car pt) 3) (+ (cadr pt) 2)) (list (+ (car pt) 3) (- (cadr pt) 5)) "")
	  (command "INSERT"  "BLOCK_TIENTRACDIA"  pt  "1" "1" "0"
		   (vl-princ-to-string(car lst))
		   (rtos (nth 1 lst) 2 2)
		   (rtos (nth 2 lst) 2 2)
		   (rtos (nth 3 lst) 2 2)
		   (rtos (nth 4 lst) 2 2)
		   (rtos (nth 5 lst) 2 2)
		 )
	  )
	)
      )
    )
  (close file_in)
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (alert "Da xong \n\n Muon pha Block thi dung lenh BURST")
  (princ "\n BURST de pha Block")
  (princ)
  )
(princ "\n                Written By KangKung - 25/03/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

  • 1

#30 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 05 April 2013 - 11:23 PM

Bị lỗi không nhấn được nut mau xanh thì làm sao ta ???.....


  • -2

#31 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 06 April 2013 - 07:11 AM

Một người chỉ nhấn xanh cho 1 bài 1 lần.

Một người chỉ nhấn xanh trong 1 ngày số lượng có hạn.

 

Khi có lỗi gì thì thường có thông báo. Tập thói quen hỏi, yêu cầu gì cũng kèm theo bằng chứng cụ thể để đỡ nhọc người muốn giúp.


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#32 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 06 April 2013 - 03:37 PM

Lisp mới đây. Trước khi chạy bạn Copy cái này vào Support:

http://www.cadviet.c...tientracdia.dwg

(Chú ý: sau khi download về thì đổi tên File thành BLOCK_TIENTRACDIA.dwg)

Sau khi chạy Lisp thì số liệu sẽ là Block thuộc tính. Dùng Lisp ở #11 để xuất ngược lại sang TXT. Nếu muốn số liệu trên bản vẽ là các Text bình thường thì dùng lệnh BURST để phá vỡ các Block thuộc tính.

;========LISP UPDATE SO LIEU TU FILE TXT VAO CADU==========
;================KANGKUNG 25/03/2013=======================
;=================UPDATED 05/04/2013=======================
(defun C:KK()
  (command "UNDO" "BE")
  (setq taphop(ssget '((0 . "TEXT"))))
  (setq os(getvar "OSMODE"))
  (setvar "OSMODE" 0)
  (if (not Path)
    (setq Path(getvar "dwgprefix")))
  (setq file(getfiled "Select File:" Path "txt" 2))
  (setq Path file)
  (setq index 0)
  (setq TEXT_LIST (list))
  (while (< index (sslength taphop))
    (setq TEXT (entget (ssname taphop index)))
    (if (/= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
      (progn
	(setq String(cdr(assoc 1 TEXT)))
	(if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
	  (setq InsertPoint(cdr(assoc 10 TEXT)))
	  (setq InsertPoint(cdr(assoc 11 TEXT)))
	  )
	(setq TEXT_LIST (append (list (list String InsertPoint)) TEXT_LIST))
	)
      )
    (setq index (1+ index))
    )
  (setq file_in(open file "R"))
  (setq lst_solieu(list))
  (while(setq txt(read-line file_in))
    (if (/= txt nil) (setq lst (read (strcat "(" txt ")"  ))))
    (foreach dt TEXT_LIST
      (if (= (car dt) (vl-princ-to-string(car lst)))
	(progn
	  (setq pt(cadr dt))
	  (command "ZOOM" "W" (list (- (car pt) 3) (+ (cadr pt) 2)) (list (+ (car pt) 3) (- (cadr pt) 5)))
	  (command "ERASE" "W" (list (- (car pt) 3) (+ (cadr pt) 2)) (list (+ (car pt) 3) (- (cadr pt) 5)) "")
	  (command "INSERT"  "BLOCK_TIENTRACDIA"  pt  "1" "1" "0"
		   (vl-princ-to-string(car lst))
		   (rtos (nth 1 lst) 2 2)
		   (rtos (nth 2 lst) 2 2)
		   (rtos (nth 3 lst) 2 2)
		   (rtos (nth 4 lst) 2 2)
		   (rtos (nth 5 lst) 2 2)
		 )
	  )
	)
      )
    )
  (close file_in)
  (setvar "OSMODE" os)
  (command "UNDO" "END")
  (alert "Da xong \n\n Muon pha Block thi dung lenh BURST")
  (princ "\n BURST de pha Block")
  (princ)
  )
(princ "\n                Written By KangKung - 25/03/2013\n")
(princ "\n                  Nhap KK de chay chuong trinh\n")

Đúng là ứng dụng block thuộc tính thực hiện rất hay, mình chưa hiểu được về vấn đề này.

Công việc mình cần nhiều dạng thực hiện như vầy lắm, muốn thêm vào nhiều dử liệu tính toán, sợ làm phiền bạn viết hoài.

Mong muốn Bạn giải thích cho mình ý nghĩa các đoạn lệnh của Lisp trên, để tự nghiên cứu chỉnh lý theo yêu cầu về sau.


  • 0

#33 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 06 April 2013 - 11:10 PM

Bác KangKung dạo này rảnh quá ha. Hii. Bác có ý tưởng nào mới không thế? Toàn viết theo yêu cầu thế vậy bác?

@Tientracdia: Mình tin bạn sẽ còn hỏi tiếp nữa vì bạn mới hỏi cách nhập, cách xuất bạn chưa hỏi. Lại làm phiền bác KangKung cho mà xem. Mời bác ấy bia đê. Mùa hè rồi đoá. Hè hè


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#34 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 07 April 2013 - 07:32 AM

Cách xuất bạn KangKung đã có hướng dẫn rồi Bạn.

Bây giờ mình cần hiểu về nguyên lý nhập data theo vị trí của block thuộc tính :


  • 0

#35 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 07 April 2013 - 09:29 AM

Cách xuất bạn KangKung đã có hướng dẫn rồi Bạn.

Bây giờ mình cần hiểu về nguyên lý nhập data theo vị trí của block thuộc tính :

Srr mình không đọc hết. Lần sau chú ý đọc hết mới nói.

Nguyên lý nhập Data theo vị trí của Block Att thì đơn giản thôi. 

Ví dụ: Khi bạn có 3 thuộc tính chẳng hạn, do vậy thuộc tính nào được tạo trước thì khi Insert nó sẽ được hiển thị trước.

Để kiểm tra thằng nào chèn trước thì bạn mở 1 bản cad ra, dùng lệnh insert và chọn file cad chưa att đó. Nó sẽ hỏi thằng nào chèn trước, thằng nào chèn tiếp theo và bạn lấy bút ghi ra giấy là biết thứ tự att ngay ấy mà. Nếu bạn muốn theo ý của bạn chèn cái thằng nào trước thằng nào sau thì tốt nhất bạn làm luôn block thuộc tính lại từ đầu.

Ví dụ cụ thể hơn: Bạn có 3 thuộc tính (số thứ tự - cao độ - Code)

Dùng lệnh att và đặt tên là STT

Dùng lệnh att và đặt tên là Caodo

Dùng lệnh att và đặt tên là Code

Như vậy khi bạn chèn vào bản vẽ nó sẽ hỏi theo đúng trình tự  mà bạn đã tạo.


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#36 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 07 April 2013 - 12:03 PM

Bác KangKung dạo này rảnh quá ha. Hii. Bác có ý tưởng nào mới không thế? Toàn viết theo yêu cầu thế vậy bác?

@Tientracdia: Mình tin bạn sẽ còn hỏi tiếp nữa vì bạn mới hỏi cách nhập, cách xuất bạn chưa hỏi. Lại làm phiền bác KangKung cho mà xem. Mời bác ấy bia đê. Mùa hè rồi đoá. Hè hè

Chào chú thanhduan. Dạo này anh cũng tương đối nhàn rỗi nên có nhiều thời gian vào diễn đàn. Thấy một số vấn đề anh em thắc mắc mình có thể giải quyết được nên giúp đỡ thôi.

Ý tưởng mới thì cũng không có nhiều, có một số cái dùng cho công việc còn lại chủ yếu toàn do người khác gợi ý nên viết thôi. Anh vừa viết xong chương trình xử lý số liệu đo dòng chảy (ADCP) và một số chương trình mang tính vui chơi giải trí là chính chả có ứng dụng thực tế mấy.


  • 1

#37 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 07 April 2013 - 12:38 PM

Vậy hả anh! ^^

Lúc nhàn rỗi thì mình có thời gian nghiên cứu để khi có công trình thì đưa vào ứng dụng, ngày trước em cũng toàn viết ứng dụng cho công việc. Mình làm việc nào thì viết ứng dụng đó thôi. Em lâu rồi cũng ko viết, lại đi chuyên sâu vào mảng khác anh ạ.


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#38 viettien_03

viettien_03

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 29 May 2013 - 11:36 AM

Tình cờ gặp pic này đúng thứ mình đang làm, nhưng mình có thắc như thế này:

- Trong CAD đã có sẵn 2 lệnh ATTUOT và ATTIN. Lệnh làm việc như sau :

  + Đầu tiên ATTUOT các block thuộc tính ra 1 file txt

  + Sau đó chếp nôi dung file txt vào exl, trên file exl sẽ có hàng và cột theo thuộc tính của Block ATT

  + Chỉnh sửa nội dung file exl ròi xuất về dạng txt

  + Kết thúc dùng lệnh ATTIN nhập dữ liệu từ file txt vào CAD. 

- Vấn đề dặt ra là phải có file trung gian txt, vậy có cách nào bỏ qua được bước trung gian này không


  • 0

#39 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 29 May 2013 - 11:45 AM

Xuất ra (Attout) thì phải có cái để... chứa >> cần txt.

Nhập vào (Attin) thì phải từ... kho. >> cần txt.

Cái cần bỏ là file excel chứ nhỉ? Nếu vậy thì bạn edit trực tiếp trên txt?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#40 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 29 May 2013 - 11:54 AM

Xuất ra (Attout) thì phải có cái để... chứa >> cần txt.

Nhập vào (Attin) thì phải từ... kho. >> cần txt.

Cái cần bỏ là file excel chứ nhỉ? Nếu vậy thì bạn edit trực tiếp trên txt?

 

Dùng Excel có thể mở và edit được và lưu file txt. Không cần phát sinh thêm 1 file .xls nữa bác ạ.


  • 0