Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu]: lisp sao chép số liệu kích thước


  • Please log in to reply
25 replies to this topic

#1 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 14 July 2012 - 11:48 PM

[ĐÃ XONG]
Yêu cầu đặt ra : dùng lệnh đo kích thước trên bản vẽ như lệnh dal bình thường đồng thời sau khi xong cái ghi kích thước trên bản vẽ nó tạo cho mình thêm 1 dòng text tại ngay con chuột lấy y hệt số liệu vừa đo để mình đặt vào vị trí mình cần đặt.
hoặc bác nào thấy như thế vẫn thủ công và có cách hay hơn thì giúp em nhé, em không phải dân địa chính mà lại hay phải làm cái này
Em có thử dùng lisp sao chép text với lệnh ttt nhưng phải phá khối dim ra thì mới sao chép được số mà kết quả ngoài mong đợi là chép được cả số nhưng thêm mấy ký tự bên cạnh nữa^^
Xin chân thành cảm ơn sự nhiệt tình của mọi người :(
http://www.cadviet.c.../3/52440_dc.dwg


Hình đã gửi update: hiện tại vấn đề của em đã được giải quyết
đây là kết quả nhờ sự giúp đỡ của bác Tue và mathan, trên diễn đàn đã có lisp gần giống thế nhưng 2 lisp này lại khác mỗi cái có ưu điểm riêng .
lisp1: lệnh tkd của bác mathan- đo kích thước các điểm khai báo tên các mốc đầu và cuối đoạn cần đo cuối cùng xong thì nhấn S để kết thúc và xuất ra bảng- xem video minh họa tại #16 (chỉnh kích thước bảng xem #22) , thêm nữa là với kiểu text style hiện hành có gán chiều cao cho text thì lúc lisp xuất ra bảng sẽ ra lỗi, nên chọn style text không đặt chiều cao.
http://www.cadviet.c...3/52440_tkd.lsp
lisp 2: của bác Tue_NV : lệnh DKT đo và ghi kích thước cạnh đồng thời sao chép con số kích thước sang dạng text thẳng đứng đặt ở vị trí bất kỳ
http://www.cadviet.c...2440_tuedkt.lsp

lisp 3 (sưu tầm) : lệnh tl3 không rõ chủ chỉ biết là cadviet^^- đo kích thước 1 cạnh ra con số dạng text thẳng đứng ở ngay con trỏ và đặt nó ở vị trí bất kỳ
http://www.cadviet.c...3/52440_tl3.lsp
---------------------------------------------------
dưới đây là video của em có thi triển lại lisp của bác mathan có kết hợp với lệnh tự đo kích thước khác
Xin cảm ơn mọi người đã giúp đỡ!
  • 1
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#2 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 15 July 2012 - 01:28 PM

có vẻ em đòi hỏi hơi khó thì phải :ph34r:
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#3 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 15 July 2012 - 07:38 PM

Hi. Chúc bạn vui lới LISP mà mình chế này
Code lisp trên diễn đàn rất nhiều bạn cứ mày mò học lỏm và sửa chữa cũng vui lắm đó.hi


;; free lisp from cadviet.com
;;; Edit by mathan
----------------------------------------------
(defun C:tkd ()
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(if (not h) (setq h 1))
(setq caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >:")))
(if caot1 (setq h caot1))
(setq TP (getint (strcat "\nSo chu so thap phan :")))
(setq tapx '() tapy '() stt '())

;;; Phan dim
(setq ktra "OK")
(While (= ktra "OK")
(setvar "osmode" 125)
(setq DD (getpoint"\nPick diem dau"))
(setq TDD (getstring"\nNhap ten diem dau:"))
(setq DC (getpoint"\nPick diem cuoi"))
(setq TDC (getstring"\nNhap ten diem cuoi:"))
(setvar "osmode" 0)

(setq kc (distance DD DC))

(setq textdim (rtos kc 2 tp))
(setq textdiem (strcat TDD "-" TDC))
(setq ghichu "Do thuc te")
(command "_DIMALIGNED" DD DC (getpoint"\nDiem dat dim"))
(setq ktra (getstring"\nBan muon tiep tuc [D] - dung lai [S]:"))
(if (= ktra "S") (setq ktra "NOT OK") (setq ktra "OK"))

(setq
tapx (append tapx (list textdim))
tapy (append tapy (list ghichu))
stt (append stt (list textdiem))
);setq
);;end while

;;;;;;;;;;;;; Phan lap bang thong ke
(setq bit (cond (bit) ("Yes")))
(initget "Yes No")
(setq Tmp (strcat "\nXuat bang toa do? [Yes/No] <" bit ">: ")
bit (cond ((getkword Tmp)) (bit)))
(if (eq bit "Yes")
(progn
(setq di 10
kc (* 2 di)
PT (getpoint"\nVi tri dat bang")
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
p1 (list (car PT) (+ (cadr PT)(* 2 h)))
p2 (list (car PTC) (+ (cadr PTC)(* 2 h)))
p3 (list (car p1) (+ (cadr p1)(* 2 h)))
p4 (list (car p2) (+ (cadr p2)(* 2 h)))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
p11 (list (+ (/ di 2) (car p1)) (+ (* 1.1 h) (cadr p1)))
p22 (list (+ di (/ di 2) (- 0 h) (car p11)) (- (cadr p11) (* 0.1 h)))
p33 (list (+ kc (- h h h h) (car p22)) (cadr p22))
L1 (list (+ di (car p3))(cadr p3))
L2 (list (+ kc (- 0 h h)(car L1))(cadr L1))
PTB (list (+ (- (* 2 h)) (* 0.5 (+ (* 2 kc) di)) (car PT)) (+ (cadr P3) (* 1.8 h)))
n (length tapx)
k 0
);setq
(setvar "osmode" 0)
(command "CECOLOR" 3 "line" p1 p2 "" "line" p3 p4 "" "CECOLOR" 2
"text" "m" p11 h 0 "Diem do"
"text" "m" p22 h 0 "Chieu dai"
"text" "m" p33 h 0 "Ghi chu"
"text" "m" pTB (* 1.3 h) 0 "Bang thong ke chieu dai dim")
(while (< k n)
(setq xx (nth k tapx) yy (nth k tapy) tstt(nth k stt))
(command "CECOLOR" 2
"text" "m" PTD h 0 tstt
"text" "m" PTX h 0 xx
"text" "m" PTY h 0 yy
"CECOLOR" 3
"line" PT PTC "")
(setq PT (list (car PT) (- (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
k (+ 1 k));setq
);while
(if (= k n)
(setq PT (list (car PT) (+ (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
L11 (list (+ di (car PT))(cadr PT))
L22 (list (+ kc (- 0 h h) (car L11))(cadr L11))
);setq
);if
(command "CECOLOR" 3
"line" p3 PT ""
"line" p4 PTC ""
"line" L1 L11 ""
"line" L2 L22 "")
);progn
);if
(setvar "CECOLOR" lacol)
(setvar "osmode" om)
(prompt"\n[TKN - THONG KE DIM] by Thaistreetz - Edit by Mathan")
(command "Undo" "End")
(setvar "cmdecho" 1)
(princ)
);DONG toa do

Chúc công việc của bạn sẽ thuận lợi hơn với lisp này.
  • 2
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#4 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 15 July 2012 - 08:54 PM

Hi. Chúc bạn vui lới LISP mà mình chế này
Code lisp trên diễn đàn rất nhiều bạn cứ mày mò học lỏm và sửa chữa cũng vui lắm đó.hi



;; free lisp from cadviet.com
;;; Edit by mathan
----------------------------------------------
(defun C:tkd ()
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(if (not h) (setq h 1))
(setq caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >:")))
(if caot1 (setq h caot1))
(setq TP (getint (strcat "\nSo chu so thap phan :")))
(setq tapx '() tapy '() stt '())

;;; Phan dim
(setq ktra "OK")
(While (= ktra "OK")
(setvar "osmode" 125)
(setq DD (getpoint"\nPick diem dau"))
(setq TDD (getstring"\nNhap ten diem dau:"))
(setq DC (getpoint"\nPick diem cuoi"))
(setq TDC (getstring"\nNhap ten diem cuoi:"))
(setvar "osmode" 0)

(setq kc (distance DD DC))

(setq textdim (rtos kc 2 tp))
(setq textdiem (strcat TDD "-" TDC))
(setq ghichu "Do thuc te")
(command "_DIMALIGNED" DD DC (getpoint"\nDiem dat dim"))
(setq ktra (getstring"\nBan muon tiep tuc [D] - dung lai [S]:"))
(if (= ktra "S") (setq ktra "NOT OK") (setq ktra "OK"))

(setq
tapx (append tapx (list textdim))
tapy (append tapy (list ghichu))
stt (append stt (list textdiem))
);setq
);;end while

;;;;;;;;;;;;; Phan lap bang thong ke
(setq bit (cond (bit) ("Yes")))
(initget "Yes No")
(setq Tmp (strcat "\nXuat bang toa do? [Yes/No] <" bit ">: ")
bit (cond ((getkword Tmp)) (bit)))
(if (eq bit "Yes")
(progn
(setq di 10
kc (* 2 di)
PT (getpoint"\nVi tri dat bang")
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
p1 (list (car PT) (+ (cadr PT)(* 2 h)))
p2 (list (car PTC) (+ (cadr PTC)(* 2 h)))
p3 (list (car p1) (+ (cadr p1)(* 2 h)))
p4 (list (car p2) (+ (cadr p2)(* 2 h)))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
p11 (list (+ (/ di 2) (car p1)) (+ (* 1.1 h) (cadr p1)))
p22 (list (+ di (/ di 2) (- 0 h) (car p11)) (- (cadr p11) (* 0.1 h)))
p33 (list (+ kc (- h h h h) (car p22)) (cadr p22))
L1 (list (+ di (car p3))(cadr p3))
L2 (list (+ kc (- 0 h h)(car L1))(cadr L1))
PTB (list (+ (- (* 2 h)) (* 0.5 (+ (* 2 kc) di)) (car PT)) (+ (cadr P3) (* 1.8 h)))
n (length tapx)
k 0
);setq
(setvar "osmode" 0)
(command "CECOLOR" 3 "line" p1 p2 "" "line" p3 p4 "" "CECOLOR" 2
"text" "m" p11 h 0 "Diem do"
"text" "m" p22 h 0 "Chieu dai"
"text" "m" p33 h 0 "Ghi chu"
"text" "m" pTB (* 1.3 h) 0 "Bang thong ke chieu dai dim")
(while (< k n)
(setq xx (nth k tapx) yy (nth k tapy) tstt(nth k stt))
(command "CECOLOR" 2
"text" "m" PTD h 0 tstt
"text" "m" PTX h 0 xx
"text" "m" PTY h 0 yy
"CECOLOR" 3
"line" PT PTC "")
(setq PT (list (car PT) (- (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
k (+ 1 k));setq
);while
(if (= k n)
(setq PT (list (car PT) (+ (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
L11 (list (+ di (car PT))(cadr PT))
L22 (list (+ kc (- 0 h h) (car L11))(cadr L11))
);setq
);if
(command "CECOLOR" 3
"line" p3 PT ""
"line" p4 PTC ""
"line" L1 L11 ""
"line" L2 L22 "")
);progn
);if
(setvar "CECOLOR" lacol)
(setvar "osmode" om)
(prompt"\n[TKN - THONG KE DIM] by Thaistreetz - Edit by Mathan")
(command "Undo" "End")
(setvar "cmdecho" 1)
(princ)
);DONG toa do

Chúc công việc của bạn sẽ thuận lợi hơn với lisp này.

ôi thank bác nhiều lắm, em đang dự định học lisp đây ,diễn đàn nhiều anh tài quá lại nhiệt tình nữa, chúc bác lên lv vù vù nhé, hic cảm ơn không chắc chưa đủ ^^
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#5 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 15 July 2012 - 10:07 PM

em đã dùng thử lisp tkd nhưng có một số vấn đề sau mong bác mathan lúc nào rảnh ktr dùm em nhé; dưới đây là các bước lisp tkd bác có viết cho em
Lisp dùng lệnh tkd-> enter-> nhập vào chiều cao text->enter->nhập vào số các chữ số thập phân-> enter-> pick vào điểm đầu đoạn thẳng->nhập vào tên điểm đầu đó-> enter->pick vào điểm cuối-> nhập vào tên điểm cuối->enter-> yêu cầu kích vị trí đặt dim .
có 1 số vấn đề sau:
kết quả không khác gì lệnh dal và giống như đi 1 vòng trái đất ^^ em nghĩ có thể là nhầm ở đâu đó hoặc em diễn đạt chưa chuẩn
em xin diễn đạt lại lần nữa ạ
Giả sử có 1 lệnh đo chiều dài cạnh bất kỳ, không cần hỏi tên điểm đầu tên điểm cuối, cũng không cần phải khai thông tin đâu là điểm đầu để tích vào như ở trên. Sau khi đo 2 đầu như với lệnh đo bình thường ta kích đặt vị trí con số ghi kích thước sát cạnh đường ranh giới thửa đất. Ở đây yêu cầu thêm là em muốn có một bản sao con số đó dạng text bình thường và ở ngay vị trí con chuột (giống như khi ta dùng lênh copy nó vẫn lưu bản copy nữa tại con chỏ đó ^^ ) sau đó sẽ di chuột đến vị trí bảng đã có sẵn và đặt vào vị trí mong muốn. Con số này yêu cầu thẳng đứng chứ không như con số trên đường ranh giới nó nằm song song với đường ranh giới ạ.
em thêm mấy ảnh mình họa
ảnh 1 sau khi thực hiện lệnh đo và ghi kích thước xong
http://upnhanh.sieut...kmg11254_1.jpeg
ảnh 2 di chuyển chuột để đặt tiếp bản sao vào bảng tại vị trí mong muốn
http://upnhanh.sieut...3mt15951_1.jpeg
ảnh 3 sau khi đặt đối tượng vào
http://upnhanh.sieut...lzg52309_1.jpeg
kết quả
http://upnhanh.sieut...mzw15748_1.jpeg
Em xin cảm ơn bác mathan nhiều, cho dù có không thực hiện được đi nữa thì em vẫn cám ơn :D
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#6 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 15 July 2012 - 11:20 PM

Thông báo khẩn cấp là em tình cờ thấy cái này tuy không được 100% nhu cầu nhung cũng giải quyết được 90% công việc em đặt ra rồi, còn 1 số cái cải tiến em sẽ nhớ thớt bên đó cái thớt này mai em sẽ xóa để ai comment trong thớt này đọc được lời cảm ơn của em rồi mới xóa, link em vừa tìm thấy đây ạ http://www.cadviet.c...showtopic=61450 hj vui quá như vớ được vàng ^^
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#7 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 July 2012 - 11:28 PM

em đã dùng thử lisp tkd nhưng có một số vấn đề sau mong bác mathan lúc nào rảnh ktr dùm em nhé; dưới đây là các bước lisp tkd bác có viết cho em
Lisp dùng lệnh tkd-> enter-> nhập vào chiều cao text->enter->nhập vào số các chữ số thập phân-> enter-> pick vào điểm đầu đoạn thẳng->nhập vào tên điểm đầu đó-> enter->pick vào điểm cuối-> nhập vào tên điểm cuối->enter-> yêu cầu kích vị trí đặt dim .
có 1 số vấn đề sau:
kết quả không khác gì lệnh dal và giống như đi 1 vòng trái đất ^^ em nghĩ có thể là nhầm ở đâu đó hoặc em diễn đạt chưa chuẩn
em xin diễn đạt lại lần nữa ạ
Giả sử có 1 lệnh đo chiều dài cạnh bất kỳ, không cần hỏi tên điểm đầu tên điểm cuối, cũng không cần phải khai thông tin đâu là điểm đầu để tích vào như ở trên. Sau khi đo 2 đầu như với lệnh đo bình thường ta kích đặt vị trí con số ghi kích thước sát cạnh đường ranh giới thửa đất. Ở đây yêu cầu thêm là em muốn có một bản sao con số đó dạng text bình thường và ở ngay vị trí con chuột (giống như khi ta dùng lênh copy nó vẫn lưu bản copy nữa tại con chỏ đó ^^ ) sau đó sẽ di chuột đến vị trí bảng đã có sẵn và đặt vào vị trí mong muốn. Con số này yêu cầu thẳng đứng chứ không như con số trên đường ranh giới nó nằm song song với đường ranh giới ạ.
em thêm mấy ảnh mình họa
ảnh 1 sau khi thực hiện lệnh đo và ghi kích thước xong
http://upnhanh.sieut...kmg11254_1.jpeg
ảnh 2 di chuyển chuột để đặt tiếp bản sao vào bảng tại vị trí mong muốn
http://upnhanh.sieut...3mt15951_1.jpeg
ảnh 3 sau khi đặt đối tượng vào
http://upnhanh.sieut...lzg52309_1.jpeg
kết quả
http://upnhanh.sieut...mzw15748_1.jpeg
Em xin cảm ơn bác mathan nhiều, cho dù có không thực hiện được đi nữa thì em vẫn cám ơn :D

Bạn thử code này nhé :

(vl-load-com)
(defun Tue:ss-drag-move (ss p / el lp)
;;;copyright by Tue_NV
(setq el (entlast))
(if (and ss p (vl-cmdf "copy" ss "" p pause) (null (equal (getvar "lastpoint") p)))
(setq lp (getvar "lastpoint")) (setq lp nil)
)
(while (setq el (entnext el)) (entdel el))
lp)
(defun c:dkt(/ p1 p2 ob)
(while (setq p1 (getpoint "\n diem do dau tien :"))
(if (vl-cmdf "DIMALIGNED" p1 (setq p2 (getpoint p1 "\n diem do tiep theo :")) pause )
(progn
(setq ob (vlax-ename->vla-object (entlast)))
(vla-addtext (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object)))
(rtos (vlax-get ob 'Measurement) 2 (vlax-get ob 'PrimaryUnitsPrecision))
(vlax-3d-point (vlax-get ob 'TextPosition)) (vlax-get ob 'TextHeight) )
(setq ptt (Tue:ss-drag-move (ssadd (entlast) (ssadd)) (vlax-get ob 'TextPosition)) )
(command "move" (entlast) "" (vlax-get ob 'TextPosition) ptt)

)
)
)
)

  • 2

#8 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 15 July 2012 - 11:50 PM

hic sao vừa phàn hồi bên thớt kia mà bác đã viết xong cái lisp gộp nhanh thế :(( , em cám ơn nhé cái này đúng 100% ý của em rồi có 1 lỗi rất nhỏ nữa là thao tác cuối thì nó làm tròn 3 chữ số, còn em muốn 2 thôi ^^ mong bác giúp em rồi em sẽ up lại cái file sang thớt bên kia để cập nhật ạ ^^
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#9 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 16 July 2012 - 06:19 AM

hic sao vừa phàn hồi bên thớt kia mà bác đã viết xong cái lisp gộp nhanh thế :(( , em cám ơn nhé cái này đúng 100% ý của em rồi có 1 lỗi rất nhỏ nữa là thao tác cuối thì nó làm tròn 3 chữ số, còn em muốn 2 thôi ^^ mong bác giúp em rồi em sẽ up lại cái file sang thớt bên kia để cập nhật ạ ^^

Đã update Code Lisp cho bạn ở bài viết trên
Bạn Dim ra bao nhiêu chữ số thập phân thì Lisp sẽ lấy bấy nhiêu chữ số thập phân
  • 0

#10 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 16 July 2012 - 08:20 AM

thank bác @Tue_NV , bác đi qua thì xóa dùm em cái thớt này nhé em sẽ chuyển lisp bác mới nâng cấp sang thớt bên kia cho nó đỡ tốn tài nguyên ạ ^^
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#11 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 16 July 2012 - 10:01 PM

em đã dùng thử lisp tkd nhưng có một số vấn đề sau mong bác mathan lúc nào rảnh ktr dùm em nhé; dưới đây là các bước lisp tkd bác có viết cho em
Lisp dùng lệnh tkd-> enter-> nhập vào chiều cao text->enter->nhập vào số các chữ số thập phân-> enter-> pick vào điểm đầu đoạn thẳng->nhập vào tên điểm đầu đó-> enter->pick vào điểm cuối-> nhập vào tên điểm cuối->enter-> yêu cầu kích vị trí đặt dim .
có 1 số vấn đề sau:
kết quả không khác gì lệnh dal và giống như đi 1 vòng trái đất ^^ em nghĩ có thể là nhầm ở đâu đó hoặc em diễn đạt chưa chuẩn

Mình đã test trước khi up lên.
Đảm bảo hàng ngon bạn ah. Chỉ là bạn chưa đọc kỹ khi sử dụng thui
Khi bạn đã dim đủ rùi, máy hỏi bạn có tiếp tục không bạn chọn S và enter
chọn xuất bảng tọa độ
Hàng k ngon bạn dislike mình cũng chịu.
  • 0
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#12 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 16 July 2012 - 11:47 PM

bacs @mathan ơi bác giúp em mà em lại không kiểm tra kỹ đã bảo không sd được thì hóa ra ko tôn trọng bác rồi ^^ nghe bác nói vậy em kiểm lại lần nữa mặc dù đã thử nhiều lần cũng vậy bác ah, sau khi đo xong thì nhấn s để kết thúc nó không xuất ra bảng hay có gì khác cả mà nó lại quay lại như bước 1 cứ lặp lại như vậy thôi. Vấn đề của em đã được giải quyết rồi nhưng em nghĩ là bác sẽ không bỏ qua và phải mổ nó thôi , đã giải 1 bài toán mà không ra thì em cũng khó mà bỏ qua huống chi bác :D. Hiện giờ em cũng đang mon men tự học lisp hy vọng tương lai có thể tự viết code hoặc ít ra cũng chế code được .Sáng mai em sẽ up lại chi tiết hình ảnh lỗi của nó để bác nghiên cứu nhé
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#13 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 17 July 2012 - 09:57 AM

bacs @mathan ơi bác giúp em mà em lại không kiểm tra kỹ đã bảo không sd được thì hóa ra ko tôn trọng bác rồi ^^ nghe bác nói vậy em kiểm lại lần nữa mặc dù đã thử nhiều lần cũng vậy bác ah, sau khi đo xong thì nhấn s để kết thúc nó không xuất ra bảng hay có gì khác cả mà nó lại quay lại như bước 1 cứ lặp lại như vậy thôi. Vấn đề của em đã được giải quyết rồi nhưng em nghĩ là bác sẽ không bỏ qua và phải mổ nó thôi , đã giải 1 bài toán mà không ra thì em cũng khó mà bỏ qua huống chi bác :D. Hiện giờ em cũng đang mon men tự học lisp hy vọng tương lai có thể tự viết code hoặc ít ra cũng chế code được .Sáng mai em sẽ up lại chi tiết hình ảnh lỗi của nó để bác nghiên cứu nhé

Lại nữa rùi, đúng là mình làm chưa phải quá chuẩn, nhưng 1 chữ "S" in hoa là cả một lấn đề đó.
Cái đó là do mình k chú ý, bạn thử lại 1 lần nữa xem. Không ra bảng mình k vọc vạch j nữa :D
  • 1
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#14 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 17 July 2012 - 10:51 AM

Lại nữa rùi, đúng là mình làm chưa phải quá chuẩn, nhưng 1 chữ "S" in hoa là cả một lấn đề đó.
Cái đó là do mình k chú ý, bạn thử lại 1 lần nữa xem. Không ra bảng mình k vọc vạch j nữa :D

Hề hề hề,
Chớ có nóng, chớ có nóng......
Không ra bảng thì nó ra cái giống oẳn tà roằn chi chi đó. Và thề là ta lại oẳn tà roằn cho nó ra cái giống ta chớ có chi đâu mà phải bỏ không vọc nữa bác hè?????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#15 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 17 July 2012 - 11:24 AM

hj có thể bác lại vất vả rồi em vừa thử lisp bác up cho em ở #3 lấy lại file ở nút download không được, em cóp cả cái code bên dưới vì nghĩ bác sửa 1 trong 2 nhưng kết quả vẫn vậy,, để trưa đi làm về em ngồi nghiên cứu lại rồi up ảnh ^^ sáng nay em nhiều việc quá nên h mới vào được
em vừa quay lại thao tác có up thành file video nhỏ bác coi dùm nhé, cả s và d đều lặp lại lệnh chứ không có gì khác ạ ^^ @mathan
link tải: (7,4mb) http://www.mediafire...f2y6sp1v6yuufhi
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#16 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 19 July 2012 - 01:42 PM

Mình đã ghi rất rõ mà, 1 chữ S in hoa bạn ah
bạn Upload video nên mình cũng làm lại 1 cái để chứng minh nó là hàng ngon :D
Lần tới mình sẽ sửa lại chữ S in hoa làm bạn phức tạp mọi vấn đề sau.hi.
Làm cái gì cũng phải có bảo hành mà.he2.
http://www.cadviet.c...6_pm_mathan.rar
  • 1
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#17 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 19 July 2012 - 03:58 PM

Mình đã ghi rất rõ mà, 1 chữ S in hoa bạn ah
bạn Upload video nên mình cũng làm lại 1 cái để chứng minh nó là hàng ngon :D
Lần tới mình sẽ sửa lại chữ S in hoa làm bạn phức tạp mọi vấn đề sau.hi.
Làm cái gì cũng phải có bảo hành mà.he2.
http://www.cadviet.c...6_pm_mathan.rar

hic tội em đáng ăn đá quá đúng là có mỗi chữ S^^ mà bác đặt lệnh cũng kỳ lại phân biệt cả chữ hoa chữ thường em lại nghĩ ở tầm vĩ mô là bác sửa và ám chỉ chữ S nằm ở code ..............
nó mà hiện bảng lên thì không hề vô dụng đâu bác ah ^^ trên bản vẽ thiết kế để tỷ lệ 1/100 đơn vị bản vẽ mm - em dùng lệnh thì có xuất ra bảng thống kê nhưng xuất ra bảng nó bé tẹo phải phóng lên hơn 10 lần mới thấy không được chuẩn không cần chỉnh như trên bản vẽ bác thực hành em không up bản vẽ dạng này lên vì không làm trên nó^^
Công việc em làm dựa trên bản vẽ đơn vị là m cho hồ sơ thửa đất trên giấy A4, nên khi áp dụng lệnh này có xuất ra bảng nhưng số liệu lại đều về 0 đồng thời kích thước chiều ngang bảng hơi quá khổ
ảnh minh họa
Hình đã gửi
Bác chỉnh lại cho em kích thước bảng theo bản vẽ mẫu (không bắt buộc phải theo con số cụ thể miễn là nó không quá to và thừa nhiều khoảng trống hai bên) :P . Còn nữa là hiển thị được tiếng việt có dấu thì tốt nếu không thì sau khi tạo xong em phải đánh lại chữ cũng không sao ạ :D
Bản vẽ thửa đất mẫu em có up kèm theo câu hỏi đầu tiên .
Lúc nào rảnh bác chỉnh cho em nhé. Lisp này với lisp bác Tue_NV viết, với 1 lisp tương tự đã có từ trước không cái nào giống cái nào và mỗi cái đều áp dụng cho trường hợp khác nhau đều có ưu điểm riêng. Sau khi bác sửa xong em sẽ up cả hai cái lên đầu cái thớt này để mọi người có ai cần đỡ phải đọc dài dòng bên dưới ạ ^^
Cuối cùng là sau khi coi video của bác em muốn xin tên phần mềm quay màn hình làm việc mà bác sử dụng vì em có dùng cái Cam studio nhưng cho ra dung lượng lớn quá, trong video lại có thêm cả nút xanh chạy theo con trỏ gây khó chịu nữa ^^
Chân thành cảm ơn sự nhiệt tình của bác @mathan
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#18 mathan

mathan

    biết vẽ rectang

  • Members
  • PipPip
  • 83 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 19 July 2012 - 04:26 PM

Bạn thông cảm cho mình vì mình code quá nhanh nên thành ra quên cả những cái cơ bản nhất
Tạm thời mình reply đặt gạch giải quyết 3 vấn đề của bạn đã nhé.
Lúc khác rảnh mình sẽ xử tiếp những yêu cầu còn lại
1. Kích thước bảng: Nó sẽ phù hợp với chiều cao text bạn nhập vào :D (Cái này dễ chỉnh, bạn muốn chỉnh sao mình sẽ chỉ sau)
2. Vấn đề text ra toàn 0 tròn là do bạn đang để một text style có chiều cao chữ, bạn chuyển sang 1 cái text style không có chiều cao chữ là ngon thui
3. Quay màn hình mình dùng snagit bạn hỏi bác GG nhé :D
Các vấn đề còn lại cho mình nợ khi khác vậy
Bạn xài code này

;; free lisp from cadviet.com
;;; Edit by mathan
----------------------------------------------
(defun C:tkd ()
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(if (not h) (setq h 1))
(setq caot1 (getreal (strcat "\nCao text < " (rtos h 2 2) " >:")))
(if caot1 (setq h caot1))
(setq TP (getint (strcat "\nSo chu so thap phan :")))
(setq tapx '() tapy '() stt '())
(command "CECOLOR" 0)
;;; Phan dim
(setq ktra "OK")
(While (= ktra "OK")
(setvar "osmode" 125)
(setq DD (getpoint"\nPick diem dau"))
(setq TDD (getstring"\nNhap ten diem dau:"))
(setq DC (getpoint"\nPick diem cuoi"))
(setq TDC (getstring"\nNhap ten diem cuoi:"))
(setvar "osmode" 0)

(setq kc (distance DD DC))

(setq textdim (rtos kc 2 tp))
(setq textdiem (strcat TDD "-" TDC))
(setq ghichu "Do thuc te")
(command "_DIMALIGNED" DD DC (getpoint"\nDiem dat dim"))
(setq ktra (getstring"\nBan muon dung lai nhap [S] - de tiep tuc [Enter hoac Space]:"))
(if (or (= ktra "S") (= ktra "s")) (setq ktra "NOT OK") (setq ktra "OK"))

(setq
tapx (append tapx (list textdim))
tapy (append tapy (list ghichu))
stt (append stt (list textdiem))
);setq
);;end while

;;;;;;;;;;;;; Phan lap bang thong ke
(setq bit (cond (bit) ("Yes")))
(initget "Yes No")
(setq Tmp (strcat "\nXuat bang toa do? [Yes/No] <" bit ">: ")
bit (cond ((getkword Tmp)) (bit)))
(if (eq bit "Yes")
(progn
(setq di (* 8 h)
kc (* 2 di)
PT (getpoint"\nVi tri dat bang")
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
p1 (list (car PT) (+ (cadr PT)(* 2 h)))
p2 (list (car PTC) (+ (cadr PTC)(* 2 h)))
p3 (list (car p1) (+ (cadr p1)(* 2 h)))
p4 (list (car p2) (+ (cadr p2)(* 2 h)))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
p11 (list (+ (/ di 2) (car p1)) (+ (* 1.1 h) (cadr p1)))
p22 (list (+ di (/ di 2) (- 0 h) (car p11)) (- (cadr p11) (* 0.1 h)))
p33 (list (+ kc (- h h h h) (car p22)) (cadr p22))
L1 (list (+ di (car p3))(cadr p3))
L2 (list (+ kc (- 0 h h)(car L1))(cadr L1))
PTB (list (+ (- (* 2 h)) (* 0.5 (+ (* 2 kc) di)) (car PT)) (+ (cadr P3) (* 1.8 h)))
n (length tapx)
k 0
);setq
(setvar "osmode" 0)
(command "CECOLOR" 3 "line" p1 p2 "" "line" p3 p4 "" "CECOLOR" 2
"text" "m" p11 h 0 "Diem do"
"text" "m" p22 h 0 "Chieu dai"
"text" "m" p33 h 0 "Ghi chu"
"text" "m" pTB (* 1.3 h) 0 "Bang thong ke chieu dai dim")
(while (< k n)
(setq xx (nth k tapx) yy (nth k tapy) tstt(nth k stt))
(command "CECOLOR" 2
"text" "m" PTD h 0 tstt
"text" "m" PTX h 0 xx
"text" "m" PTY h 0 yy
"CECOLOR" 3
"line" PT PTC "")
(setq PT (list (car PT) (- (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (- 0 h) (car PTD)) (cadr PTD))
PTY (list (+ kc (- h h h h) (car PTX)) (cadr PTX))
k (+ 1 k));setq
);while
(if (= k n)
(setq PT (list (car PT) (+ (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) (- di h h h h) (car PT)) (cadr PT))
L11 (list (+ di (car PT))(cadr PT))
L22 (list (+ kc (- 0 h h) (car L11))(cadr L11))
);setq
);if
(command "CECOLOR" 3
"line" p3 PT ""
"line" p4 PTC ""
"line" L1 L11 ""
"line" L2 L22 "")
);progn
);if
(setvar "CECOLOR" lacol)
(setvar "osmode" om)
(prompt"\n[TKN - THONG KE DIM] by Thaistreetz - Edit by Mathan")
(command "Undo" "End")
(setvar "cmdecho" 1)
(princ)
);DONG toa do


  • 1
-----------
Hình đã gửi Hãy chia sẻ để thấy có được nhiều hơn điều mình muốn!
Best regard,

#19 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 19 July 2012 - 05:11 PM

hi đúng rồi em có chỉnh lại sang style chữ không đặt chiều sao thì chỉnh được theo tỷ lệ chữ nhập trong lisp tkd ^^
Phần câu cuối cùng nhập S in hoa để xuất bảng em nghĩ là giờ không cần thiết làm lại đâu bác ah như vậy cũng hay. Lần sau bác hướng dẫn em cách chỉnh kích thước bảng nhé, với giúp em thêm lúc đặt vị trí dim thì hiện con số lên để mình ướm vị trí đặt còn hiện tại nó không hiện ở con trỏ nên em phải căn chỉnh bằng mắt cho con trỏ gần sát đường ranh giới rồi tích chuột nhiều lúc hay bị đè vào hay cách xa quá . Lisp này hiện đã làm được việc rồi nhưng để nó hoàn hảo thì vẫn cần bác @mathan .
Sau đây em xin hết thắc mắc và hết câu hỏi không phát sinh thêm cái gì nữa đâu ạ^^
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng

#20 hamster2102

hamster2102

    biết lệnh copy

  • Advance Member
  • PipPipPip
  • 111 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 27 July 2012 - 10:33 PM

chắc bác @mathan bận quá nên quên mất hoặc có thể nghĩ em không cần cái lisp này nên thôi ^^ em đã tổng kết lại ở trang 1 . lisp của bác phần đặt dim em không dùng nữa thay vào đó kết hợp với tự dim sẽ nhanh và giải quyết được chuyện đặt vị trí dim không đều và khó kiểm soát. Giờ khi sử dụng em sẽ thường xuyên enter để bỏ qua bước đặt vị trí dim đôi lúc cũng nhầm nhọt do nháy nhiều quá nhưng chắc dùng nhiều sẽ quen tay.
Xin cảm ơn tất cả :D
  • 0
Nếu biết rằng em đã lấy chồng
Anh mừng biết mấy em biết không
Bao năm quen biết, bao năm mệt
Tính ra cũng khổ mấy năm ròng