Chủ Nhật, 27 tháng 5, 2012

Lisp nối điểm chèn text.

Yêu cầu của bạn đọc như sau:
Hữu Hoa Nguyễn nói...
20:47 Ngày 24 tháng 5 năm 2012
Em Tên: Nguyễn Hữu Hoa
Điện thoại: 0982 772 835; 0905 672 835
Địa chỉ: Tịnh Hà, Sơn Tịnh, Quảng Ngãi.
Wed: http://www.nguyenhuuhoa.tk/
Em có vấn đề nầy Anh vui lòng viết dùm em Lisp nối các điểm với nhau với.
VD: em muốn nối từ điểm 1 điến điểm 10 thì dùng lệnh L1-10 (chẳng hạn) thì nó xẽ nối 1 điến 2 điến 3 .... điến 10;
nếu muốn nối điểm 2 vào điểm 87 thì anh viết dùm L2v87 thì nó nối vào điểm 2 vào điểm 87. Anh giúp em với nhé em cảm ơn anh nhiều.


Trả lời của Duy782006:
*Viết như yêu cầu của bạn là nhập dữ liệu ngay trong lệnh quả này mình ko đáp ứng được. Tạm thời viết 2 lệnh cho bạn như sau:

-Lệnh NOI2D:
+Nhập lệnh xong hỏi tên nút thứ nhất, nhập xong enter
+Lại hỏi tên nút thứ hai nhập xong enter
+Lisp vẽ line nối điểm chèn text nút thứ nhất và điểm chèn text nút thứ 2.

-Lệnh NOIND:
+Nhập lệnh xong hỏi tên nút bắt đầu, nhập xong enter
+Lại hỏi tên nút kết thúc nhập xong enter
+Lisp vẽ line nối điểm chèn text các nút từ nút bắt đầuđến nút kế tiếp... đến nút kết thúc.

Xong!
*Lưu ý mình đang đánh quả quy hoạch kiếm tiền tiêu nên chỉ viết đến thế chưa có khử biến, khử bắt điểm, xét trường hợp trong bản vẽ không tồn tại nút bạn cần hoặc tồn tại hiều hơn 1 nút. Bạn nên tắt chế độ bắt điểm khi chạy lisp để khỏi chạy bậy. và các nút yêu cầu phải tồn tại duy nhất thì lisp sẽ chạy ok thôi.

Bạn copy nội dung và tạo file lisp hoặc tải về phía dưới nhé!

(Defun c:noi2d ()
(setq noidungtexttim (getstring "\n Ten nut thu nhat: "))
(timdiemchentext)
(setq diemdau diemchentext)
(setq noidungtexttim (getstring "\n Ten nut thu hai: "))
(timdiemchentext)
(setq diemsau diemchentext)
(command ".line" diemdau diemsau "")
(princ)
)

(Defun c:noind ()
(setq noidungtextd (getstring "\n Ten nut dau tien: "))
(setq noidungtexts (getstring "\n Ten nut cuoi cung: "))
(setq sobatdau (atoi noidungtextd))
(setq soketthuc (atoi noidungtexts))
(setq solanlap (- soketthuc sobatdau))

(setq noidungtexttim noidungtextd)
(timdiemchentext)
(setq diemdau diemchentext)

(setq lan 1)
(repeat (fix solanlap)
(setq noidungtexttim (itoa (+ lan sobatdau)))
(timdiemchentext)
(setq diemsau diemchentext)
(command ".line" diemdau diemsau "")
(setq diemdau diemsau)
(setq lan (+ 1 lan))
)

(princ)
)


(Defun timdiemchentext ()
(setq ss (ssget "x" (list '(0 . "*TEXT") (cons 1 noidungtexttim))))
(setq sodoituong (sslength ss))
(cond
((= sodoituong 1) (setq diemchentext (cdr (assoc 10 (entget (ssname SS 0))))))
)
(princ)
)

2 nhận xét:

  1. Cam on anh da giup do. Nhu the nay em co the lam dc roi.
    Ak anh co the giup em vc nay dc chu lam sao minh noi cac d­uong Line, pline... thanh duong Spline ma minh chon dc khoan cach diem gay.
    Cam on anh chuc anh vui ve.

    Trả lờiXóa
  2. 1. Yêu cầu bằng tiếng Việt có dấu.
    2. Yêu cầu nên cụ thể và có minh họa bằng cad.

    Trả lờiXóa

Khi viết nhận xét mong bạn không đứng vai trò nặc danh! Bạn có thể chọn Name/Url trong đó Url là http://duy782006.blogspot.com/ như vậy hay hơn nặc danh bạn nhé.