

trang7889
-
Số lượng nội dung
6 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi trang7889
-
-
đầu tiên mình cảm ơn bạn phamthanhbinh đã cố gắng giúp mình! nhưng hình như tọa độ bị (-) đó bạn ơi.
ý mình là từ file bản đồ gốc là vẽ tỉ lệ 1/1 khi dán vào bản vẽ mẫ thì phải scale lên (VD: 500 là x2 lần; 200 là x4 lần đó bạn).
bảng tọa độ là lấy theo list của point của bản đồ
bạn có thể giúp mình chèn file mẫu vào file bản đồ hiện tại theo pickpoints được ko?
list mẫ bạn gửi hình như ko chạy số điểm góc thửa theo chiều kim đồng hồ. mình chạy trên file bản đồ của mình thì bảng tọa độ
ko hiện kết quả.
bạn xem lại dúp nhé.
cảm ơn!
-
mình có đọan lisp này của bạn mình đang sài nhưng nó đánh số theo chiều kim đồng hồ bạn tham khảo thử nhé. Thank!
(defun *error* (msg)
(princ "error: ")
(princ msg)
(princ)
)
(defun Wdis (p1 p2 / dis ang point)
(setq dis (distance p1 p2))
(setq ang (angle p1 p2))
(if (and (> ang (/ Pi 2)) (< ang (* Pi 1.5)) )
(progn
(setq ang (+ Ang Pi))
(setq Point (polar p2 ang (/ dis 2.0)))
)
(setq Point (polar p1 ang (/ dis 2.0)))
)
(command "Text" "S" "vtimesn" "c" point (/ TileBdHT 500) (* (/ ang Pi) 180) (rtos dis 2 2) )
)
(defun ssgetLayer( La1 La2 / ss)
(setq ss (ssget "X" (list
(cons -4 "
(cons -4 "
(cons 8 La1)
(cons 0 "LWPOLYLINE")
(cons -4 "AND>")
(cons -4 "
(cons 8 La1)
(cons 0 "LINE")
(cons -4 "AND>")
(cons -4 "
(cons 8 La2)
(cons 0 "LWPOLYLINE")
(cons -4 "AND>")
(cons -4 "
(cons 8 La2)
(cons 0 "LINE")
(cons -4 "AND>")
(cons -4 "OR>")
)
))
ss
)
(defun pointpl (name tt k / namem i bien t1 p1 diem)
(setq namem name)
(setq i 1)
(while (<= i k)
(progn
(setq bien (assoc tt namem))
(setq t1 (member bien namem))
(setq p1 (car t1))
(setq namem (cdr t1))
(setq diem (cdr p1))
(setq i (+ 1 i))
)
)
diem
)
(defun c:Toado( / i k luuxy st p xoa)
(setvar "cmdecho" 0)
(setq st (ssgetLayer "Rtd" "ch") )
(if (/= st nil)
(progn
(if (null (tblsearch "style" "vtimesn"))
(command "_style" "vtimesn" "vtimesn.ttf" "" "" "" "" ""))
(if (null (tblsearch "style" "vtimesb"))
(command "_style" "vtimesb" "vtimesb.ttf" "" "" "" "" ""))
(if (null (tblsearch "layer" "sohieu_diem"))
(command "_layer" "n" "sohieu_diem" ""))
(command "_layer" "c" "2" "sohieu_diem" "")
(if (null (tblsearch "layer" "bang_toado"))
(command "_layer" "n" "bang_toado" ""))
(command "_layer" "c" "7" "bang_toado" "")
(command "_layer" "c" "5" "Rsd" "")
(command "_layer" "c" "4" "Rtd" "")
(if (null (tblsearch "layer" "Polygon"))
(command "_layer" "n" "Polygon" ""))
(command "_layer" "c" "8" "Polygon" "")
(setq r1 (getvar "USERR1"))
(setq TileBdHT (getreal (strcat "\nMau So Ti Le Cua BDHT" "(" (rtos r1 2 0) "):")))
(if (= TileBdHT nil)
(setq TileBdHT r1))
(setvar "USERR1" TileBdHT)
(setvar "blipmode" 0)
(setq old (getvar "osmode"))
(setvar "osmode" 0)
(setq p (getpoint "\n Pick"))
(command "_layer" "s" "Polygon" "")
(if (/= p nil)
(command "-Boundary" "a" "b" "n" st "" "" p "" )
)
(setq luuxy (entget (entlast)))
(setq p (getpoint "\n Diem dat bang toa do :"))
; (entdel (entlast))
(setq k (cdr (assoc 90 luuxy)))
(if (/= p nil)
(progn
(setq p01 p)
(setq p02 (mapcar '+ p '(10.0 0.0 0.0)))
(setq p03 (mapcar '+ p '(22.5 -2.5 0.0)))
(setq p04 (mapcar '+ p '(35.0 0.0 0.0)))
(setq p05 (mapcar '+ p '(45.0 0.0 0.0)))
(setq p06 (mapcar '+ p '(0.0 -5.0 0.0)))
(setq p07 (mapcar '+ p '(10.0 -2.5 0.0)))
(setq p08 (mapcar '+ p '(35.0 -2.5 0.0)))
(setq p09 (mapcar '+ p '(45.0 -5.0 0.0)))
(if (<= k 3)
(progn
(setq p10 (mapcar '+ p '(0.0 -40.0 0.0)))
(setq p11 (mapcar '+ p '(10.0 -40.0 0.0)))
(setq p12 (mapcar '+ p '(22.5 -40.0 0.0)))
(setq p13 (mapcar '+ p '(32.0 -40.0 0.0)))
(setq p14 (mapcar '+ p '(45.0 -40.0 0.0)))
)
(progn
(setq ty (* -1 (+ 10.0 (* k 3))))
(setq t0 (list 0.0 ty 0.0))
(setq t1 (list 10.0 ty 0.0))
(setq t2 (list 25.5 ty 0.0))
(setq t3 (list 41.0 ty 0.0))
(setq t4 (list 50.0 ty 0.0))
(setq p10 (mapcar '+ p t0))
(setq p11 (mapcar '+ p t1))
(setq p12 (mapcar '+ p t2))
(setq p13 (mapcar '+ p t3))
(setq p14 (mapcar '+ p t4))
)
)
(command "layer" "s" "bang_toado" "")
(command "Line" p01 p05 "")
(command "Line" p01 p10 "")
(command "Line" p02 p11 "")
(command "Line" p03 p12 "")
(command "Line" p04 p13 "")
(command "Line" p05 p14 "")
(command "Line" p07 p08 "")
(command "Line" p06 p09 "")
(command "Line" p10 p14 "")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(22.5 2.0 0.0)) 1.8 0 "BAÛNG LIEÄT KEÂ TOÏA ÑOÄ GOÙC RANH")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(5.0 -1.5 0.0)) 1.5 0 "Soá hieäu")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(5.0 -3.5 0.0)) 1.5 0 "ñieåm")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(22.5 -1.30 0.0)) 1.8 0 "Toïa ñoä")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(16.25 -3.75 0.0)) 1.5 0 "X(m)")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(28.75 -3.75 0.0)) 1.5 0 "Y(m)")
(command "Text" "S" "vtimesb" "j" "M" (mapcar '+ p '(40.0 -2.5 0.0)) 1.5 0 "Caïnh")
)
)
(setq i 1)
(while (<= i k)
(progn
(setq toado (pointpl luuxy 10 i))
(setq x (rtos (car toado) 2 2))
(setq y (rtos (cadr toado) 2 2))
(command "layer" "s" "sohieu_diem" "")
(setq doi (list (* 0.2 (/ TileBdHT 500)) (* 0.2 (/ TileBdHT 500)) 0.0))
(command "Text" "S" "vtimesn" (mapcar '+ toado doi) (/ TileBdHT 500) 0 i)
(command "donut" "0.0" (* 0.25 (/ TileBdHT 500)) toado "")
(setq tsh (list 5.0 (- (* -3 i) 4.5) 0.0))
(setq txx (list 16.25 (- (* -3 i) 4.5) 0.0))
(setq tyy (list 28.75 (- (* -3 i) 4.5) 0.0))
(setq tgc (list 40.0 (- (* -3 i) 3.0) 0.0))
(setq psh (mapcar '+ p tsh))
(setq pxx (mapcar '+ p txx))
(setq pyy (mapcar '+ p tyy))
(setq pgc (mapcar '+ p tgc))
(if (= i 1)
(progn
(setq toado1 toado)
(setq x1 (rtos (car toado1) 2 2))
(setq y1 (rtos (cadr toado1) 2 2))
)
)
(if (>= i 2)
(progn
(setq canh (distance toado0 toado))
(command "layer" "s" "bang_toado" "")
(command "Text" "S" "vtimesn" "j" "M" pgc 1.5 0 (rtos canh 2 2) )
(command "layer" "s" "sohieu_diem" "")
(wdis toado0 toado)
)
)
(command "layer" "s" "bang_toado" "")
(command "Text" "S" "vtimesn" "j" "M" psh 1.5 0 i)
(command "Text" "S" "vtimesn" "j" "M" pxx 1.5 0 y)
(command "Text" "S" "vtimesn" "j" "M" pyy 1.5 0 x)
(setq toado0 toado)
(setq i (+ i 1))
)
)
(command "layer" "s" "sohieu_diem" "")
(wdis toado toado1)
(setq canh (distance toado toado1))
(setq tsh (list 5.0 (- (* -3 (+ k 1)) 4.5) 0.0))
(setq txx (list 16.25 (- (* -3 (+ k 1)) 4.5) 0.0))
(setq tyy (list 28.75 (- (* -3 (+ k 1)) 4.5) 0.0))
(setq tgc (list 40.0 (- (* -3 (+ k 1)) 3.0) 0.0))
(setq psh (mapcar '+ p tsh))
(setq pxx (mapcar '+ p txx))
(setq pyy (mapcar '+ p tyy))
(setq pgc (mapcar '+ p tgc))
(command "layer" "s" "bang_toado" "")
(command "Text" "S" "vtimesn" "j" "M" pgc 1.5 0 (rtos canh 2 2) )
(command "Text" "S" "vtimesn" "j" "M" psh 1.5 0 "1")
(command "Text" "S" "vtimesn" "j" "M" pxx 1.5 0 y1)
(command "Text" "S" "vtimesn" "j" "M" pyy 1.5 0 x1)
(setvar "osmode" old)
) ;(end progn)
) ;(end if)
(if (= st nil)
(progn
(setvar "cmdecho" 1)
(princ "Khong co layer Ranh_toado")
)
)
(command "_layer" "s" "0" "")
)
(defun c:capnhat()
(setq is (ssgetLayer "Polygon" "Polygon") )
(setq namecn (getfiled "FILE CAP NHAT" "" "DWG" 3))
(command "Wblock" namecn "" '(0 0) is "")
(command "oops")
(command "save")
; (setq namegoc (getfiled "FILE BAN DO GOC" "" "DWG" 3))
(setq TenQuan (strcat " " (getString T "\nTen Quan : ")))
(setq TenPhuong (strcat " " (getString T "\nTen Phuong : ")))
(setq TenTo (strcat " " (getString T "\nTo So : ")))
(setq namegoc (strcat "q" TenQuan "-" TenPhuong "-" TenTo ".dwg"))
(command "open" namegoc)
)
hy vọng bạn dúp mình sớm.
-
-
Đây là phần tiếp theo của topic Viết lisp theo yêu cầu, mời các bạn tiếp tục thảo luận.nhờ bạn hoanh viết dùm mình họa đồ trích đo này nhé minh đa rât cần.
text đánh theo thứ tự từ trái qua phải
bản vẽ gán theo tỷ lệ cho trước
Bản trích đo: http://www.cadviet.com/upfiles/2/mau_trich_do.dwg
File bản đồ: http://www.cadviet.com/upfiles/2/dc_4f135ivd.dwg
-
Nhờ các bạn dúp dùm mình họa đồ trích đo này không có up file theo đó minh đa rât cần.
text đánh theo thứ tự từ trái qua phải
bản vẽ gán theo tỷ lệ cho trước
có kèm theo bảng toa độ
Bản trích đo: http://www.cadviet.com/upfiles/2/mau_trich_do.dwg
File bản đồ: http://www.cadviet.com/upfiles/2/dc_4f135ivd.dwg
trích do
trong AutoLisp
Đã đăng · Trả lời báo cáo
xin chào tất cả các thành viên của cadviet!
mình thấy các bạn viết lisp rất hay, mình mới tập tành thôi mong các bạn dúp đỡ.
mình nhờ các thành viên giúp mình đọan lisp chèn khung tên tạo sẵn theo điểm pick vào bản vẽ hiện hành nhé.
thank!