-
Số lượng nội dung
1.161 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
26
Bài đăng được đăng bởi thanhduan2407
-
-
Lệnh MH (Merge Hatch) dưới đây sẽ thực hiện điều bạn muốn.Chương trình yêu cầu người sử select các hatch, sau đó nối chúng lại với nhau thành 1 hatch đơn nhất.
Thuộc tính (layer, màu, kiểu hatch, ...) của hatch kết quả được lấy theo đối tượng hactch đầu tiên. Mẹo: Khi các hatch không giống nhau, muốn đối tượng sau khi merge giống hatch nào thì nên pick hatch đó đầu tiên, sau đó mới select các hatch khác.
(defun c:mh (/ ss entht sl i dt dtht) (princ "\nMerge Hatch - free lisp from CADViet.com") (setq ss (ssget '((0 . "HATCH"))) sl (if ss (sslength ss) 0 ) i 0 l 0 ) (repeat sl (setq entht (ssname ss i) dtht (getbdata entht) dt (append dt dtht) l (+ l (cdr (assoc 91 (entget entht)))) i (1+ i) ) ) (setq ent (ssname ss 0) ss (ssdel ent ss) tt (entget ent) duoi (member (assoc 75 tt) tt) dau (reverse (member (assoc 91 tt) (reverse tt))) tt (append dau dt duoi) tt (subst (cons 91 l) (assoc 91 tt) tt) ) (entmod tt) (command ".erase" ss "") (princ) ) (defun getbdata (ent) (setq tt (entget ent) tt (cdr (member (assoc 75 tt) (reverse tt))) tt (cdr (member (assoc 91 tt) (reverse tt))) ) ) (princ "\nMerge Hatch is loaded, please type MH to start!") (princ)
Cám ơn bác hoành rất nhiều
Em đã đọc rất nhiều bài post của bác trên mạng và rất phục bác
Em cũng đang giai đoạn tìm hiểu về lisp và ứng dụng cho chuyên ngành của mình
Em là dân Trắc Địa bác ạ nên cần phải năng động cho lĩnh vực xử lý tính toán số liệu của mình
Em rất mong bác giúp đỡ em một số bài toán mà em đang vướng mắc
Bác có thể nêu cấu trúc đọc từng dòng của 1 file dữ liệu với một vài kiểu khuôn dạng trong từng dòng
VD đọc dữ liệu với 3 dòng được lặp đi lặp lại:
dòng 1: kiểu a
dòng 2 Kiể b
dòng 3 Kiểu c
dòng 4: kiểu a
dòng 5 Kiể b
dòng 6 Kiểu c
.....
Tiện thể bác có thế giúp em lập trình một hàm tách xâu ký tự trên một dòng mà các số liệu được phân biệt bởi dấu cách,hoặc dấu tab, hoặc dấu phẩy
VD dấu tab
1 1035846.246 597526.601 -1.23
2 1035853.471 597526.324 -2.09
3 1035862.06 597523.732 -2.93
VD dấu cách
1 1035846.246 597526.601 -1.23
2 1035853.471 597526.324 -2.09
3 1035862.06 597523.732 -2.93
VD dấu phẩy
1,1035846.246,597526.601,-1.23
2,1035853.471,597526.324,-2.09
3,1035862.06,597523.732,-2.93
Em cảm ơn bác rất nhiều
Có gì bác có thể gửi cho em tài liệu hoặc câu trả lời qua Email : thanhduan_mda@yahoo.com
Em chân thành cảm ơn bác
-
Mình rất mong bạn Tue_NV giúp mình fun điểm lên bản vẽ chấp nhận các thông số SST X Y Z Code được phân biệt nhau bởi cả dấu " " (dấu cách) , dấu tab, dấu phẩy....
Nếu bạn lập được 1 hàm tách xâu phân biệt được các thông số đó thì chèn các ký hiệu trắc địa vào bản vẽ là bình thường.
Mình đang vướng mắc vấn đề đó.
Mong bạn giúp đỡ mình
-
Bạn chạy thử :(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt ;| By : Gia Bach, gia_bach @ www.CadViet.com |; (vl-load-com) (defun Split (Str Char / Lst pos) (while (setq pos (vl-string-search Char Str)) (if (null Lst) (setq Lst (list (substr Str 1 pos))) (setq Lst (append Lst (list (read (substr Str 1 pos)))))) (setq Str (substr Str (+ pos 2)) )) (setq Lst (append Lst (list (read Str))))) (if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8)) (progn (or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") ) (or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") ) (or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") ) (setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object)))) (setq h 2);(* (getvar "dimtxt")(getvar "dimscale"))) (setq f (open (findfile ten) "r")) (while (setq Line (read-line f)) (if (vl-string-search "\t" Line) (progn (setq data (split Line "\t" ) val (car data) pt (cdr data)) (if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt))) (progn (setq pXY (list (car pt)(cadr pt))) (vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point") (vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu") (vla-put-Alignment str 8) (vla-put-TextAlignmentPoint str (vlax-3d-point pXY)) (vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) )) (princ))
Cảm ơn bạn Gia_Bach rất nhiều nhưng mình thấy file muốn fun điểm lên bản vẽ phải đúng theo một khuôn mẫu nhất định. Mình rất mong rằng file mà bạn fun điểm lên bản vẽ chấp nhận các thông số SST X Y Z Code được phân biệt nhau bởi cả dấu " " (dấu cách) , dấu tab, dấu phẩy....
Nếu bạn lập được 1 hàm tách xâu phân biệt được các thông số đó thì chèn các ký hiệu trắc địa vào bản vẽ là bình thường.
Mình đang vướng mắc vấn đề đó.
Mong các bạn giúp đỡ mình
-
Mọi người tự hỏi tại sao không có lệnh ẩn từng đối tượng mà không phải ẩn cả layer hay freeze cả layer. lisp đâyInvis: ẩn object
vis: hiện object
Thank you very much
-
:mellow: MUỐN THAM KHẢO VÀ HỌC HỎI NÊN MÌNH RẤT CẦN TÀI LIỆU HƯỚNG DẪN SỬ DỤNG AUTOCAD 3D CIVIL LAND DESKTOP 2008.BÁC NÀO CÓ TƯ LIỆU THÌ POST DÙM NHÉ! THANKS.............!
Trả lời: Có đó bạn. bạn cần tài liệu gì? Cho bạn cả hai luôn nhé
http://www.mediafire.com/?vewjymxyz2p
http://www.mediafire.com/?3bomjmmbd4e
mirror:
- 6
[Yêu cầu] lisp Phun tọa độ các điểm từ file txt vào CAD
trong AutoLisp
Đã đăng · Trả lời báo cáo
Cảm ơn bác Bách rất nhiều.