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ị

http://www.4shared.c...nhduan2407.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.

bác thanhduan2407 ơi, sao em doaw về không được bác a! bác gửi lại giúp em với, cảm ơn bác nhiều!

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

;----------------------------------------------------------------------------
;;; COMMAND: RD
;;; This command read datafile & draw line with elevation
;;; Datafile structure : North East Height
;----------------------------------------------------------------------------
 (if (not ai_utils)(load "ai_utils"))  
 (if (not my_utils)(load "my_utils"))  
;----------------------------------------------------------------------------
(defun strltrim (s)
 (cond
((eq s "") s)
((or(= " " (substr s 1 1))(= " " (substr s 1 1))) s)
(t (strltrim (substr s 2)))
 )
)
(defun tabltrim (s)
 (cond
((eq s "") s)
((or(= " " (substr s 1 1))(= " " (substr s 1 1))) (tabltrim (substr s 2)))
(t s)
 )
)
;----------------------------------------------------------------------------        
;; Subfunction for change 1 data-line to list
 (defun linetopoint(line)
 	(setq y (read line)
       	line (tabltrim line)
       	line (strltrim line)
       	x (read line)
       	line (strltrim (tabltrim line))
       	z (read line)
 	)
 	(setq point (list x y z))
 )
;;;-----------------------------------------------
;; Subfunction for read data from 1 file and change to list
 (defun read_fs()
 	(setq dlist nil)
 	(setq datafile (GETFILED "TUAN - Select data-file " (GETVAR "dwgprefix") "*" 2))
 	(setq filename datafile)
 	(princ (strcat "\nPlease, wait!. READ & DRAW is reading data from " filename))
 	(if (setq f (open filename "r"))
     	(progn
         	(while (setq pl (read-line f))
				(setq p (linetopoint pl) dlist (cons p dlist))
         	)
         	(close f)
     	)
 	)
(reverse dlist)
 )
;---------------------------------------------------
;(defun C:van ( / li)
;   (rd nil)
;   (princ)
;)
(defun c:van ( / li n i li htext)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(Setq ts (tblsearch "STYLE" (GETVAR "TEXTSTYLE")))
(setq tsize (cdr(assoc '40 ts)))
(INITGET +3)
(if (= tsize 0)(setq h (getreal "\nHeigth of text :"))(setq h tsize))
(initget)
(setq tr (getreal "\nRotation of text <0>:"))
(if (= tr nil) (setq tr 0))
;-------------------------------------------
(initget "y n Y N")
(setq yn (getkword "\nDo you want to draw in 3D <y/n> ?<y>"))
(if (= yn nil)(setq yn "Y"))
(if (= (strcase yn) "N")(setq yn "N")(setq yn "Y"))
;-------------------------------------------
;(initget "y n Y N")
;(setq ynl (getkword "\nDo you want to connect each to other <y/n> ?<y>"))
;(if (= ynl nil)(setq ynl "Y"))
;(if (= (strcase ynl) "N")(setq ynl "N")(setq ynl "Y"))
;-------------------------------------------
;(initget "y n Y N")
;(setq ynd (getkword "\nDo you want to insert donut at each point <y/n> ?<y>"))
;(if (= ynd nil)(setq ynd "Y"))
;(if (= (strcase ynd) "N")(setq ynd "N")(setq ynd "Y"))
;-------------------------------------------
;(initget "y n Y N")
;(setq ynC (getkword "\nDo you want to insert coconut at each point <y/n> ?<y>"))
;(if (= ynC nil)(setq ynC "Y"))
;(if (= (strcase ynC) "N")(setq ynC "N")(setq ynC "Y"))
;-------------------------------------------
;(initget "y n Y N")
;(setq ynTD (getkword "\nDo you want to insert TD at each point <y/n> ?<y>"))
;(if (= ynTD nil)(setq ynTD "Y"))
;(if (= (strcase ynTD) "N")(setq ynTD "N")(setq ynTD "Y"))
;-------------------------------------------
;(initget "y n Y N")
;(setq ynCL (getkword "\nDo you want to insert CL at each point <y/n> ?<y>"))
;(if (= ynCL nil)(setq ynCL "Y"))
;(if (= (strcase ynCL) "N")(setq ynCL "N")(setq ynCL "Y"))
;-------------------------------------------
(setq tb (* h 0.50))
(setq li (read_fs) n (length li) i -1 ipold (list 0 0 0))
;(print li)
 	(ai_undo_on)                	; Turn UNDO on
 	(command "_.UNDO" "_GROUP")
(setq o_osmode (getvar "osmode"))
(setvar "osmode" 0)
;(COMMAND "insert" "DONUT" "0,0")
(command)
(repeat n
  (setq i (1+ i) ip (nth i li) htext (zrtos (last ip) 2))
(setq ip1 (list (car ip) (cadr ip) 0.00))
(setq zi (atof htext))
(cond
((and( > zi 1000)(< zi 2000))(command "insert" "bienbao" ip1 tb tb 0))
((and( > zi 2000)(< zi 3000))(command "insert" "buiram" ip1 tb tb 0))
((and( > zi 3000)(< zi 4000))(command "insert" "cayanqua" ip1 tb tb 0))
((and( > zi 4000)(< zi 5000))(command "insert" "caycothu" ip1 tb tb 0))
((and( > zi 5000)(< zi 6000))(command "insert" "caydua" ip1 tb tb 0))
((and( > zi 6000)(< zi 7000))(command "insert" "caylua" ip1 tb tb 0))
((and( > zi 7000)(< zi 8000))(command "insert" "caymia" ip1 tb tb 0))
((and( > zi 8000)(< zi 9000))(command "insert" "caynhon" ip1 tb tb 0))
((and( > zi 9000)(< zi 10000))(command "insert" "caythong" ip1 tb tb 0))
((and( > zi 10000)(< zi 11000))(command "insert" "caytre" ip1 tb tb 0))
((and( > zi 11000)(< zi 12000))(command "insert" "cocchuyen" ip1 tb tb 0))
((and( > zi 12000)(< zi 13000))(command "insert" "dadoclap" ip1 tb tb 0))
((and( > zi 13000)(< zi 14000))(command "insert" "g1" ip1 tb tb 0))
((and( > zi 14000)(< zi 15000))(command "insert" "g2" ip1 tb tb 0))
((and( > zi 15000)(< zi 16000))(command "insert" "g3" ip1 tb tb 0))
((and( > zi 16000)(< zi 17000))(command "insert" "g4" ip1 tb tb 0))
((and( > zi 17000)(< zi 18000))(command "insert" "g5" ip1 tb tb 0))
((and( > zi 18000)(< zi 19000))(command "insert" "gieng" ip1 tb tb 0))
((and( > zi 19000)(< zi 20000))(command "insert" "hoamau" ip1 tb tb 0))
((and( > zi 20000)(< zi 21000))(command "insert" "leduong" ip1 tb tb 0))
((and( > zi 21000)(< zi 22000))(command "insert" "moma" ip1 tb tb 0))
((and( > zi 22000)(< zi 23000))(command "insert" "rao" ip1 tb tb 0))
((and( > zi 23000)(< zi 24000))(command "insert" "raumau" ip1 tb tb 0))
((and( > zi 24000)(< zi 25000))(command "insert" "sl" ip1 tb tb 0))
((and( > zi 25000)(< zi 26000))(command "insert" "t1" ip1 tb tb 0))
((and( > zi 26000)(< zi 27000))(command "insert" "t2" ip1 tb tb 0))
((and( > zi 27000)(< zi 28000))(command "insert" "t3" ip1 tb tb 0))
((and( > zi 28000)(< zi 29000))(command "insert" "t4" ip1 tb tb 0))
((and( > zi 29000)(< zi 30000))(command "insert" "tuong" ip1 tb tb 0))
((and( > zi 30000)(< zi 31000))(command "insert" "tram" ip1 tb tb 0))
((and( > zi 31000)(< zi 32000))(command "insert" "trucaothe" ip1 tb tb 0))
((and( > zi 32000)(< zi 33000))(command "insert" "truco" ip1 tb tb 0))
((and( > zi 33000)(< zi 34000))(command "insert" "truden" ip1 tb tb 0))
((and( > zi 34000)(< zi 35000))(command "insert" "trudendoi" ip1 tb tb 0))
((and( > zi 35000)(< zi 36000))(command "insert" "trudien1" ip1 tb tb 0))
((and( > zi 36000)(< zi 37000))(command "insert" "truttin" ip1 tb tb 0))
((and( > zi 37000)(< zi 38000))(command "insert" "2tuong" ip1 tb tb 0))
((and( > zi 38000)(< zi 39000))(command "insert" "3tuong" ip1 tb tb 0))
((and( > zi 39000)(< zi 40000))(command "insert" "2rao" ip1 tb tb 0))
((and( > zi 40000)(< zi 41000))(command "insert" "3rao" ip1 tb tb 0))
((and( > zi 41000)(< zi 42000))(command "insert" "T1T2" ip1 tb tb 0))
((and( > zi 42000)(< zi 43000))(command "insert" "G1G2" ip1 tb tb 0))
((and( > zi 43000)(< zi 44000))(command "insert" "Cong" ip1 tb tb 0))
((and( > zi 44000)(< zi 45000))(command "insert" "Hangcay" ip1 tb tb 0))
((and( > zi 45000)(< zi 46000))(command "insert" "Ao" ip1 tb tb 0))
((and( > zi 46000)(< zi 47000))(command "insert" "Raokhac" ip1 tb tb 0))
((and( > zi 47000)(< zi 48000))(command "insert" "trudien2" ip1 tb tb 0))
((and( > zi 48000)(< zi 49000))(command "insert" "chanbc" ip1 tb tb 0))
((and( > zi 49000)(< zi 50000))(command "insert" "tuongkhac" ip1 tb tb 0))
((and( > zi 50000)(< zi 51000))(command "insert" "lekhac" ip1 tb tb 0))
)
  ;(setq ip (list (car ip) (cadr ip) 0)))
  ;(if (= ynl "Y")(if (> i 1)(command "line" ipold ip "")))
 ; (if (= ynd "Y")(command "insert" "donut" ip tb tb 0))
  ;(if (= ynC "Y")(command "insert" "coconut" ip tb tb 0))
  ;(if (= ynTD "Y")(command "insert" "TD" ip tb tb 0))
  ;(if (= ynCL "Y")(command "insert" "CL" ip tb tb 0))
(cond
((< zi 1000)(setq ri (- (atof htext) 00.0)))
((and( > zi 1000)(< zi 2000))(setq ri (- (atof htext) 1000.0)))
((and( > zi 2000)(< zi 3000))(setq ri (- (atof htext) 2000.0)))
((and( > zi 3000)(< zi 4000))(setq ri (- (atof htext) 3000.0)))
((and( > zi 4000)(< zi 5000))(setq ri (- (atof htext) 4000.0)))
((and( > zi 5000)(< zi 6000))(setq ri (- (atof htext) 5000.0)))
((and( > zi 6000)(< zi 7000))(setq ri (- (atof htext) 6000.0)))
((and( > zi 7000)(< zi 8000))(setq ri (- (atof htext) 7000.0)))
((and( > zi 8000)(< zi 9000))(setq ri (- (atof htext) 8000.0)))
((and( > zi 9000)(< zi 10000))(setq ri (- (atof htext) 9000.0)))
((and( > zi 10000)(< zi 11000))(setq ri (- (atof htext) 10000.0)))
((and( > zi 11000)(< zi 12000))(setq ri (- (atof htext) 11000.0)))
((and( > zi 12000)(< zi 13000))(setq ri (- (atof htext) 12000.0)))
((and( > zi 13000)(< zi 14000))(setq ri (- (atof htext) 13000.0)))
((and( > zi 14000)(< zi 15000))(setq ri (- (atof htext) 14000.0)))
((and( > zi 15000)(< zi 16000))(setq ri (- (atof htext) 15000.0)))
((and( > zi 16000)(< zi 17000))(setq ri (- (atof htext) 16000.0)))
((and( > zi 17000)(< zi 18000))(setq ri (- (atof htext) 17000.0)))
((and( > zi 18000)(< zi 19000))(setq ri (- (atof htext) 18000.0)))
((and( > zi 19000)(< zi 20000))(setq ri (- (atof htext) 19000.0)))
((and( > zi 20000)(< zi 21000))(setq ri (- (atof htext) 20000.0)))
((and( > zi 21000)(< zi 22000))(setq ri (- (atof htext) 21000.0)))
((and( > zi 22000)(< zi 23000))(setq ri (- (atof htext) 22000.0)))
((and( > zi 23000)(< zi 24000))(setq ri (- (atof htext) 23000.0)))
((and( > zi 24000)(< zi 25000))(setq ri (- (atof htext) 24000.0)))
((and( > zi 25000)(< zi 26000))(setq ri (- (atof htext) 25000.0)))
((and( > zi 26000)(< zi 27000))(setq ri (- (atof htext) 26000.0)))
((and( > zi 27000)(< zi 28000))(setq ri (- (atof htext) 27000.0)))
((and( > zi 28000)(< zi 29000))(setq ri (- (atof htext) 28000.0)))
((and( > zi 29000)(< zi 30000))(setq ri (- (atof htext) 29000.0)))
((and( > zi 30000)(< zi 31000))(setq ri (- (atof htext) 30000.0)))
((and( > zi 31000)(< zi 32000))(setq ri (- (atof htext) 31000.0)))
((and( > zi 32000)(< zi 33000))(setq ri (- (atof htext) 32000.0)))
((and( > zi 33000)(< zi 34000))(setq ri (- (atof htext) 33000.0)))
((and( > zi 34000)(< zi 35000))(setq ri (- (atof htext) 34000.0)))
((and( > zi 35000)(< zi 36000))(setq ri (- (atof htext) 35000.0)))
((and( > zi 36000)(< zi 37000))(setq ri (- (atof htext) 36000.0)))
((and( > zi 37000)(< zi 38000))(setq ri (- (atof htext) 37000.0)))
((and( > zi 38000)(< zi 39000))(setq ri (- (atof htext) 38000.0)))
((and( > zi 39000)(< zi 40000))(setq ri (- (atof htext) 39000.0)))
((and( > zi 40000)(< zi 41000))(setq ri (- (atof htext) 40000.0)))
((and( > zi 41000)(< zi 42000))(setq ri (- (atof htext) 41000.0)))
((and( > zi 42000)(< zi 43000))(setq ri (- (atof htext) 42000.0)))
((and( > zi 43000)(< zi 44000))(setq ri (- (atof htext) 43000.0)))
((and( > zi 44000)(< zi 45000))(setq ri (- (atof htext) 44000.0)))
((and( > zi 45000)(< zi 46000))(setq ri (- (atof htext) 45000.0)))
((and( > zi 46000)(< zi 47000))(setq ri (- (atof htext) 46000.0)))
((and( > zi 47000)(< zi 48000))(setq ri (- (atof htext) 47000.0)))
((and( > zi 48000)(< zi 49000))(setq ri (- (atof htext) 48000.0)))
((and( > zi 49000)(< zi 50000))(setq ri (- (atof htext) 49000.0)))
((and( > zi 50000)(< zi 51000))(setq ri (- (atof htext) 50000.0)))
)
(if (> (atof htext) 1000)(setq htext (zrtos ri  2)))
(if (= yn "N")(setq ip (list (car ip) (cadr ip) 0.00))(setq ip (list (car ip) (cadr ip) ri)))
  (print ip)
  (if (= tsize 0)
       	(COMMAND "text" "j" "c" ip h tr htext)
       	(COMMAND "text" "j" "c" ip tr htext)
  )
(command "insert" "donut" ip tb tb 0) ;(neu su dung YN donut thi xoa ca hang nay)
  ;(setq ipold ip)
)
(setvar "osmode" o_osmode)
(command "_.UNDO" "_E")
 	(ai_undo_off)
(princ "\nThank you for using this command")
(princ)
)
;;;--------------------------------------------------------------------------------
(princ "   READ & DRAW loaded.")
(princ )

 

 

 

 

 

 

Mình có lisp phun điểm này nhờ các Anh/Chị,sửa dùm với.

Lisp chạy tốt nhưng bị hạn chế là chỉ chạy được tới 99,xxx. Chỉ được 2 số nguyên tới 100,xxx là ko hiểu

Nhờ các Anh/ Chị sửa dùm

Lệnh: RD

chiều cao text:

Góc quay(0):

Do you want to draw in 3D (y/n)?

Thêm dòng này: Số thập phân :

 

copy lisp vào support của Cad và phải có dấu chấm vàng trong bản vẽ bên dưới thì lisp mới chạy được

Dưới đây là file TxT và file mẫu do lisp chạy đượchttp://www.cadviet.c...3751_text_1.dwg

http://www.cadviet.c...751_datlanh.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

mình đag học lsp thui sữa chưa nổi , nhưng mình thấy bạn đang cần mình có chương trình đơn giản dễ xài , xxxx điểm mia củng vô tư :D, nếu bạn quan tâm pm mình mình gửi cho ^^

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ó ai giúp dùm với.sao mãi chẳng thấy ai giúp dùm .

Hề hề hề,

Giúp hổng đượic vì bạn quá tiết kiệm, gửi lên cái lisp còn thiếu khá nhiều thứ, chạy hổng nổi thì biết lỗi thế nào???

1/- Không có hàm (zrtos .....)

2/- Không có "my_utils"

3/- Không có "ai-utils"

4/- .......

5/- ......

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 cái lisp của anh toiyeuviet nam rất đơn giản về cách thực hiện, nhờ các các anh giúp sửa giúp em để khi mình chỉ cần ghi tọa độ 2 điểm GPS1 và GPS2 như file số liệu em gửi kèm theo và phun điểm mia bằng gõ lệnh PDM -> nhập mẫu số tỉ lệ: gõ 1000 -> tìm file solieu -> là phun điểm mia ra giống như hình vẽ kèm theo được không ạ! Chỉ cần liệt kê tọa độ trạm máy và điểm định hướng (giống như dùng chương trình chitietwin của thầy Trần Trung Anh chỉ cần liệt kê tọa độ trạm máy và điểm định hướng là tự vẽ lưới các trạm trong khu đo).

mong các anh giúp em với nhé vì nếu thành công thì công đoạn sẽ đơn giản mà không phải phức tạp và nhiều file rác trong khâu xử lý số liệu nữa! cảm ơn các anh trước nhé!

------------------------------------------------------------------------------------------------------------------------------------------------------------------
;******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)
;  ""
<img src='http://www.cadviet.com/forum/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />
(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 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!"  )
   
<img src='http://www.cadviet.com/forum/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />
;(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 "")))
  )
)

file solieu và kết quả cần ra bản vẽ sau khi thực hiện xong


http://www.cadviet.com/upfiles/3/103752_file_solieu_goc_canh_va_san_pham_ban_ve_sau_phun_diem_mia.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

Em thấy cái lisp của anh toiyeuviet nam rất đơn giản về cách thực hiện, nhờ các các anh giúp sửa giúp em để khi mình chỉ cần ghi tọa độ 2 điểm GPS1 và GPS2 như file số liệu em gửi kèm theo và phun điểm mia bằng gõ lệnh PDM -> nhập mẫu số tỉ lệ: gõ 1000 -> tìm file solieu -> là phun điểm mia ra giống như hình vẽ kèm theo được không ạ! Chỉ cần liệt kê tọa độ trạm máy và điểm định hướng (giống như dùng chương trình chitietwin của thầy Trần Trung Anh chỉ cần liệt kê tọa độ trạm máy và điểm định hướng là tự vẽ lưới các trạm trong khu đo).

mong các anh giúp em với nhé vì nếu thành công thì công đoạn sẽ đơn giản mà không phải phức tạp và nhiều file rác trong khâu xử lý số liệu nữa! cảm ơn các anh trước nhé!

------------------------------------------------------------------------------------------------------------------------------------------------------------------
;******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)
;  ""
<img src='http://www.cadviet.com/forum/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />
(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 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!"  )
   
<img src='http://www.cadviet.com/forum/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' />
;(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 "")))
  )
)

file solieu và kết quả cần ra bản vẽ sau khi thực hiện xong

 

http://www.cadviet.com/upfiles/3/103752_file_solieu_goc_canh_va_san_pham_ban_ve_sau_phun_diem_mia.rar

Hề hề hề,

Xin lỗi bạn vì tò mò nhé.

Mình không rõ mối liên hệ giữa bảng số liệu bạn gửi với bản vẽ bạn gửi bạn ạ,

Nếu mình không nhầm thì bản vẽ bạn gửi được vẽ từ bảng số liệu khác vì mình kiểm tra tọa độ của hai điểm gprs1 và gprs2 thì chúng không giống với số liệu trong bảng của bạn. 

Nếu như bạn có hiệu chỉnh gì đó với các số liệu này thì mong bạn hãy giải thích cụ thể cách hiệu chỉnh đó.

Do mình không phải dân trắc đ5c hay bản đố nên thiệt tình không hiểu rõ cái bảng số liệu của bạn. Vì thế mình đoán mò rằng cột thứ nhất chỉ số thứ tự của điểm đo, cột thứ hai chỉ góc hợp thành giữa hai dường thẳng là đường nối từ điểm đo tới trạm GPRS2 và đường nối từ trạm GPRS2 tới trạm GPRS1. Cột thử 3 chỉ khoảng cách từ điểm đo tới trạm GPRS1.

Nếu đúng như vậy thì mình nghĩ có thể làm lisp được. 

Còn nếu không đúng mong bạn chớ giận và xin giải thích rõ mối tương quan giữa các số liệu đo với bản vẽ. Từ đó mình mới có hy vọng có thể làm lisp giúp bạn được.

Ngoài ra cái lưới tram mà bạn vẽ màu đỏ giữa các trạm GPRS1 GPRS2, P1 CP3, CP4 được thiết lập theo nguyên tắc nào, mong bạn giải thích rõ hơn mới có thể viết lisp được bạn ạ.

Chúc bạn vui.

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.cadviet.com/upfiles/3/103752_solieu.txtCảm ơn anh Binh quan đã tâm! đúng rồi do em sơ xuất dùng 2 file.

em gửi lại file solieu và em giải thích 1 chút:

- Bản vẽ là do em dùng chương trình chitietwin của thầy Trần Trung Anh.

- trong file solieu.txt gồm có cột 1 (STT) - cột 2 (góc đo) - cột 3 (canh đo); còn 2 dòng đầu GPS1 và 2 là em lấy tọa độ trên cơ sở em đo bằng máy GPS cầm tay và em nhập vào. còn 2 dòng GPS dưới là do em đặt máy đo định hướng về GPS2 và đọc cạnh (cái này có thể xóa khi em đã liệt kê 2 dòng tọa độ trên cùng).

- Lưới trạm máy có thể vẽ dựa trên cơ sở đo ở trạm máy nào có bắn cọc hoặc có góc bằng 0 thì nó sẽ hiểu và vẽ Line màu đỏ có Layer Trạm máy! 

P1 202.4614 172.014  ;;;(Ban coc phu P1)  hoặc

P1 0   ;;;(Tram may coc phu P1)  
GPS1 0 172.019

đây là file solieu em gửi lạ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

Các anh giúp em với nhé! em đã tìm hiểu cái lisp PDM ở trên muôn phun được thì phải liệt kê tọa độ các trạm máy lên trên cùng của file solieu. có cách nào chỉ cần liệt kê tọa độ 1 điểm trạm máy và điểm định hướng ban đầu là nó sẽ hiểu những trạm tiếp theo không 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

Các anh giúp em với nhé! em đã tìm hiểu cái lisp PDM ở trên muôn phun được thì phải liệt kê tọa độ các trạm máy lên trên cùng của file solieu. có cách nào chỉ cần liệt kê tọa độ 1 điểm trạm máy và điểm định hướng ban đầu là nó sẽ hiểu những trạm tiếp theo không nhỉ?

Hề hề hề,

Bạn dùng thử cái này coi sao nhé. Mình đã test trên file số liệu bạn gửi có chỉnh sửa một chút cho phù hợp với lisp và trên cái bản vẽ bạn gửi thì thấy rằng các điểm chưa hoàn toàn trùng nhau, nhưng có lẽ đó là do sai số khi bạn lấy điểm bằng thủ công.

Mình chưa giải quyết vấn đề layer cho các đối tượng mà mới chỉ làm cho các đối tượng có màu giống như bản vẽ bạn gửi. Về vấn đề này cũng không quá khó nữa nên mình chưa làm. Cách làm bạn có thể làm tương tự như với việc lấy màu. Nếu bạn muốn mình sẽ bổ sung sau.

Vấn đề chính là bạn xem cách fun mia này đã đúng với yêu cầu của bạn hay chưa mà thôi. Vì mình là dân ngoại ngạch nên chỉ đoán mò qua bản vẽ và file số liệu bạn gửi để làm lisp, do đó có thể chưa đạt được các yêu cầu về chuyên môn của bạn.

Mình gửi kèm ở đây cả file số liệu mà mình có chỉng sửa chút chút, cũng như file lisp để bạn test thử coi sao. File bản vẽ ứng với file số liệu này bạn đã có nên rất dễ so sánh kết quả. Nếu thấy chỗ nào chưa đạt thì cứ mạnh dạn post lên để mình học hỏi thêm và nếu được sẽ cố gắng chỉnh sửa cho nó đạt yêu cầu của bạn.

Chúc bạn vui.

http://www.cadviet.com/upfiles/3/5194_funmiadiahinh.lsp

http://www.cadviet.com/upfiles/3/5194_dulieudo1.txt

  • 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ách viết của ánh rất gon và đúng với ý của em, dễ sử dụng nữa! nhưng còn 1 chút nữa anh kiểm tra giúp em là góc của nó chưa được đúng thì phải:

- GPS1 định hướng về GPS2 và bắn cọc phụ P1 có góc là  202d46'14" nhưng nó lại thành 182d09'23"

- GPS2 định hướng về GPS1 và bắn cọc phụ P3 có góc là  318d50'09" nhưng nó lại thành 318d30'03"

                                                          + cọc phụ 4 có góc là 107d20'35" nhưng nó lại thành 107d12'13"

nếu tách được cá layer tram máy, điểm và tên điểm nữa thì tuyệt vời. cảm ơn anh đã giúp em rất nhiệt tình và có nhiều anh trắc địa đang theo rõi và đợi kết quả của anh để mót về dùng đấy! :)

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ách viết của ánh rất gon và đúng với ý của em, dễ sử dụng nữa! nhưng còn 1 chút nữa anh kiểm tra giúp em là góc của nó chưa được đúng thì phải:

- GPS1 định hướng về GPS2 và bắn cọc phụ P1 có góc là  202d46'14" nhưng nó lại thành 182d09'23"

- GPS2 định hướng về GPS1 và bắn cọc phụ P3 có góc là  318d50'09" nhưng nó lại thành 318d30'03"

                                                          + cọc phụ 4 có góc là 107d20'35" nhưng nó lại thành 107d12'13"

nếu tách được cá layer tram máy, điểm và tên điểm nữa thì tuyệt vời. cảm ơn anh đã giúp em rất nhiệt tình và có nhiều anh trắc địa đang theo rõi và đợi kết quả của anh để mót về dùng đấy! :)

Hề hề hề,

1/- Về việc sai góc độ: 

a/- Thông tin bạn nói không chính xác vì mình đã check lại, Điểm P1 không thể có góc định hướng nhỏ hơn 202 độ được vì không nhẽ lisp đọc nhầm.

b/- Cái sai lệch về góc này do mình hiểu nhầm cái bảng số liệu của bạn mà thôi. Bạn ghi là 202.4614 nên mình hiểu là 202.4614 độ tức là số đo độ theo hệ thập phân. Do vậy lisp nó sẽ hiểu rằng: 202độ + 0.4614 độ và kết quả sẽ là 202 + (0.4614 * 60) phút = 202độ 27 phút + (0.684 * 60) = 202 độ 27 phút 41 giây 06% giây.

Như vậy về cơ bản nó chỉ có thể sai ở phần thập phân chứ không thể sai ở phần nguyên của số đo góc này được.

c/- Như vậy sẽ cần một bước chuyển đổi từ số liệu đo của bạn thành số đo độ theo hệ thập phân để lisp có thể làm việc đúng.

Cách chuyển đổi này như sau:

Ví dụ: 202.4614 = 202 độ 46 phút 14 giây.= 202 độ +(((46 * 60) + 14)/3600) =202.77055555555~202.7706 độ.

Điều này thực ra không có gì khó khăn, chỉ là do mình dốt không hiểu cái bảng số liệu của bạn mà thôi. Nếu có thể bạn hãy tự sửa một chút ở chỗ này trong khi mình chưa sửa kịp để test nhé.

2/- Về việc tách lớp cho các tên điểm , điểm , layer trạm máy,.... như mình đã nói trong bài trước hoàn toàn không khó, nhưng mình muốn bạn cho biết rằng các layer này đã có sẵn trên bản vẽ của bạn hay chưa ??? Hay là phải tạo ra các layer này và nếu vậy các thuộc tính của các layer này bạn cần như thế nào ??? 

Bởi mình không thuộc chuyên môn của bạn nên nhiều khi làm ra cái bạn chả thích dùng thì cũng bằng thừa bạn ạ.

Thực ra mình cũng có thể tạo cái giống như trong bản vẽ của bạn gửi, song không biết đó có phải là cái chuẩn mực bạn cần hay không nên cứ phải hỏi trước cho nó lành bạn ạ.

Chúc bạn vui.

  • 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ác layer này sẽ tạo mới trong bản vẽ trắng, vì mở cad lên và gõ fmia tìm đến file solieu là nó tạo ra luôn các layer như sau:

- trạm máy có layer và màu số 1 (red)

- điểm có layer và màu số 4 (cyan)

- tên điểm có layer và màu số 7 (white)

anh không phải dân chuyên ngành nhưng quả thực ảnh rất cừ trong mấy cái lisp mà không dễ gì dân chuyên ngành có thể viết ngắn gọn và dễ thực hiện như anh!

rất nhiều người đang xem và đợi 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

các layer này sẽ tạo mới trong bản vẽ trắng, vì mở cad lên và gõ fmia tìm đến file solieu là nó tạo ra luôn các layer như sau:

- trạm máy có layer và màu số 1 (red)

- điểm có layer và màu số 4 (cyan)

- tên điểm có layer và màu số 7 (white)

anh không phải dân chuyên ngành nhưng quả thực ảnh rất cừ trong mấy cái lisp mà không dễ gì dân chuyên ngành có thể viết ngắn gọn và dễ thực hiện như anh!

rất nhiều người đang xem và đợi anh!

Hề hề hề,

Xem anh thì cũng chỉ thấy mồm ngang mũi dọc , tóc mọc trên đầu chứ có chi khác lạ đâu.

Một người đợi anh, anh đã chả còn biết linh hồn mình vãi nơi đâu huống chi là mọi người.......

Còn muốn xem và đợi lisp của anh thì nó đây nè:

http://www.cadviet.com/upfiles/3/5194_funmiadiahinh_1.lsp

Có một vài lưu ý khi sử dụng lisp này như sau:

1/- Lisp này dựa trên cấu trúc bảng số liệu đo như bạn đã gửi lên. Nếu ai đó sử dụng bảng dữ liệu đo có cấu trúch khác đi thì mình không đảm bảo lisp sẽ chạy ngon.

2/- Lisp này có bổ sung hàm con để chuyển đổi dữ liệu góc đo theo số liệu bạn gửi thành số liệu góc đo theo hệ thập phân của độ. Vậy nên trong trường hợp đã đổi số liệu đo sang hệ thập phân của độ trước đó thì lisp sẽ chạy ra kết quả không đúng (lệch góc một chút ở phần thập phân này)

3/- Lisp sẽ tạo các layer Trammay, Diem và Tendiem với các thuộc tinh mà bạn chỉ định nếu trên bản vẽ chưa có các layer này. nhu7ng nếu trên bản vẽ đã có các layer mang tên như vậy thì thuộc tính của chúng không hề thay đổi gì cả.

4/-  bạn hãy test thật cẩn thận nhé bởi mình đã test trên bản vẽ bạn gửi thì với lisp mới sửa này, các điểm phun ra hầu như trùng khớp hoàn toàn với bản vẽ cũ.

 

Hy vọng nó không làm bạn thất vọ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

Bác Phamthanhbinh nhiệt tình nhỉ

bác bớt chút thời gian xem hộ em Mục "Quay bản vẽ tronh hình chữ nhật ở layout" với

Hề hề hề,

Mình đã xem qua, nhưng thú thực là về cách sử dụng các hàm vla-.... đối với mình là hơi quá cao. Mình chưa hiểu hết chúng nên khó có thể chỉnh sửa được. 

Nếu bạn gửi bản vẽ thể hiện yêu cầu trước và sau khi dùng lisp thì có nhẽ mình sẽ dễ ngâm cứu hơn là ngồi đọc về các hàm vla- .... này trong khi kiến thức còn quá lùn về nó.

Rất mong bạn không trách.

  • 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 ơi, nó chạy có vẻ không ổn bằng lần gửi trước anh ạ!

nó chỉ chạy được 1 phần và không hiện số thứ tự mà hiên số 0 hết

em gửi ảnh và bản vẽ (em dùng file solieu như anh đã sửa ở trên cho thống nhất) anh coi lại giúp em nhé! cảm ơn anh rất nhiều về sự nhiệt tình!

http://www.cadviet.com/upfiles/3/103752_drawing.dwg103752_untitled.jpg

 

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ề,

Mình đã xem qua, nhưng thú thực là về cách sử dụng các hàm vla-.... đối với mình là hơi quá cao. Mình chưa hiểu hết chúng nên khó có thể chỉnh sửa được. 

Nếu bạn gửi bản vẽ thể hiện yêu cầu trước và sau khi dùng lisp thì có nhẽ mình sẽ dễ ngâm cứu hơn là ngồi đọc về các hàm vla- .... này trong khi kiến thức còn quá lùn về nó.

Rất mong bạn không trách.

Cám ơn bác nhé em đã nghiên cứu ra được rồ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

anh ơi, nó chạy có vẻ không ổn bằng lần gửi trước anh ạ!

nó chỉ chạy được 1 phần và không hiện số thứ tự mà hiên số 0 hết

em gửi ảnh và bản vẽ (em dùng file solieu như anh đã sửa ở trên cho thống nhất) anh coi lại giúp em nhé! cảm ơn anh rất nhiều về sự nhiệt tình!

http://www.cadviet.com/upfiles/3/103752_drawing.dwg

Hề hề hề,

Lỗi là do textstyle hiện hành trên bản vẽ của bạn có chiều cao text khác 0. Mình quên chưa check điều này.

Bạn có thể thử lại bằng cách đặt chiều cao text của style hiện hành về 0 bằng lệnh style trước khi chạy lisp

Hoặc là bạn chịu khó download lại lisp mình sửa bổ sung việc kiểm tra và setup lại chiều cao text của sytle hiện hành.

Hy vọng lisp sẽ không còn bị lỗi nữa.

http://www.cadviet.com/upfiles/3/5194_funmiadiahinh_2.lsp

  • 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

Bác Phạm Thanh Bình nhiệt tình thật đó. Là một người trong lĩnh vực Trắc Địa thì có lẽ em sẽ không viết Code đâu.

Hiện tại có rất nhiều phần mềm hữu ích được viết để xử lý số liệu Trắc Địa. 

Autolisp chủ yếu là xử lý trên nền đồ họa nên dùng Autolisp lập trình là rất tiện

Tuy nhiên việc xử lý số liệu trong Autolisp thì điều không nên, nên dùng VB để xử lý.

Mặt khác, chúng ta cũng không nên lạm dụng  ngôn ngữ lập trình nhiều quá. Có một số phần mềm dùng để xử lý số liệu Trắc Địa như DPSurvey....thì việc xử lý số liệu rất đơn giản và trực quan.

Số liệu đo đạc về được xử lý rất ngon lành, dễ dàng kiểm tra và tìm được cái sai trong quá trình đo đạc.

Mình chẳng PR phần mềm đó nhưng thấy việc phun điểm địa chính dùng Autolisp thì là không nên.

Ưu Autolisp (Ý chủ quan)

Dễ dàng quản lý, xuất nhập các đối tượng trong Autocad, tự động....

Nhược Autolisp:

Nếu xử lý số liệu thì không trực quan, khó kiểm tra số liệu, gây khó khăn cho người viết, khó tìm ra lỗi khi tệp đầu vào bị sai, chỉ với người hiểu chuyên ngành mới viết được (hoặc phải mô tả rất rõ người viết lisp mới viết dc).

 

Lời khuyên:

Bạn dùng DPSurvey để trút từ máy toàn đạc và máy tính, xử lý số liệu luôn trong đó, dễ dàng chuyển sang Autocad.

http://phanmemtracdia.com/

  • 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 Binh ơi, link không tải về được, anh gửi lại giúp em với nhé! em rất thích tính nhiệt tình của anh trong diễn đàn!

cảm ơn anh thanhduan, em sẽ tìm hiểu thêm!

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 Phạm Thanh Bình nhiệt tình thật đó. Là một người trong lĩnh vực Trắc Địa thì có lẽ em sẽ không viết Code đâu.

Hiện tại có rất nhiều phần mềm hữu ích được viết để xử lý số liệu Trắc Địa. 

Autolisp chủ yếu là xử lý trên nền đồ họa nên dùng Autolisp lập trình là rất tiện

Tuy nhiên việc xử lý số liệu trong Autolisp thì điều không nên, nên dùng VB để xử lý.

Mặt khác, chúng ta cũng không nên lạm dụng  ngôn ngữ lập trình nhiều quá. Có một số phần mềm dùng để xử lý số liệu Trắc Địa như DPSurvey....thì việc xử lý số liệu rất đơn giản và trực quan.

Số liệu đo đạc về được xử lý rất ngon lành, dễ dàng kiểm tra và tìm được cái sai trong quá trình đo đạc.

Mình chẳng PR phần mềm đó nhưng thấy việc phun điểm địa chính dùng Autolisp thì là không nên.

Ưu Autolisp (Ý chủ quan)

Dễ dàng quản lý, xuất nhập các đối tượng trong Autocad, tự động....

Nhược Autolisp:

Nếu xử lý số liệu thì không trực quan, khó kiểm tra số liệu, gây khó khăn cho người viết, khó tìm ra lỗi khi tệp đầu vào bị sai, chỉ với người hiểu chuyên ngành mới viết được (hoặc phải mô tả rất rõ người viết lisp mới viết dc).

 

Lời khuyên:

Bạn dùng DPSurvey để trút từ máy toàn đạc và máy tính, xử lý số liệu luôn trong đó, dễ dàng chuyển sang Autocad.

http://phanmemtracdia.com/

Hề hề hề,

Thì tại mình là dân đi mót nên thấy có cái gì hay hay thì mót thôi. Mình cũng mót được khối thứ từ khi viết lisp theo yêu cầu của mọi người.

Do không am hiểu về chuyên môn lắm, nên của đáng tội cứ phải bắt hành bẻ tỏi người đưa yêu cầu.

Rất mong mọi ngưòi không giận.

@HoàngKimAnh: Mình upload lại nhưng nếu bạn vẫn không nhận được thì cho mình địa chỉ mail mình gửi cho.

http://www.cadviet.com/upfiles/3/5194_funmiadiahinh_2.lsp

  • 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ác bác cho e hỏi cái này với: khi quyét đối tượng thì cad hiện lên bảng chữ có dòng: "Line_color_layer_linetype"..vậy phải dùng lệnh j để tắt nó đi?bác nào pro giúp e với..cảm ơn rất nhiều !

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

×