Chuyển đến nội dung
Diễn đàn CADViet
toiyeuvietnam

[Nhờ chỉnh sửa] Nhờ hoàn thiện lisp phun điểm mia địa chính ra Autocad

Các bài được khuyến nghị

- hiện tại em phải dùng 5 thao tác riêng biệt để xuất được các điểm đo ra ngoài màn hình AutoCAD là:

1: Dùng lệnh chế biến File (CB) để chế biến File từ dạng thô của máy đo sang File tọa độ góc, cạnh dạng .TXT

2; Dùng lệnh phun điểm mia (PDM) để phun tọa độ ra ngoài màn hình AutoCAD.

3: Dùng lệnh vẽ lưới (VL) để xác định góc cạnh, tọa độ của trạm máy.

4: Dùng lệnh lấy trạm máy ™ để lấy tọa độ của trạm máy.

5: Sau đó mới dùng lệnh phun điểm mia (PDM) để phun tọa độ ra ngoài màn hình AutoCAD.

 

Nhờ các anh em trên diễn đàn giúp em hoàn thiện lisp phun tọa độ lên màn hình Autocad là gộp các lisp riêng lẻ thành 1 lệnh chế biến (CB) với nội dung như sau:

Mở AutoCAD ra và gõ lệnh chế biến (CB) sau đó tìm đến đường dẫn chứa File thô trút số liệu từ máy đo ra là có thể xuất tọa độ điểm đo ra ngoài màn hình và chỉ việc nối các điểm mia là xong mà không phải thực hiện từng thao tác như trước nữa!

 

Còn nếu khó và phức tạp quá thì có thể giúp em gộp bước 1 và 2 thành 1 ở trên để phun điểm mia ra và tự làm các bước còn lại theo cách thủ công như cũ.

Cảm ơn các anh em rất nhiều!

ĐÂY LÀ CODE CẦN ANH EM SỬA GIÚP:

 

[/size][/font]
;khong dung chenh cao, chi su dung de thanh lap ban do dia chinh
(defun c:cb (/ 	ch	i   FN  FD sosanh j  	trammay
 	ccmay  tramdh ccguong  canhng hm 	hg 	goctd
 	canhb  gocdung   cd  dem tam
)
 (setq
FN (getfiled "NhËp file nguån : "
  ""
  ""
  4
  	)
 )
 (setq i (strlen FN))
 (setq ch "")
 (while (/= ch "\\")
(setq ch (substr FN i 1))
(setq i (- i 1))
 )
 (setq xuat (substr FN 1 (+ i 1)))
 (setq FD (getstring "Nhap ten file ket qua : "))
 (setq FD (strcat xuat FD))
 (setq FD (open FD "w"))
;  (setq mo (getreal "Nhap sai so MO cua may (giay) : "))
 (if (= mo nil)
(progn (setq mo 0)
(princ "\n")
(princ "  Lay MO=0")
(princ "\n")
)
 )
 (setq mo (/ mo 3600))
 (setq FN (open FN "r"))
 (while (and (setq PR (read-line FN)) (/= PR ""))
(progn
 	(setq i 1)
 	(setq sosanh "")
 	(setq ch "")
 	(while (/= ch " ")
(setq ch (substr PR i 1))
(setq i (+ i 1))
 	)
 	(setq sosanh (substr PR 1 (- i 2)))
 	(cond ((= sosanh "STN")
 	(progn
;///////////////////////lay ten tram may//////////
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq trammay (substr PR i (- j i 1)))
;//////////////////////lay chieu cao may/////////
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccmay (substr PR i (- j i 2)))
   	(write-line (strcat "TR  " trammay) FD)
 	)	;end progn
)	;end cond1
((= sosanh "BS")
 	(progn
;///////////////////////lay ten tram dinh huong//////////
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq tramdh (substr PR i (- j i 1)))
;//////////////////////lay chieu cao guong/////////
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccguong (substr PR i (- j i 2)))
   	(setq tam "bs")
 	)	;end progn
)	;end cond2
((= sosanh "SD")
 	(progn
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (= ch " ")
(setq i j)
  )
   	)
   	(setq gocbang (substr PR i (- j i 1)))
;///////////////////////////////
   	(setq i j)
   	(setq j (+ j 2))
   	(setq ch "")
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq goctd (substr PR i (- j i 1)))
;////////////////////////////////
   	(setq i j)
   	(setq j (+ j 2))
   	(setq ch " ")
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq canhng (substr PR i (- j i 1)))
;/////////////////////////////////////
   	(setq hg (atof ccguong))
   	(setq hm (atof ccmay))
   	(setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))
   	(setq gocdung (/ (* gocdung pi) 180))
   	(setq canhng (atof canhng))
   	(setq canhb (* canhng (cos gocdung)))
   	(setq h (+ (- hg hm) (* canhng (sin gocdung))))
   	(setq cd (strlen gocbang))
   	(setq i cd)
   	(setq dem 0)
   	(setq ch "")
   	(while (/= ch ".")
  (setq ch (substr gocbang i 1))
  (setq i (- i 1))
  (setq dem (+ dem 1))
   	)
   	(if (= dem 6)
  (setq gocbang (substr gocbang 1 (- cd 1)))
   	)
   	(if (= tam "bs")
  (write-line
(strcat "DH  "
 	(dd tramdh)
 	(dd gocbang)
 	"  "
 	(rtos canhb 2 3)
)
FD
  )
  (write-line
(strcat (dd stt)
 	(dd gocbang)
 	"	"
 	(rtos canhb 2 3)
)
FD
  )
   	)
 	)	;end progn
)	;end cond3
((= sosanh "SS")
 	(progn
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq stt (substr PR i (- j i 1)))
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccguong (substr PR i (- j i 2)))
   	(setq tam "ss")
 	)	;end progn
)	;end cond4
 	)
) 	;end progn
 ) 	;end while
 (close FN)
 (close FD)
 (princ "\n")
 (princ "\nOK!")
 (princ)
)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
;******chuong trinh phun diem mia cho file duoc che bien tu may TOPCON 223**********
;          	DUNG CHO BAN DO DIA CHINH 	*
;* TR  DCII-04  1014424.593 516275.846   		*
;* TR  DCII-07  1014339.861 516213.914   		*
;* TR  DCII-03  1014491.054  516180.297        	*
;* TR  DCII-06  1014670.141  516433.592     		*
;* TR  DCTI-04   		*
;* DH  DCII-03     		*
;* 1    	355.1447 	66.896        	*
;* 2    	355.1519 	47.576     		*
;* 3    	1.4545   	48.375        	*
;************************************************************************
(defun c:pdm (/    	tam ms  PR   FN	thunhat
  	tentram  caodotram  xtram   ytram	htram
  	tentrammay tendh
 	)
 (bdau)
 (setq tam ())
 (setq ms (getreal "Nhap vao mau so ty le : "))
 (setq
FN (getfiled "NhËp file nguån : "
  ""
  ""
  4
  	)
 )
 (progn
(command "-osnap" "")
(setvar "cmdecho" 0)
(setvar "luprec" 8)
(setvar "pdmode" 0)
(command "-layer" "m" "diem" "c" "red" "" "")
;	(command "-layer" "m" "caodo" "c" "cyan" "" "")
(command "-layer" "m" "sothutu" "c" "magenta" "" "")
(command "-layer" "m" "khongche" "c" "red" "" "")
(setq st (/ ms 1000))
(setq st1 st)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
(setq FN (open FN "r"))
(while (and (setq PR (read-line FN)) (/= PR ""))
 	(progn
(setq PR (strcat "(" PR ")"))
(setq PR (read PR))
(setq thunhat (nth 0 PR))
(if
  (numberp thunhat)
(gapsoA)
(gaptramA)
)
 	) 	;end progn
) 	;end while
 ) 	;end progn
;;;;;ket thuc viet lenh
 (close FN)
 (command "zoom" "e")
 (kthuc)
 (princ "\nVAY LA XONG!)*****")
 (princ)
)
(defun gaptramA (/ x y)
 (setq thunhat (convtostr thunhat))
 (if (= thunhat "TR")
(progn
 	(setq ktra (nth 3 PR))
 	(if (/= ktra nil) ;GAP TRAM CHUA TOA DO GOC
(progn
  (setq tentram (convtostr (nth 1 PR)))
  (setq Y (nth 2 PR))
  (setq X ktra)
;   (setq h (nth 4 PR))
  (setq tam (append tam (list (list tentram x y ))))
)   ;GAP TRAM DO THUC TE
(progn
  (setq tentrammay (convtostr (nth 1 PR)))
;   (if (/= (nth 2 PR) nil)
; 	(setq caodotram (nth 2 PR))
; 	(setq caodotram 0)
;   )
  (laytdgoc tentrammay)
  (setq tdtram1 (list (+ xtram (* 2 st)) ytram ))
  (setq xxtram xtram)
  (setq yytram ytram)
  (setq tdtram (list xtram ytram))
  (command "-layer" "s" "khongche" "")
;(command "point" tdtram)
  (command "insert" "cdkc" tdtram st st "")
  (setq sss (strlen tentrammay))
  (setq tdtram2 (list (+ xtram (* 2 st) );(* (/ sss 2) st))
		(- ytram (* 0.65 st))      
  )
  )
;   (command "insert"
; 	"l"
; 	tdtram1
; 	(* st sss)
; 	(* st sss)
; 	""
;   )
  (command "-style"
"mota"
"txt.shx"
st
"1"
"0"
"n"
"n"
"n"
  )
  (command "text" "j" "bl" tdtram1 "" tentrammay)
  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;   (command "-layer" "s" "khongche" "")
;   (command "text" "j" "tl" tdtram2 "" (rtos htram 2 2))
)
 	)
) 	;end progn
(if (= thunhat "DH")  ;else
 	(progn
(setq tendh (convtostr (nth 1 PR)))
(laytdgoc tendh)
(setq tddh (list xtram ytram ))
(setq tddh1 (list (+ xtram (* 2 st)) ytram ))
(command "-layer" "s" "khongche" "")
(command "insert" "cdkc" tddh st st "")
;(command "point" tddh)
(setq sss (strlen tendh))
(setq tddh2 (list (+ xtram (* 2 st)); (* (/ sss 2) st))
(- ytram (* 0.65 st))    
 	)
)
;(command "insert"
;  "l"
;  tddh1
;  (* st sss)
;  (* st sss)
;  ""
;)[/size][/font]
[font=Arial][size=2](command "-style"
  "mota"
  "txt.shx"
  st
  "1"
  "0"
  "n"
  "n"
  "n"
)
(command "text" "j" "bl" tddh1 "" tendh)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
; (command "-layer" "s" "khongche" "")
; (command "text" "j" "tl" tddh2 "" (rtos htram 2 1))
 	)
)
 )
)
(defun gapsoA (/ gocbang kc goctd tdx tdy tdz td dentah)
 (setq gocbang (nth 1 PR))
 (setq kc (nth 2 PR))
;  (setq dentah (nth 3 PR))
 (setq gocbang (dpgtod gocbang))
 (setq gocbang (- 360 gocbang))
 (setq gocbang (+ (/ (* gocbang pi) 180) (angle tdtram tddh)))
 (setq tdX (+ xxtram (* kc (cos gocbang))))
 (setq tdY (+ yytram (* kc (sin gocbang))))
;  (if (/= dentah nil)
;	(setq tdz (+ caodotram (nth 2 tdtram) dentah))
;	(setq tdz 0)
;  )
 (setq td (list tdx tdy))
 (setq td1 (list (+ tdx (* 0.5 st)) (+ tdy (* 0.3 st)) ))
 (setq td2 (list (+ tdx (* 0.5 st)) (- tdy (* 0.3 st)) ))
 (command "-layer" "s" "diem" "")
 ;(command "insert" "cdc" td st st "")
 (command "point" td)
 (command "-style"
"mota"
"txt.shx"
(* st 2)
"1"
"0"
"n"
"n"
"n"
 )
 (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
 (command "-layer" "s" "sothutu" "")
 (command "text" td "" thunhat)
;  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;  (command "-layer" "s" "caodo" "")
;  (command "text" "tl" td "" (rtos tdz 2 1))
)
------------------------------------------------------------------------------------
chuong trinh tinh toa do diem dua vao goc va canh nhap vao
(defun c:vl ()	;/ diemgoc diemdh goc canh)
 (bdau)
 (command "-layer" "m" "veluoi" "c" "cyan" "" "")
 (command "-layer" "m" "point" "c" "red" "" "")
 (command "-layer" "m" "text" "c" "yellow" "" "")
 (setq diemgoc (getpoint "\nChon diem goc : "))
 (setq diemdh (getpoint "\nChon diem dinh huong : "))
 (setq goc (getreal "\nNhap goc(do.phutgiay) : "))
 (setq canh (getreal "\nNhap chieu dai canh : "))
 (setq tendiem (getstring "Nhap ten diem : "))
 (setq goc2 (dpgtod goc))
 (setq goc1 (/ (* goc2 pi) 180))
 (setq gocbang (- (* 2 pi) goc1))
 (setq gocbang (+ gocbang (angle diemgoc diemdh)))
 (setq x1 (nth 0 diemgoc))
 (setq y1 (nth 1 diemgoc))
 (setq x2 (nth 0 diemdh))
 (setq y2 (nth 1 diemdh))
 (setq x3 (+ x1 (* canh (cos gocbang))))
 (setq y3 (+ y1 (* canh (sin gocbang))))
 (setq td3 (list x3 y3))
 (command "-layer" "s" "point" "")
 (command "point" td3)
 (command "-layer" "s" "veluoi" "")
 (command "line" diemgoc td3 "")
 (command "-layer" "s" "text" "")
 (command "-style" "mota" "txt.shx" 2 "1" "0" "n" "n" "n")
 (command "text" td3 "" tendiem)
 (kthuc)
)
------------------------------------------------------------------------------------
; CHUONG TRINH LAY TOA DO 1 DIEM SAP XEP THEO X : Y : Z XUAT TRANG TEXT
(defun C:TM (/ DIEM)
 (command "osnap" "endpoint")
 (setq DIEM (getpoint "Chon tram may can lay toa do"))
 (princ "\n TOA DO TRAM MAY:   ")
 (princ (rtos (cadr DIEM) 2 3))
 (princ "  ")
 (princ (rtos (car DIEM) 2 3))
 (princ "  ")
 (princ (rtos (caddr DIEM) 2 3))
 (princ)
) 	;END DEFUN
---------------------------------------------------------------------------------------

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

- hiện tại em phải dùng 5 thao tác riêng biệt để xuất được các điểm đo ra ngoài màn hình AutoCAD là:

1: Dùng lệnh chế biến File (CB) để chế biến File từ dạng thô của máy đo sang File tọa độ góc, cạnh dạng .TXT

2; Dùng lệnh phun điểm mia (PDM) để phun tọa độ ra ngoài màn hình AutoCAD.

3: Dùng lệnh vẽ lưới (VL) để xác định góc cạnh, tọa độ của trạm máy.

4: Dùng lệnh lấy trạm máy ™ để lấy tọa độ của trạm máy.

5: Sau đó mới dùng lệnh phun điểm mia (PDM) để phun tọa độ ra ngoài màn hình AutoCAD.

 

Nhờ các anh em trên diễn đàn giúp em hoàn thiện lisp phun tọa độ lên màn hình Autocad là gộp các lisp riêng lẻ thành 1 lệnh chế biến (CB) với nội dung như sau:

Mở AutoCAD ra và gõ lệnh chế biến (CB) sau đó tìm đến đường dẫn chứa File thô trút số liệu từ máy đo ra là có thể xuất tọa độ điểm đo ra ngoài màn hình và chỉ việc nối các điểm mia là xong mà không phải thực hiện từng thao tác như trước nữa!

 

Còn nếu khó và phức tạp quá thì có thể giúp em gộp bước 1 và 2 thành 1 ở trên để phun điểm mia ra và tự làm các bước còn lại theo cách thủ công như cũ.

Cảm ơn các anh em rất nhiều!

ĐÂY LÀ CODE CẦN ANH EM SỬA GIÚP:

 

C

[/size][/font][/size][/font]
[font=Arial][size=2] 	;******\\\\\\\\\**chuong trinh che bien cho may TOPCON 223*********\\\\\\\\\\\\\\*********////////
;khong dung chenh cao, chi su dung de thanh lap ban do dia chinh
(defun c:cb (/ 	ch	i   FN  FD sosanh j  	trammay
 	ccmay  tramdh ccguong  canhng hm 	hg 	goctd
 	canhb  gocdung   cd  dem tam
)
 (setq
FN (getfiled "NhËp file nguån : "
  ""
  ""
  4
  	)
 )
 (setq i (strlen FN))
 (setq ch "")
 (while (/= ch "\\")
(setq ch (substr FN i 1))
(setq i (- i 1))
 )
 (setq xuat (substr FN 1 (+ i 1)))
 (setq FD (getstring "Nhap ten file ket qua : "))
 (setq FD (strcat xuat FD))
 (setq FD (open FD "w"))
;  (setq mo (getreal "Nhap sai so MO cua may (giay) : "))
 (if (= mo nil)
(progn (setq mo 0)
(princ "\n")
(princ "  Lay MO=0")
(princ "\n")
)
 )
 (setq mo (/ mo 3600))
 (setq FN (open FN "r"))
 (while (and (setq PR (read-line FN)) (/= PR ""))
(progn
 	(setq i 1)
 	(setq sosanh "")
 	(setq ch "")
 	(while (/= ch " ")
(setq ch (substr PR i 1))
(setq i (+ i 1))
 	)
 	(setq sosanh (substr PR 1 (- i 2)))
 	(cond ((= sosanh "STN")
 	(progn
;///////////////////////lay ten tram may//////////
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq trammay (substr PR i (- j i 1)))
;//////////////////////lay chieu cao may/////////
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccmay (substr PR i (- j i 2)))
   	(write-line (strcat "TR  " trammay) FD)
 	)	;end progn
)	;end cond1
((= sosanh "BS")
 	(progn
;///////////////////////lay ten tram dinh huong//////////
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq tramdh (substr PR i (- j i 1)))
;//////////////////////lay chieu cao guong/////////
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccguong (substr PR i (- j i 2)))
   	(setq tam "bs")
 	)	;end progn
)	;end cond2
((= sosanh "SD")
 	(progn
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (= ch " ")
(setq i j)
  )
   	)
   	(setq gocbang (substr PR i (- j i 1)))
;///////////////////////////////
   	(setq i j)
   	(setq j (+ j 2))
   	(setq ch "")
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq goctd (substr PR i (- j i 1)))
;////////////////////////////////
   	(setq i j)
   	(setq j (+ j 2))
   	(setq ch " ")
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq canhng (substr PR i (- j i 1)))
;/////////////////////////////////////
   	(setq hg (atof ccguong))
   	(setq hm (atof ccmay))
   	(setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))
   	(setq gocdung (/ (* gocdung pi) 180))
   	(setq canhng (atof canhng))
   	(setq canhb (* canhng (cos gocdung)))
   	(setq h (+ (- hg hm) (* canhng (sin gocdung))))
   	(setq cd (strlen gocbang))
   	(setq i cd)
   	(setq dem 0)
   	(setq ch "")
   	(while (/= ch ".")
  (setq ch (substr gocbang i 1))
  (setq i (- i 1))
  (setq dem (+ dem 1))
   	)
   	(if (= dem 6)
  (setq gocbang (substr gocbang 1 (- cd 1)))
   	)
   	(if (= tam "bs")
  (write-line
(strcat "DH  "
 	(dd tramdh)
 	(dd gocbang)
 	"  "
 	(rtos canhb 2 3)
)
FD
  )
  (write-line
(strcat (dd stt)
 	(dd gocbang)
 	"	"
 	(rtos canhb 2 3)
)
FD
  )
   	)
 	)	;end progn
)	;end cond3
((= sosanh "SS")
 	(progn
   	(setq j i)
   	(while (/= ch ",")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
  (if (or (= ch "`") (= ch " "))
(setq i j)
  )
   	)
   	(setq stt (substr PR i (- j i 1)))
   	(setq i j)
   	(while (/= ch "")
  (setq ch (substr PR j 1))
  (setq j (+ j 1))
   	)
   	(setq ccguong (substr PR i (- j i 2)))
   	(setq tam "ss")
 	)	;end progn
)	;end cond4
 	)
) 	;end progn
 ) 	;end while
 (close FN)
 (close FD)
 (princ "\n")
 (princ "\nOK!")
 (princ)
)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
;******chuong trinh phun diem mia cho file duoc che bien tu may TOPCON 223**********
;          	DUNG CHO BAN DO DIA CHINH 	*
;* TR  DCII-04  1014424.593 516275.846   		*
;* TR  DCII-07  1014339.861 516213.914   		*
;* TR  DCII-03  1014491.054  516180.297        	*
;* TR  DCII-06  1014670.141  516433.592     		*
;* TR  DCTI-04   		*
;* DH  DCII-03     		*
;* 1    	355.1447 	66.896        	*
;* 2    	355.1519 	47.576     		*
;* 3    	1.4545   	48.375        	*
;************************************************************************
(defun c:pdm (/    	tam ms  PR   FN	thunhat
  	tentram  caodotram  xtram   ytram	htram
  	tentrammay tendh
 	)
 (bdau)
 (setq tam ())
 (setq ms (getreal "Nhap vao mau so ty le : "))
 (setq
FN (getfiled "NhËp file nguån : "
  ""
  ""
  4
  	)
 )
 (progn
(command "-osnap" "")
(setvar "cmdecho" 0)
(setvar "luprec" 8)
(setvar "pdmode" 0)
(command "-layer" "m" "diem" "c" "red" "" "")
;	(command "-layer" "m" "caodo" "c" "cyan" "" "")
(command "-layer" "m" "sothutu" "c" "magenta" "" "")
(command "-layer" "m" "khongche" "c" "red" "" "")
(setq st (/ ms 1000))
(setq st1 st)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
(setq FN (open FN "r"))
(while (and (setq PR (read-line FN)) (/= PR ""))
 	(progn
(setq PR (strcat "(" PR ")"))
(setq PR (read PR))
(setq thunhat (nth 0 PR))
(if
  (numberp thunhat)
(gapsoA)
(gaptramA)
)
 	) 	;end progn
) 	;end while
 ) 	;end progn
;;;;;ket thuc viet lenh
 (close FN)
 (command "zoom" "e")
 (kthuc)
 (princ "\nVAY LA XONG!)*****")
 (princ)
)
(defun gaptramA (/ x y)
 (setq thunhat (convtostr thunhat))
 (if (= thunhat "TR")
(progn
 	(setq ktra (nth 3 PR))
 	(if (/= ktra nil) ;GAP TRAM CHUA TOA DO GOC
(progn
  (setq tentram (convtostr (nth 1 PR)))
  (setq Y (nth 2 PR))
  (setq X ktra)
;   (setq h (nth 4 PR))
  (setq tam (append tam (list (list tentram x y ))))
)   ;GAP TRAM DO THUC TE
(progn
  (setq tentrammay (convtostr (nth 1 PR)))
;   (if (/= (nth 2 PR) nil)
; 	(setq caodotram (nth 2 PR))
; 	(setq caodotram 0)
;   )
  (laytdgoc tentrammay)
  (setq tdtram1 (list (+ xtram (* 2 st)) ytram ))
  (setq xxtram xtram)
  (setq yytram ytram)
  (setq tdtram (list xtram ytram))
  (command "-layer" "s" "khongche" "")
;(command "point" tdtram)
  (command "insert" "cdkc" tdtram st st "")
  (setq sss (strlen tentrammay))
  (setq tdtram2 (list (+ xtram (* 2 st) );(* (/ sss 2) st))
		(- ytram (* 0.65 st))      
  )
  )
;   (command "insert"
; 	"l"
; 	tdtram1
; 	(* st sss)
; 	(* st sss)
; 	""
;   )
  (command "-style"
"mota"
"txt.shx"
st
"1"
"0"
"n"
"n"
"n"
  )
  (command "text" "j" "bl" tdtram1 "" tentrammay)
  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;   (command "-layer" "s" "khongche" "")
;   (command "text" "j" "tl" tdtram2 "" (rtos htram 2 2))
)
 	)
) 	;end progn
(if (= thunhat "DH")  ;else
 	(progn
(setq tendh (convtostr (nth 1 PR)))
(laytdgoc tendh)
(setq tddh (list xtram ytram ))
(setq tddh1 (list (+ xtram (* 2 st)) ytram ))
(command "-layer" "s" "khongche" "")
(command "insert" "cdkc" tddh st st "")
;(command "point" tddh)
(setq sss (strlen tendh))
(setq tddh2 (list (+ xtram (* 2 st)); (* (/ sss 2) st))
(- ytram (* 0.65 st))    
 	)
)
;(command "insert"
;  "l"
;  tddh1
;  (* st sss)
;  (* st sss)
;  ""
;)[/size][/font]
[font=Arial][size=2](command "-style"
  "mota"
  "txt.shx"
  st
  "1"
  "0"
  "n"
  "n"
  "n"
)
(command "text" "j" "bl" tddh1 "" tendh)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
; (command "-layer" "s" "khongche" "")
; (command "text" "j" "tl" tddh2 "" (rtos htram 2 1))
 	)
)
 )
)
(defun gapsoA (/ gocbang kc goctd tdx tdy tdz td dentah)
 (setq gocbang (nth 1 PR))
 (setq kc (nth 2 PR))
;  (setq dentah (nth 3 PR))
 (setq gocbang (dpgtod gocbang))
 (setq gocbang (- 360 gocbang))
 (setq gocbang (+ (/ (* gocbang pi) 180) (angle tdtram tddh)))
 (setq tdX (+ xxtram (* kc (cos gocbang))))
 (setq tdY (+ yytram (* kc (sin gocbang))))
;  (if (/= dentah nil)
;	(setq tdz (+ caodotram (nth 2 tdtram) dentah))
;	(setq tdz 0)
;  )
 (setq td (list tdx tdy))
 (setq td1 (list (+ tdx (* 0.5 st)) (+ tdy (* 0.3 st)) ))
 (setq td2 (list (+ tdx (* 0.5 st)) (- tdy (* 0.3 st)) ))
 (command "-layer" "s" "diem" "")
 ;(command "insert" "cdc" td st st "")
 (command "point" td)
 (command "-style"
"mota"
"txt.shx"
(* st 2)
"1"
"0"
"n"
"n"
"n"
 )
 (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
 (command "-layer" "s" "sothutu" "")
 (command "text" td "" thunhat)
;  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;  (command "-layer" "s" "caodo" "")
;  (command "text" "tl" td "" (rtos tdz 2 1))
)
------------------------------------------------------------------------------------
chuong trinh tinh toa do diem dua vao goc va canh nhap vao
(defun c:vl ()	;/ diemgoc diemdh goc canh)
 (bdau)
 (command "-layer" "m" "veluoi" "c" "cyan" "" "")
 (command "-layer" "m" "point" "c" "red" "" "")
 (command "-layer" "m" "text" "c" "yellow" "" "")
 (setq diemgoc (getpoint "\nChon diem goc : "))
 (setq diemdh (getpoint "\nChon diem dinh huong : "))
 (setq goc (getreal "\nNhap goc(do.phutgiay) : "))
 (setq canh (getreal "\nNhap chieu dai canh : "))
 (setq tendiem (getstring "Nhap ten diem : "))
 (setq goc2 (dpgtod goc))
 (setq goc1 (/ (* goc2 pi) 180))
 (setq gocbang (- (* 2 pi) goc1))
 (setq gocbang (+ gocbang (angle diemgoc diemdh)))
 (setq x1 (nth 0 diemgoc))
 (setq y1 (nth 1 diemgoc))
 (setq x2 (nth 0 diemdh))
 (setq y2 (nth 1 diemdh))
 (setq x3 (+ x1 (* canh (cos gocbang))))
 (setq y3 (+ y1 (* canh (sin gocbang))))
 (setq td3 (list x3 y3))
 (command "-layer" "s" "point" "")
 (command "point" td3)
 (command "-layer" "s" "veluoi" "")
 (command "line" diemgoc td3 "")
 (command "-layer" "s" "text" "")
 (command "-style" "mota" "txt.shx" 2 "1" "0" "n" "n" "n")
 (command "text" td3 "" tendiem)
 (kthuc)
)
------------------------------------------------------------------------------------
; CHUONG TRINH LAY TOA DO 1 DIEM SAP XEP THEO X : Y : Z XUAT TRANG TEXT
(defun C:TM (/ DIEM)
 (command "osnap" "endpoint")
 (setq DIEM (getpoint "Chon tram may can lay toa do"))
 (princ "\n TOA DO TRAM MAY:   ")
 (princ (rtos (cadr DIEM) 2 3))
 (princ "  ")
 (princ (rtos (car DIEM) 2 3))
 (princ "  ")
 (princ (rtos (caddr DIEM) 2 3))
 (princ)
) 	;END DEFUN
---------------------------------------------------------------------------------------[/size][/font]

[font=Arial][size=2]

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Hề hề hề,

1/- Nếu bạn muốn có lisp mới thì hãy làm như bác ketxu nói. Gửi bản vẽ đầu vào và đầu ra lên, may ra có người giúp được bạn.

2/- Nếu vẫn muốn xài đồ cũ thì đơn giản chỉ là bạn biến các đoạn code cũ thành các function con rồi nhét chung nó vào một lệnh là được.

Tỷ như đoạn code:

 

(defun c:cb (/ ch i FN FD sosanh j trammay

ccmay tramdh ccguong canhng hm hg goctd

canhb gocdung cd dem tam

)

(setq

FN (getfiled "NhËp file nguån : "

""

""

4

)

)

(setq i (strlen FN))

(setq ch "")

(while (/= ch "\\")

(setq ch (substr FN i 1))

(setq i (- i 1))

)

(setq xuat (substr FN 1 (+ i 1)))

(setq FD (getstring "Nhap ten file ket qua : "))

(setq FD (strcat xuat FD))

(setq FD (open FD "w"))

; (setq mo (getreal "Nhap sai so MO cua may (giay) : "))

(if (= mo nil)

(progn (setq mo 0)

(princ "\n")

(princ " Lay MO=0")

(princ "\n")

)

)

(setq mo (/ mo 3600))

(setq FN (open FN "r"))

(while (and (setq PR (read-line FN)) (/= PR ""))

(progn

(setq i 1)

(setq sosanh "")

(setq ch "")

(while (/= ch " ")

(setq ch (substr PR i 1))

(setq i (+ i 1))

)

(setq sosanh (substr PR 1 (- i 2)))

(cond ((= sosanh "STN")

(progn

;///////////////////////lay ten tram may//////////

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq trammay (substr PR i (- j i 1)))

;//////////////////////lay chieu cao may/////////

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccmay (substr PR i (- j i 2)))

(write-line (strcat "TR " trammay) FD)

) ;end progn

) ;end cond1

((= sosanh "BS")

(progn

;///////////////////////lay ten tram dinh huong//////////

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq tramdh (substr PR i (- j i 1)))

;//////////////////////lay chieu cao guong/////////

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccguong (substr PR i (- j i 2)))

(setq tam "bs")

) ;end progn

) ;end cond2

((= sosanh "SD")

(progn

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (= ch " ")

(setq i j)

)

)

(setq gocbang (substr PR i (- j i 1)))

;///////////////////////////////

(setq i j)

(setq j (+ j 2))

(setq ch "")

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq goctd (substr PR i (- j i 1)))

;////////////////////////////////

(setq i j)

(setq j (+ j 2))

(setq ch " ")

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq canhng (substr PR i (- j i 1)))

;/////////////////////////////////////

(setq hg (atof ccguong))

(setq hm (atof ccmay))

(setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))

(setq gocdung (/ (* gocdung pi) 180))

(setq canhng (atof canhng))

(setq canhb (* canhng (cos gocdung)))

(setq h (+ (- hg hm) (* canhng (sin gocdung))))

(setq cd (strlen gocbang))

(setq i cd)

(setq dem 0)

(setq ch "")

(while (/= ch ".")

(setq ch (substr gocbang i 1))

(setq i (- i 1))

(setq dem (+ dem 1))

)

(if (= dem 6)

(setq gocbang (substr gocbang 1 (- cd 1)))

)

(if (= tam "bs")

(write-line

(strcat "DH "

(dd tramdh)

(dd gocbang)

" "

(rtos canhb 2 3)

)

FD

)

(write-line

(strcat (dd stt)

(dd gocbang)

" "

(rtos canhb 2 3)

)

FD

)

)

) ;end progn

) ;end cond3

((= sosanh "SS")

(progn

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq stt (substr PR i (- j i 1)))

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccguong (substr PR i (- j i 2)))

(setq tam "ss")

) ;end progn

) ;end cond4

)

) ;end progn

) ;end while

(close FN)

(close FD)

(princ "\n")

(princ "\nOK!")

(princ)

)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bạn hãy thử làm như sau:

a/- bỏ các ký tự c: phía sau defun đi dể thành:

 

(defun cb (/ ch i FN FD sosanh j trammay

ccmay tramdh ccguong canhng hm hg goctd

canhb gocdung cd dem tam

)

(setq

FN (getfiled "NhËp file nguån : "

""

""

4

)

)

(setq i (strlen FN))

(setq ch "")

(while (/= ch "\\")

(setq ch (substr FN i 1))

(setq i (- i 1))

)

(setq xuat (substr FN 1 (+ i 1)))

(setq FD (getstring "Nhap ten file ket qua : "))

(setq FD (strcat xuat FD))

(setq FD (open FD "w"))

; (setq mo (getreal "Nhap sai so MO cua may (giay) : "))

(if (= mo nil)

(progn (setq mo 0)

(princ "\n")

(princ " Lay MO=0")

(princ "\n")

)

)

(setq mo (/ mo 3600))

(setq FN (open FN "r"))

(while (and (setq PR (read-line FN)) (/= PR ""))

(progn

(setq i 1)

(setq sosanh "")

(setq ch "")

(while (/= ch " ")

(setq ch (substr PR i 1))

(setq i (+ i 1))

)

(setq sosanh (substr PR 1 (- i 2)))

(cond ((= sosanh "STN")

(progn

;///////////////////////lay ten tram may//////////

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq trammay (substr PR i (- j i 1)))

;//////////////////////lay chieu cao may/////////

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccmay (substr PR i (- j i 2)))

(write-line (strcat "TR " trammay) FD)

) ;end progn

) ;end cond1

((= sosanh "BS")

(progn

;///////////////////////lay ten tram dinh huong//////////

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq tramdh (substr PR i (- j i 1)))

;//////////////////////lay chieu cao guong/////////

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccguong (substr PR i (- j i 2)))

(setq tam "bs")

) ;end progn

) ;end cond2

((= sosanh "SD")

(progn

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (= ch " ")

(setq i j)

)

)

(setq gocbang (substr PR i (- j i 1)))

;///////////////////////////////

(setq i j)

(setq j (+ j 2))

(setq ch "")

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq goctd (substr PR i (- j i 1)))

;////////////////////////////////

(setq i j)

(setq j (+ j 2))

(setq ch " ")

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq canhng (substr PR i (- j i 1)))

;/////////////////////////////////////

(setq hg (atof ccguong))

(setq hm (atof ccmay))

(setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))

(setq gocdung (/ (* gocdung pi) 180))

(setq canhng (atof canhng))

(setq canhb (* canhng (cos gocdung)))

(setq h (+ (- hg hm) (* canhng (sin gocdung))))

(setq cd (strlen gocbang))

(setq i cd)

(setq dem 0)

(setq ch "")

(while (/= ch ".")

(setq ch (substr gocbang i 1))

(setq i (- i 1))

(setq dem (+ dem 1))

)

(if (= dem 6)

(setq gocbang (substr gocbang 1 (- cd 1)))

)

(if (= tam "bs")

(write-line

(strcat "DH "

(dd tramdh)

(dd gocbang)

" "

(rtos canhb 2 3)

)

FD

)

(write-line

(strcat (dd stt)

(dd gocbang)

" "

(rtos canhb 2 3)

)

FD

)

)

) ;end progn

) ;end cond3

((= sosanh "SS")

(progn

(setq j i)

(while (/= ch ",")

(setq ch (substr PR j 1))

(setq j (+ j 1))

(if (or (= ch "`") (= ch " "))

(setq i j)

)

)

(setq stt (substr PR i (- j i 1)))

(setq i j)

(while (/= ch "")

(setq ch (substr PR j 1))

(setq j (+ j 1))

)

(setq ccguong (substr PR i (- j i 2)))

(setq tam "ss")

) ;end progn

) ;end cond4

)

) ;end progn

) ;end while

(close FN)

(close FD)

(princ "\n")

(princ "\nOK!")

(princ)

)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sau đó gõ thêm các dòng code sau đây và load chạy thủ xem có khác gì không nhé.

(defun c:test ()

(cb)

)

 

3/- Nếu bạn thấy nó Ok thì cứ bổn cũ soạn lại với các đoạn code lệnh còn lại và nhét chung nó vào trong hàm C:test là sẽ có cái lệnh test chạy tất cả các hàm con của bạn thôi.

 

Chúc thành công

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bác ketxu và phanthanhbinh đã quan tâm!

- Em dùng đoạn code gộp của bác phanthanhbinh nó vẫn chạy lisp nhưng khi lưu kết quả thì không có gì trong file vừa lưu!

- Em gửi file solieu thô khi trút từ máy đo, solieu đã chế biến sơ và solieu sau khi phun điểm tạm để vẽ lưới lấy tọa độ lưu vào file đã xử lý rồi phun ra điểm mia địa chính (Kèm theo bản vẽ sau khi xử lý xong)

Rất cần các anh em giúp đỡ để có thể thực hiện 1 công đoạn cho ra bản vẽ 1!http://www.cadviet.com/upfiles/3/89068_banve.rar

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bước 2 và 5 giống nhau hả bạn :mellow:

Theo bác Bình dạy thì bạn cứ soạn file (k cần sửa tên nhé)

(defun c:chay()

 

 

(c:cb) ;1

(c:pdm) ;2

(c:vl) ;3

(c:tm) ;4

(c:pdm) ;5

)

 

rồi copy tất cả các mã vào trong file này => load + chạy lệnh chay

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bác ketxu và phanthanhbinh đã quan tâm!

- Em dùng đoạn code gộp của bác phanthanhbinh nó vẫn chạy lisp nhưng khi lưu kết quả thì không có gì trong file vừa lưu!

- Em gửi file solieu thô khi trút từ máy đo, solieu đã chế biến sơ và solieu sau khi phun điểm tạm để vẽ lưới lấy tọa độ lưu vào file đã xử lý rồi phun ra điểm mia địa chính (Kèm theo bản vẽ sau khi xử lý xong)

Rất cần các anh em giúp đỡ để có thể thực hiện 1 công đoạn cho ra bản vẽ 1!http://www.cadviet.c...89068_banve.rar

 

Cảm ơn bác ketxu và phanthanhbinh đã quan tâm!

- Em dùng đoạn code gộp của bác phanthanhbinh nó vẫn chạy lisp nhưng khi lưu kết quả thì không có gì trong file vừa lưu!

- Em gửi file solieu thô khi trút từ máy đo, solieu đã chế biến sơ và solieu sau khi phun điểm tạm để vẽ lưới lấy tọa độ lưu vào file đã xử lý rồi phun ra điểm mia địa chính (Kèm theo bản vẽ sau khi xử lý xong)

Rất cần các anh em giúp đỡ để có thể thực hiện 1 công đoạn cho ra bản vẽ 1!http://www.cadviet.c...89068_banve.rar

Hề hề hề,

Bạn dùng đoạn code của mình thì nó chả ra cái gì là đúng rùi, bởi vì mình chỉ làm ví dụ cho một lệnh của bạn . trong khi muốn ra cái gì thì bạn phải chạy tới 4-5 lệnh chi đó cơ mà.

Bạn phải áp dụng cách đó cho tất cả các lệnh của bạn và nhét nó vào chung trong một lệnh mới hy vọng có kết quả chứ,

Hãy đọc kỹ bài của mình và bác ketxu và làm thử coi sao nhé. Mình tin rằng nếu bạn làm đúng thì sẽ có cái lệnh chạy gộp mà không phải chạy riêng từng lệnh một như trước. Thực chất vẫn là sử dụng các lisp bạn đã post nên nếu nó không ra kết quả gì thì bạn cần check lại các lisp đã post.

Vì mình không phải dân chuyên ngành của bạn nên đọc nó cũng như mù dở, vậy nên chỉ có thể nói lý thuyết suông như vầy, mong bạn chớ chấp trách làm chi...

Hề hề hề,....

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh ketxu ơi, đúng là cái lisp của em nó có vấn để rồi. mấy bưa trước vẫn chạy vô tư, không hiểu sao gần đây chạy không được. không biết có con virut nào nó nhẩy vào can thiệp không nưa, anh giúp em sửa lỗi với.

nó bị lỗi như sau:

 

Command: cb

Nhap ten file ket qua : SOLIEUDAXULY.TXT

; error: no function definition: DPGTOD

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Không tìm thấy hàm DPGTOD

Bạn dùng chương trình search nội dung (defun DPGTOD để tìm nội dung hàm đó cho vào lisp của bạn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em thấy trong đó có đoạn : (setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))

search nội dung (defun DPGTOD để tìm nội dung hàm đó cho vào lisp cả trên diễn đàn và google mà không có hàm đó.

nếu anh có cho và sửa cho em với! :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Em thấy trong đó có đoạn : (setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))

search nội dung (defun DPGTOD để tìm nội dung hàm đó cho vào lisp cả trên diễn đàn và google mà không có hàm đó.

nếu anh có cho và sửa cho em với! :)

Hề hề hề.

1/- Các lisp trên bạn đã tùng chạy được trên máy của bạn hay chạy ở đâu??? Nếu chạy được ở đâu thì chứng tỏ trên máy đó có cái function dpgtod mà bạn bị thiếu. hãy tìm cái function này ngay trên cái máy đó chứ còn trên google hay trên diễn đàn thì mình e không thấy được đâu. Lý do là vì các lisp đó của bạn do người viết làm ra để sử dụng riêng cho một mục tiêu đã định chứ không hẳn là để public. Vậy nên các function có thể cũng được đặt theo cái hứng của người viết mà chỉ họ mới hiểu thôi. Trên các diễn đàn pulic thường ít có những của độc như vậy bạn ạ.

2/- Cứ theo như mình đoán thì cái function này là để chuyển đổi cái goctd thành một góc chi đó có liên quan tới việc tính toán gocdung. Do vậy bằng vào kinh nghiệm nghề nghiệp của bạn có thể suy luận ra được cái function này cần phải ra sao. Từ đó bạn thử viết lại nó và đem ra dùng thử xem có như ý không?

Do mình là dân ngoại ngạch nên chả hiểu gì về mối liên quan giữa biến gocdung và biến goctd cả. Vậy nên không thể giúp bạn hơn được, chỉ nói lên cái cách nghĩ của mình để bạn tham khảo thôi.

 

Chúc bạn thành công.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

oh đúng là phức tạp thật bác phamthanhbinh nhỉ. thực ra em cũng chẳng hiểu gì về lisp nhưng khi chuyển qua lĩnh vực đo đạc thì em thấy nó bổ trợ cho công việc khá tốt.

- anh bạn cùng làm đã cài cho em cái chương trình đó trước khi cái máy của em bị virut và phải cài lại. bầy giờ anh đó đã chuyển công tác và em thì không liên hệ được với anh đó.

- em cần cái lisp nào có thể giải quyết được công việc của em nó đơn giản hơn mà dễ sử dụng theo số liệu em trút từ máy đo như lúc đầu em gửi.

nhờ các anh em giúp em với.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em tìm thấy hàm (defun DPGTOD rồi nhưng vẫn không được vậy bác ketxu nhỉ?

	;******\\\\\\\\\**chuong trinh che bien cho may TOPCON 223*********\\\\\\\\\\\\\\*********////////
	;khong dung chenh cao, chi su dung de thanh lap ban do dia chinh
(defun c:chay()
(c:cb) ;1
(c:pdm) ;2
(c:vl) ;3
(c:tm) ;4
(c:pdm) ;5
)
(defun c:cb (/ ch i FN FD sosanh j trammay
ccmay tramdh ccguong canhng hm hg goctd
canhb gocdung cd dem tam
)
(setq
FN (getfiled "NhËp file nguån : "
""
""
4
)
)
(setq i (strlen FN))
(setq ch "")
(while (/= ch "\\")
(setq ch (substr FN i 1))
(setq i (- i 1))
)
(setq xuat (substr FN 1 (+ i 1)))
(setq FD (strcat (getstring "Nhap ten file ket qua  (khong can .txt): ") ".txt" ) )
(setq FD (strcat xuat FD))
(setq FD (open FD "w"))
; (setq mo (getreal "Nhap sai so MO cua may (giay) : "))
(if (= mo nil)
(progn (setq mo 0)
(princ "\n")
(princ " Lay MO=0")
(princ "\n")
)
)
(setq mo (/ mo 3600))
(setq FN (open FN "r"))
(while (and (setq PR (read-line FN)) (/= PR ""))
(progn
(setq i 1)
(setq sosanh "")
(setq ch "")
(while (/= ch " ")
(setq ch (substr PR i 1))
(setq i (+ i 1))
)
(setq sosanh (substr PR 1 (- i 2)))
(cond ((= sosanh "STN")
(progn
;///////////////////////lay ten tram may//////////
(setq j i)
(while (/= ch ",")
(setq ch (substr PR j 1))
(setq j (+ j 1))
(if (or (= ch "`") (= ch " "))
(setq i j)
)
)
(setq trammay (substr PR i (- j i 1)))
;//////////////////////lay chieu cao may/////////
(setq i j)
(while (/= ch "")
(setq ch (substr PR j 1))
(setq j (+ j 1))
)
(setq ccmay (substr PR i (- j i 2)))
(write-line (strcat "TR " trammay) FD)
) ;end progn
) ;end cond1
((= sosanh "BS")
(progn
;///////////////////////lay ten tram dinh huong//////////
(setq j i)
(while (/= ch ",")
(setq ch (substr PR j 1))
(setq j (+ j 1))
(if (or (= ch "`") (= ch " "))
(setq i j)
)
)
(setq tramdh (substr PR i (- j i 1)))
;//////////////////////lay chieu cao guong/////////
(setq i j)
(while (/= ch "")
(setq ch (substr PR j 1))
(setq j (+ j 1))
)
(setq ccguong (substr PR i (- j i 2)))
(setq tam "bs")
) ;end progn
) ;end cond2
((= sosanh "SD")
(progn
(setq j i)
(while (/= ch ",")
(setq ch (substr PR j 1))
(setq j (+ j 1))
(if (= ch " ")
(setq i j)
)
)
(setq gocbang (substr PR i (- j i 1)))
;///////////////////////////////
(setq i j)
(setq j (+ j 2))
(setq ch "")
(while (/= ch ",")
(setq ch (substr PR j 1))
(setq j (+ j 1))
)
(setq goctd (substr PR i (- j i 1)))
;////////////////////////////////
(setq i j)
(setq j (+ j 2))
(setq ch " ")
(while (/= ch "")
(setq ch (substr PR j 1))
(setq j (+ j 1))
)
(setq canhng (substr PR i (- j i 1)))
;/////////////////////////////////////
(setq hg (atof ccguong))
(setq hm (atof ccmay))
(setq gocdung (- (- 90.0 (dpgtod (atof goctd))) mo))
(setq gocdung (/ (* gocdung pi) 180))
(setq canhng (atof canhng))
(setq canhb (* canhng (cos gocdung)))
(setq h (+ (- hg hm) (* canhng (sin gocdung))))
(setq cd (strlen gocbang))
(setq i cd)
(setq dem 0)
(setq ch "")
(while (/= ch ".")
(setq ch (substr gocbang i 1))
(setq i (- i 1))
(setq dem (+ dem 1))
)
(if (= dem 6)
(setq gocbang (substr gocbang 1 (- cd 1)))
)
(if (= tam "bs")
(write-line
(strcat "DH "
(dd tramdh)
(dd gocbang)
" "
(rtos canhb 2 3)
)
FD
)
(write-line
(strcat (dd stt)
(dd gocbang)
" "
(rtos canhb 2 3)
)
FD
)
)
) ;end progn
) ;end cond3
((= sosanh "SS")
(progn
(setq j i)
(while (/= ch ",")
(setq ch (substr PR j 1))
(setq j (+ j 1))
(if (or (= ch "`") (= ch " "))
(setq i j)
)
)
(setq stt (substr PR i (- j i 1)))
(setq i j)
(while (/= ch "")
(setq ch (substr PR j 1))
(setq j (+ j 1))
)
(setq ccguong (substr PR i (- j i 2)))
(setq tam "ss")
) ;end progn
) ;end cond4
)
) ;end progn
) ;end while
(close FN)
(close FD)
(princ "\n")
(princ "\nOK!")
(princ)
)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------
;******chuong trinh phun diem mia cho file duoc che bien tu may TOPCON 223**********
	;          	DUNG CHO BAN DO DIA CHINH 	*
	;* TR  DCII-04  1014424.593 516275.846       	*
	;* TR  DCII-07  1014339.861 516213.914       	*
	;* TR  DCII-03  1014491.054  516180.297        	*
	;* TR  DCII-06  1014670.141  516433.592         	*
	;* TR  DCTI-04       	*
	;* DH  DCII-03         	*
	;* 1    	355.1447 	66.896        	*
	;* 2    	355.1519 	47.576         	*
	;* 3    	1.4545   	48.375        	*
	;************************************************************************
(defun c:pdm (/    	tam ms  PR   FN	thunhat
  	tentram  caodotram  xtram   ytram	htram
  	tentrammay tendh
 	)
 (bdau)
 (setq tam ())
 (setq ms (getreal "Nhap vao mau so ty le : "))
 (setq
FN (getfiled "NhËp file nguån : "
  ""
  ""
  4
  	)
 )
 (progn
(command "-osnap" "")
(setvar "cmdecho" 0)
(setvar "luprec" 8)
(setvar "pdmode" 0)
(command "-layer" "m" "diem" "c" "red" "" "")
;	(command "-layer" "m" "caodo" "c" "cyan" "" "")
(command "-layer" "m" "sothutu" "c" "magenta" "" "")
(command "-layer" "m" "khongche" "c" "red" "" "")
(setq st (/ ms 1000))
(setq st1 st)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
(setq FN (open FN "r"))
(while (and (setq PR (read-line FN)) (/= PR ""))
 	(progn
(setq PR (strcat "(" PR ")"))
(setq PR (read PR))
(setq thunhat (nth 0 PR))
(if
  (numberp thunhat)
(gapsoA)
(gaptramA)
)
 	) 	;end progn
) 	;end while
 ) 	;end progn
;;;;;ket thuc viet lenh
 (close FN)
 (command "zoom" "e")
 (kthuc)
 (princ "\nVAY LA XONG!)*****")
 (princ)
)
(defun gaptramA (/ x y)
 (setq thunhat (convtostr thunhat))
 (if (= thunhat "TR")
(progn
 	(setq ktra (nth 3 PR))
 	(if (/= ktra nil) ;GAP TRAM CHUA TOA DO GOC
(progn
  (setq tentram (convtostr (nth 1 PR)))
  (setq Y (nth 2 PR))
  (setq X ktra)
;   (setq h (nth 4 PR))
  (setq tam (append tam (list (list tentram x y ))))
)   ;GAP TRAM DO THUC TE
(progn
  (setq tentrammay (convtostr (nth 1 PR)))
;   (if (/= (nth 2 PR) nil)
; 	(setq caodotram (nth 2 PR))
; 	(setq caodotram 0)
;   )
  (laytdgoc tentrammay)
  (setq tdtram1 (list (+ xtram (* 2 st)) ytram ))
  (setq xxtram xtram)
  (setq yytram ytram)
  (setq tdtram (list xtram ytram))
  (command "-layer" "s" "khongche" "")
;(command "point" tdtram)
  (command "insert" "cdkc" tdtram st st "")
  (setq sss (strlen tentrammay))
  (setq tdtram2 (list (+ xtram (* 2 st) );(* (/ sss 2) st))
    	(- ytram (* 0.65 st))       
  )
  )
;   (command "insert"
; 	"l"
; 	tdtram1
; 	(* st sss)
; 	(* st sss)
; 	""
;   )
  (command "-style"
	"mota"
	"txt.shx"
	st
	"1"
	"0"
	"n"
	"n"
	"n"
  )
  (command "text" "j" "bl" tdtram1 "" tentrammay)
  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;   (command "-layer" "s" "khongche" "")
;   (command "text" "j" "tl" tdtram2 "" (rtos htram 2 2))
)
 	)
) 	;end progn
(if (= thunhat "DH")  ;else
 	(progn
(setq tendh (convtostr (nth 1 PR)))
(laytdgoc tendh)
(setq tddh (list xtram ytram ))
(setq tddh1 (list (+ xtram (* 2 st)) ytram ))
(command "-layer" "s" "khongche" "")
(command "insert" "cdkc" tddh st st "")
;(command "point" tddh)
(setq sss (strlen tendh))
(setq tddh2 (list (+ xtram (* 2 st)); (* (/ sss 2) st))
	(- ytram (* 0.65 st))    
 	)
)
;(command "insert"
;  "l"
;  tddh1
;  (* st sss)
;  (* st sss)
;  ""
;)
(command "-style"
  "mota"
  "txt.shx"
  st
  "1"
  "0"
  "n"
  "n"
  "n"
)
(command "text" "j" "bl" tddh1 "" tendh)
(command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
; (command "-layer" "s" "khongche" "")
; (command "text" "j" "tl" tddh2 "" (rtos htram 2 1))
 	)
)
 )
)
(defun gapsoA (/ gocbang kc goctd tdx tdy tdz td dentah)
 (setq gocbang (nth 1 PR))
 (setq kc (nth 2 PR))
;  (setq dentah (nth 3 PR))
 (setq gocbang (dpgtod gocbang))
 (setq gocbang (- 360 gocbang))
 (setq gocbang (+ (/ (* gocbang pi) 180) (angle tdtram tddh)))
 (setq tdX (+ xxtram (* kc (cos gocbang))))
 (setq tdY (+ yytram (* kc (sin gocbang))))
;  (if (/= dentah nil)
;	(setq tdz (+ caodotram (nth 2 tdtram) dentah))
;	(setq tdz 0)
;  )
 (setq td (list tdx tdy))
 (setq td1 (list (+ tdx (* 0.5 st)) (+ tdy (* 0.3 st)) ))
 (setq td2 (list (+ tdx (* 0.5 st)) (- tdy (* 0.3 st)) ))
 (command "-layer" "s" "diem" "")
 ;(command "insert" "cdc" td st st "")
 (command "point" td)
 (command "-style"
"mota"
"txt.shx"
(* st 2)
"1"
"0"
"n"
"n"
"n"
 )
 (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
 (command "-layer" "s" "sothutu" "")
 (command "text" td "" thunhat)
;  (command "-style" "mota" "txt.shx" st1 "1" "0" "n" "n" "n")
;  (command "-layer" "s" "caodo" "")
;  (command "text" "tl" td "" (rtos tdz 2 1))
)
------------------------------------------------------------------------------------
chuong trinh tinh toa do diem dua vao goc va canh nhap vao
(defun c:vl ()	;/ diemgoc diemdh goc canh)
 (bdau)
 (command "-layer" "m" "veluoi" "c" "cyan" "" "")
 (command "-layer" "m" "point" "c" "red" "" "")
 (command "-layer" "m" "text" "c" "yellow" "" "")
 (setq diemgoc (getpoint "\nChon diem goc : "))
 (setq diemdh (getpoint "\nChon diem dinh huong : "))
 (setq goc (getreal "\nNhap goc(do.phutgiay) : "))
 (setq canh (getreal "\nNhap chieu dai canh : "))
 (setq tendiem (getstring "Nhap ten diem : "))
 (setq goc2 (dpgtod goc))
 (setq goc1 (/ (* goc2 pi) 180))
 (setq gocbang (- (* 2 pi) goc1))
 (setq gocbang (+ gocbang (angle diemgoc diemdh)))
 (setq x1 (nth 0 diemgoc))
 (setq y1 (nth 1 diemgoc))
 (setq x2 (nth 0 diemdh))
 (setq y2 (nth 1 diemdh))
 (setq x3 (+ x1 (* canh (cos gocbang))))
 (setq y3 (+ y1 (* canh (sin gocbang))))
 (setq td3 (list x3 y3))
 (command "-layer" "s" "point" "")
 (command "point" td3)
 (command "-layer" "s" "veluoi" "")
 (command "line" diemgoc td3 "")
 (command "-layer" "s" "text" "")
 (command "-style" "mota" "txt.shx" 2 "1" "0" "n" "n" "n")
 (command "text" td3 "" tendiem)
 (kthuc)
)
------------------------------------------------------------------------------------
; CHUONG TRINH LAY TOA DO 1 DIEM SAP XEP THEO X : Y : Z XUAT TRANG TEXT
(defun C:TM (/ DIEM)
 (command "osnap" "endpoint")
 (setq DIEM (getpoint "Chon tram may can lay toa do"))
 (princ "\n TOA DO TRAM MAY:   ")
 (princ (rtos (cadr DIEM) 2 3))
 (princ "  ")
 (princ (rtos (car DIEM) 2 3))
 (princ "  ")
 (princ (rtos (caddr DIEM) 2 3))
 (princ)
) 	;END DEFUN
---------------------------------------------------------------------------------------
CHUONG TRINH CON:
---------------------------------------------------------------------------------------
(defun c:thuhoi (/ tenfile tenfile1 timfile dodaichuoi)
 (setq dodaichuoi (strlen (getvar "dwgname")))
 (setq tenfile1 (strcat (substr (getvar "dwgname") 1 (- dodaichuoi 3)) "xls"))
 (setq tenfile (strcat (getvar "dwgprefix") (getvar "dwgname")))
 (setq timfile (findfile (strcat (getvar "dwgprefix") tenfile1)))
 (if (/= timfile nil)
 	(vl-file-delete timfile)
 )
 ;(command "-eattext" "" "n" "n" "C:\\Program Files\\thuhoi.blk" "X" tenfile);Ghi file nhung bo bot vai cot
 (command "-eattext" "" "n" "n" "" "X" tenfile);Ghi file nhung khong bo bot cot
)
(defun laytdgoc (tentrammay / len i sosanh)
 (setq len (length tam))
 (setq i 0)
 (setq j 0)
 (while (< i len)
(progn
 	(setq sosanh (car (nth i tam)))
 	(if (= tentrammay sosanh)
(progn
  (setq j (+ j 1))
  (setq xtram (cadr (nth i tam)))
  (setq ytram (caddr (nth i tam)))
  (if (/= (cadddr (nth i tam)) nil)
	(setq htram (cadddr (nth i tam)))
	(setq htram 0.0)
  )
)
(progn
  (if (= j 0)
	(progn
  	(setq xtram 0)
  	(setq ytram 0)
  	(setq htram 0)
	)
  )
)
 	)
 	(setq i (+ i 1))
)
 )
)
(defun ConvtoStr (Sym)
 (setq ftemp "temp.tmp")
 (setq ftmp (open ftemp "w"))
 (princ Sym ftmp)
 (close ftmp)
 (setq ftmp (open ftemp "r"))
 (setq sym (read-line ftmp))
 (close ftmp)
 (princ sym)
)
(defun *error* (msg)
 (princ "\nerror:")
 (princ msg)
 (command "osmode" h "")
 (command "_.undo" "end")
 (command "clayer" clay)
 (command "u" "")
 (alert "  - - - - ha ha ha- - - -"
 )
 (setq *error* olderr)
 (princ)
)
(defun bdau ()
;(setq FNr "c:\\program files\\sr.txt")
;(setq FNr (open FNr "r"))
;(setq PRr (read-line FNr))
;(if (/= PRr "0909.446.887")
;(alert "VAY LA OK!"  )

;)
;(close FNr)
 (command "_.undo" "begin")
 (setq cmd (getvar "cmdecho"))
 (setq plwid (getvar "plinewid"))
 (setq elev (getvar "elevation"))
 (setq thick (getvar "thickness"))
 (setq hh (getvar "osmode"))
 (setq clay (getvar "clayer"))
)
(defun kthuc ()
 (command "plinewid" plwid)
 (command "elevation" elev)
 (command "thickness" thick)
 (command "osmode" hh)
 (command "_.undo" "end")
 (command "clayer" clay)
 (command "cmdecho" cmd)
)
(defun dpgtod (nhap / do phut giay)
 (setq do (fix nhap))
 (setq phut (fix (* (- nhap do) 100)))
 (setq giay (* (- (* (- nhap do) 100) phut) 100))
 (setq xuat (+ do (/ (* phut 1.0) 60) (/ giay 3600)))
)
(defun dtodpg (nhap / do phut giay)
 (setq do (fix nhap))
 (setq phut (fix (* (- nhap do) 60)))
 (setq giay (* (- (* (- nhap do) 60) phut) 60))
 (setq xuat (strcat (rtos do 2 0) "." (rtos phut 2 0) (rtos giay 2 0)))
)
(defun dd (nhap)
 (setq len (strlen nhap))
 (cond ((= len 1)  (setq xuat (strcat nhap "      	")))
((= len 2)  (setq xuat (strcat nhap "     	")))
((= len 3)  (setq xuat (strcat nhap "    	")))
((= len 4)  (setq xuat (strcat nhap "   	")))
((= len 5)  (setq xuat (strcat nhap "  	")))
((= len 6)  (setq xuat (strcat nhap " 	")))
((= len 7)  (setq xuat (strcat nhap "	")))
((= len 8)  (setq xuat (strcat nhap "   ")))
((= len 9)  (setq xuat (strcat nhap "  ")))
((= len 10) (setq xuat (strcat nhap " ")))
((= len 11) (setq xuat (strcat nhap "")))
; ((= len 12) (setq xuat (strcat nhap "     	")))
; ((= len 13) (setq xuat (strcat nhap "    	")))
; ((= len 14) (setq xuat (strcat nhap "   	")))
; ((= len 15) (setq xuat (strcat nhap "  	")))
; ((= len 16) (setq xuat (strcat nhap " 	")))
; ((= len 17) (setq xuat (strcat nhap "	")))
; ((= len 18) (setq xuat (strcat nhap "   ")))
; ((= len 19) (setq xuat (strcat nhap "  ")))
; ((= len 20) (setq xuat (strcat nhap " ")))
; ((= len 21) (setq xuat (strcat nhap "")))
 )
)
(defun dd1 (nhap)
 (setq len (strlen nhap))
 (cond ((= len 1)  (setq xuat (strcat nhap "                	")))
((= len 2)  (setq xuat (strcat nhap "               	")))
((= len 3)  (setq xuat (strcat nhap "              	")))
((= len 4)  (setq xuat (strcat nhap "             	")))
((= len 5)  (setq xuat (strcat nhap "            	")))
((= len 6)  (setq xuat (strcat nhap "           	")))
((= len 7)  (setq xuat (strcat nhap "          	")))
((= len 8)  (setq xuat (strcat nhap "         	")))
((= len 9)  (setq xuat (strcat nhap "        	")))
((= len 10) (setq xuat (strcat nhap "       	")))
((= len 11) (setq xuat (strcat nhap "      	")))
((= len 12) (setq xuat (strcat nhap "     	")))
((= len 13) (setq xuat (strcat nhap "    	")))
((= len 14) (setq xuat (strcat nhap "   	")))
((= len 15) (setq xuat (strcat nhap "  	")))
((= len 16) (setq xuat (strcat nhap " 	")))
((= len 17) (setq xuat (strcat nhap "	")))
((= len 18) (setq xuat (strcat nhap "   ")))
((= len 19) (setq xuat (strcat nhap "  ")))
((= len 20) (setq xuat (strcat nhap " ")))
((= len 21) (setq xuat (strcat nhap "")))
 )
)

 

KHI CHẠY ĐẾN BƯỚC PHUN ĐIỂM MIA THÌ NÓ HIỆN LÊN DÒNG NÀY LÀ SAO ANH NHỈ:

 

Command: chay

Nhap ten file ket qua (khong can .txt): hoanchinh

 

 

OK!Nhap vao mau so ty le : 200

Regenerating model.

TRA

error:bad argument type: numberp: nil

Requires an integer between 0 and 32767.

; error: An error has occurred inside the *error* functionFunction cancelled

 

Enter new value for OSMODE <0>:

NÓ KHÔNG PHUN ĐIỂM RA NGOÀI MÀN HÌNH ANH Ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em cũng chỉ xin từ anh cùng làm bưa trước, nhưng giờ anh chuyển đi về sài gòn rồi mà em thì không liên hệ được.

em mới đi làm lên không có kinh nghiệm gì cả, chỉ là cầm ghương cho máy anh đứng máy đọc. em rất muốn được làm thoăn thoắt như máy anh sử lý trên máy tinh, nhưng toàn phải học lỏm thôi!

hay anh giúp em được không a? em biết anh không có nhiều thời gian cho nội dung của em nhưng em rất cảm kích khi anh quan tâm đến vấn đề nhỏ mà to với em!

có file số liệu thô trút từ máy đo làm thế nào để xử lý phun điểm mia ra màn hình 1 cách nhanh nhất được anh nhỉ (ngoài cách em đã hỏi) anh có thể giúp được em chứ? em rất trân thành cảm ơn anh!

đây là file số liệu trút từ máy đo topcom:

http://www.cadviet.com/upfiles/3/89068_solieutho.txt

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em cũng chỉ xin từ anh cùng làm bưa trước, nhưng giờ anh chuyển đi về sài gòn rồi mà em thì không liên hệ được.

em mới đi làm lên không có kinh nghiệm gì cả, chỉ là cầm ghương cho máy anh đứng máy đọc. em rất muốn được làm thoăn thoắt như máy anh sử lý trên máy tinh, nhưng toàn phải học lỏm thôi!

hay anh giúp em được không a? em biết anh không có nhiều thời gian cho nội dung của em nhưng em rất cảm kích khi anh quan tâm đến vấn đề nhỏ mà to với em!

có file số liệu thô trút từ máy đo làm thế nào để xử lý phun điểm mia ra màn hình 1 cách nhanh nhất được anh nhỉ (ngoài cách em đã hỏi) anh có thể giúp được em chứ? em rất trân thành cảm ơn anh!

đây là file số liệu trút từ máy đo topcom:

http://www.cadviet.c...8_solieutho.txt

Dưới đây là trích 1 đoạn trong file *.txt của bạn:

STN A,1.435

BS 1,1.500

SD 51.03490,102.36530,2.7350

SS 2,1.500

SD 71.47490,112.56090,1.4990

SS 3,1.500

Bây giờ bạn muốn xuất chỉ những giá trị SD (màu xanh) ra thành từng điểm trên Cad phải không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái vụ viết lisp tạo point tuừ file số liệu thì tin rằng cadviet mình nhiều người viết được nhưng vấn đề ở đây ko đơn giản như vậy. Mình là KTS thình thoảng có đi thực địa với các bác ấy nên có biết chút lý thuyết về công tác ngoại nghiệp và nọi nghiệp của các bác như sau.

-Trước tiên là lập lưới đường truyền, mổi nút là 1 trạm máy khoảng cách các nút tùy cấp địa hình hoặc độ che khuất tầm nhìn.

-Tại các trạm máy khi đo thì số liệu tính theo trạm máy đó.

-Thường lưới đường truyền sẽ được khép vòng tròn quay lại điểm đầu.

-Khi nhập số liệu vào máy căn cứ vào sơ đồ đường truyền và số liệu của từng trạm máy mà bắn point ra màn hình, còn có công tác bình sai, nghĩa là sau khi giáp vòng và cao độ 2 trạm máy bị lệch thì phải tinh chỉnh co phù hợp.

 

-Chưa kể điểm mia có nhiều loại: chỉ thể hiện cao độ tại điểm, vị trí cây, vị trí nhà, ranh giới đường .v.v. theo mổi loại người đứng máy cho nó 1 ký hiệu riêng khi bắn point lên cad còn phải thể hiện ký hiệu này nửa rồi tùy kiểu mà gắn block ký hiệu hoặc nối nét thành địa vật (căn cứ vào sơ họa hiện trường nửa).

 

-Công tác này cơ quan mình dùng gói TKK của hài hòa gói này hình như ko khóa làm tất tật các việc lên bản vẽ địa hình kể cả chạy đường đồng mức.

 

-Muốn từ bỏ vai trì đi mia để làm anh nội nghiệp thì bạn phải tự học sử dụng chương trình chuyên nghành. Nếu cq ko có mà muốn dùng lisp do người khác viết thì việc đầu tiên bạn phải dạy người ta cách làm thủ công người ta mới công nghiệp hóa nó cho bạn chứ bảo người ta tự học khâu thủ công xong công nghiệp hóa bạn chỉ việc ném số liệu vào thì tới già bạn cũng ko hiểu gì công việc của mình. Hay là ta cứ vác mia đi vậy.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái vụ viết lisp tạo point tuừ file số liệu thì tin rằng cadviet mình nhiều người viết được nhưng vấn đề ở đây ko đơn giản như vậy. Mình là KTS thình thoảng có đi thực địa với các bác ấy nên có biết chút lý thuyết về công tác ngoại nghiệp và nọi nghiệp của các bác như sau.

-Trước tiên là lập lưới đường truyền, mổi nút là 1 trạm máy khoảng cách các nút tùy cấp địa hình hoặc độ che khuất tầm nhìn.

-Tại các trạm máy khi đo thì số liệu tính theo trạm máy đó.

-Thường lưới đường truyền sẽ được khép vòng tròn quay lại điểm đầu.

-Khi nhập số liệu vào máy căn cứ vào sơ đồ đường truyền và số liệu của từng trạm máy mà bắn point ra màn hình, còn có công tác bình sai, nghĩa là sau khi giáp vòng và cao độ 2 trạm máy bị lệch thì phải tinh chỉnh co phù hợp.

 

-Công tác này cơ quan mình dùng gói TKK của hài hòa gói này hình như ko khóa làm tất tật các việc lên bản vẽ địa hình kể cả chạy đường đồng mức.

 

-Muốn từ bỏ vai trì đi mia để làm anh nội nghiệp thì bạn phải tự học sử dụng chương trình chuyên nghành. Nếu cq ko có mà muốn dùng lisp do người khác viết thì việc đầu tiên bạn phải dạy người ta cách làm thủ công người ta mới công nghiệp hóa nó cho bạn chứ bảo người ta tự học khâu thủ công xong công nghiệp hóa bạn chỉ việc ném số liệu vào thì tới già bạn cũng ko hiểu gì công việc của mình. Hay là ta cứ vác mia đi vậy.

Hề! Hề! Hề!

Dân ngoại đạo nên hỏi vậy, té ra trật lất ý đồ của chủ topic rồi. Cái này là lỗi của... chủ topic vậy.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình cũng làm nghề Trắc Địa 1 thời gian rồi nhưng tôi thấy rất đơn giản. Đừng lơị dụng Autolisp quá nhiều. Vấn đề của chủ Topic đưa ra chỉ là xử lý tinh số liệu tinh và cho vào Cad. Nhiều thao tác trên Lisp nhiều quá dẫn đến sai mà ko tìm được đâu. Mình thích Excel. Sau đó cho vào Cad đơn giản. Mình là dân chính gốc chuyên ngành Địa Chính

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Trong nội dung trả lời #14 em chạy đoạn đầu của lisp: chay thấy ok. nó đã lưu ra 1 file do mình đặt tên là hoanchinh.txt (tức là file số liệu thô đã được chuyển thành các trạm máy, điểm mia ra góc và cạnh). đúng ra chương trình sẽ tiếp tục chạy và phun điểm mia ra màn hình nếu như file số liệu hoanchinh.txt nó được khai báo các trạm máy lên trên hoặc ít nhất 2 trạm máy thì nó sẽ phun điểm mia ra màn hình rồi. Nó sẽ phải có file số liệu hoanchinh.txt như sau:

TR A 1000.0000 1000.0000 (TR A và TR B phải khai báo ở trên đây nó mới hiểu và chạy)

TR B 1013.225 1000.000 (TR A và TR B có thể cho tọa độ giả định cũng được và nó mặc định luôn 2 trạm máy này ở trên đây khi lưu file hoanchinh.txt của các xử lý đo khác!)

TR A

DH B 359.5958 13.225

1 159.2151 12.830

2 173.3153 10.333

3 176.1120 7.545

4 160.0905 8.767

5 161.2952 6.784

6 287.2502 1.664

7 92.3453 1.446

8 9.0236 8.322

9 356.0835 8.282

10 348.2042 7.823

11 353.2437 13.805

12 267.2044 8.623

13 268.1017 12.724

14 263.1002 17.713

TR B

DH A 0.0000 13.225

15 57.1949 10.382

16 64.2908 14.114

17 79.5016 20.308

18 123.4920 7.380

19 139.5210 7.830

.................................

các anh có thể sửa giúp em trong cái lisp chế biến (CB) nó mặc định luôn dòng:

TR A 1000.0000 1000.0000

TR B 1200.0000 1000.0000

sau đó nó sẽ nối tiếp là các số liệu đo lưu bình thường là

 

TR A

DH B 359.5958 13.225

1 159.2151 12.830

2 173.3153 10.333

3 176.1120 7.545

4 160.0905 8.767

...............................

vậy coi như là số liệu đã ổn và phun ra màn hình!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Trong nội dung trả lời #14 em chạy đoạn đầu của lisp: chay thấy ok. nó đã lưu ra 1 file do mình đặt tên là hoanchinh.txt (tức là file số liệu thô đã được chuyển thành các trạm máy, điểm mia ra góc và cạnh). đúng ra chương trình sẽ tiếp tục chạy và phun điểm mia ra màn hình nếu như file số liệu hoanchinh.txt nó được khai báo các trạm máy lên trên hoặc ít nhất 2 trạm máy thì nó sẽ phun điểm mia ra màn hình rồi. Nó sẽ phải có file số liệu hoanchinh.txt như sau:

TR A 1000.0000 1000.0000 (TR A và TR B phải khai báo ở trên đây nó mới hiểu và chạy)

TR B 1013.225 1000.000 (TR A và TR B có thể cho tọa độ giả định cũng được và nó mặc định luôn 2 trạm máy này ở trên đây khi lưu file hoanchinh.txt của các xử lý đo khác!)

TR A

DH B 359.5958 13.225

1 159.2151 12.830

2 173.3153 10.333

3 176.1120 7.545

4 160.0905 8.767

5 161.2952 6.784

6 287.2502 1.664

7 92.3453 1.446

8 9.0236 8.322

9 356.0835 8.282

10 348.2042 7.823

11 353.2437 13.805

12 267.2044 8.623

13 268.1017 12.724

14 263.1002 17.713

TR B

DH A 0.0000 13.225

15 57.1949 10.382

16 64.2908 14.114

17 79.5016 20.308

18 123.4920 7.380

19 139.5210 7.830

.................................

các anh có thể sửa giúp em trong cái lisp chế biến (CB) nó mặc định luôn dòng:

TR A 1000.0000 1000.0000

TR B 1200.0000 1000.0000

sau đó nó sẽ nối tiếp là các số liệu đo lưu bình thường là

 

TR A

DH B 359.5958 13.225

1 159.2151 12.830

2 173.3153 10.333

3 176.1120 7.545

4 160.0905 8.767

...............................

vậy coi như là số liệu đã ổn và phun ra màn hình!

Thế bạn có hiểu đc số liệu ở đây nó nói cái gì kg. Có nhiều cách để xử lý số liệu đo đạc và nhiều chương trình làm việc này với nhiều định dạng khác nhau. Nếu chưa hiểu, tốt nhất bạn nên làm việc với một người có kinh nghiệm và cố gắng học hỏi để tránh những sai lầm có thể xảy ra, Nếu hiểu rồi bạn có thể tìm những chương trình miễn phí phục vụ công việc này trên trang tracdiaviet.com và tracdiacongtrinh.com sau đó ứng dụng cho phù hợp với công việc của bạn.

Nếu chưa tìm đc chương trình tốt hơn hoặc bạn có thể tham khảo một đoạn CT ở đây để làm tạm (trang #14) :

http://www.cadviet.com/forum/index.php?showtopic=64807

Bạn cũng có thể sd chương trình sau để bình sai và xử lý số liệu trong khi chưa tìm đc chương trình tốt hơn (rất nhiều trên mạng) : http://www.cadviet.com/upfiles/3/37170_binhsai.rar

Để sd bạn phải có kiến thức tối thiểu về trắc địa mặc dù nó dể sd

Ghi chú : Bạn hãy đổi tên file ltd.e thành ltd.exe để chạy

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thế bạn có hiểu đc số liệu ở đây nó nói cái gì kg. Có nhiều cách để xử lý số liệu đo đạc và nhiều chương trình làm việc này với nhiều định dạng khác nhau. Nếu chưa hiểu, tốt nhất bạn nên làm việc với một người có kinh nghiệm và cố gắng học hỏi để tránh những sai lầm có thể xảy ra, Nếu hiểu rồi bạn có thể tìm những chương trình miễn phí phục vụ công việc này trên trang tracdiaviet.com và tracdiacongtrinh.com sau đó ứng dụng cho phù hợp với công việc của bạn.

Nếu chưa tìm đc chương trình tốt hơn hoặc bạn có thể tham khảo một đoạn CT ở đây để làm tạm (trang #14) :

http://www.cadviet.c...showtopic=64807

Bạn cũng có thể sd chương trình sau để bình sai và xử lý số liệu trong khi chưa tìm đc chương trình tốt hơn (rất nhiều trên mạng) : http://www.cadviet.c...170_binhsai.rar

Để sd bạn phải có kiến thức tối thiểu về trắc địa mặc dù nó dể sd

Ghi chú : Bạn hãy đổi tên file ltd.e thành ltd.exe để chạy

Cảm ơn bác TRUNGNGAMY em sẽ thử cách của bác!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.4shared.com/rar/7IqSKw8r/Survey_thanhduan2407.html?

Gửi tặng bạn dùng cái này để xử lý số liệu.

Giải nén và copy 2 file OCX vào C:\WINDOWS\system32

Chạy chương trình PrjMain

Bạn tìm hiểu các file số liệu đầu vào và đầu ra trong mẫu số liệu thử rồi xem cách thức.

Cái này lập trình chơi thôi.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×