Chuyển đến nội dung
Diễn đàn CADViet
dung12789

[yêu cầu] Lisp lấy cao độ và khoảng cách lẻ giữa các đỉnh của pline

Các bài được khuyến nghị

hik! nhờ các cao thủ viết giùm em đoạn lisp để em làm được giống như file e đính kèm, cái em cần là cao độ của các đỉnh của pline (so với mss) và khoảng cách lẻ giữa các đỉnh đó.e làm thủ công nhọc quá đi mất.

file của em đây:http://www.cadviet.c..._drawing1_5.dwg

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

hik! nhờ các cao thủ viết giùm em đoạn lisp để em làm được giống như file e đính kèm, cái em cần là cao độ của các đỉnh của pline (so với mss) và khoảng cách lẻ giữa các đỉnh đó.e làm thủ công nhọc quá đi mất.

file của em đây:http://www.cadviet.c..._drawing1_5.dwg

 

Mình chỉ có vb hoặc vba thôi, nếu bạn cần thì mình sẽ làm cho bạn, đây là file hướng dẫn bạn xem qua nhé:

http://www.mediafire.com/download.php?3mv6hu0atr1rmdp

  • 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

 

Mình chỉ có vb hoặc vba thôi, nếu bạn cần thì mình sẽ làm cho bạn, đây là file hướng dẫn bạn xem qua nhé:

http://www.mediafire...3mv6hu0atr1rmdp

ôi cái của bạn hay quá! không biết cái tiện ích thiết kế đó lấy ở đâu vậy bạn?

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
redsea_tq đâu mất rồi!

Hề hề hề,

Redsea_tq đi vắng, bạn dùng thử cái này coi đã ưng ý chưa nhé.

Mình test thử trên file bản vẽ bạn gửi thì cao độ ra đúng nhưng chiều dài từng khúc trên pline có sai lệch nhất định. Có lẽ là do bạn đã tính toán bằng tay nên sinh ra sai số. Còn mình tin là lisp chạy không sai.

Do bạn không nói rõ các yêu cầu nên mình tạm thời để bạn tự chọn chiều cao text, vị trí đặt text sao cgo vừa mắt bạn. Nếu bạn có thể xác định vị trí của các text theo một quy luật nào đó thì mình có thể chỉnh sửa điều này.

Đây chỉ là lisp sơ bộ bước đầu theo ý phỏng đoán của mình về yêu cầu của bạn nên có thể chưa thực sự đạt yêu cầu. muốn hoàn thiện nó bạn cần phải nói rõ hơn các yêu cầu của bạn mới được.

Rất mong bạn test thử và cho ý kiến.

(defun c:elale ()
(vl-load-com)
(command "undo" "be")
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setq en (car (entsel "\n Chon pline la duong nghiem thu "))
         plst (acet-geom-vertex-list en)
         pg (getpoint "\n Chon diem goc tinh toan")
         hg (getreal "\n Nhap gia tri cao do goc")
         i 0
         n (length plst)
         h (getreal "\n Nhap chieu cao text")
)
(foreach p plst
       (setq elev (+ hg (- (cadr p) (cadr pg))))
       (command "text" (getpoint "\n Chon diem nhap cao do ") h 90 (rtos elev 2 2))
       (if (and (> i 0) (< i n))
           (progn
                 (setq len (distance (nth (1- i) plst) (nth i plst)))
                 (command "text" (getpoint "\n Chon diem nhap chieu dai duong nghiem thu ") h 0 (rtos len 2 2) )
          )
      )
      (setq i (1+ i))
)
(command "undo" "e")
(princ)
)

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

Bác PTB! Bác dùng (command "text"...) trong trường hợp này có khi gây lỗi nếu như style curent có height khác 0 đấy!

Nếu bác dùng entmake thì mackeno luôn!

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

Redsea_tq đi vắng, bạn dùng thử cái này coi đã ưng ý chưa nhé.

Mình test thử trên file bản vẽ bạn gửi thì cao độ ra đúng nhưng chiều dài từng khúc trên pline có sai lệch nhất định. Có lẽ là do bạn đã tính toán bằng tay nên sinh ra sai số. Còn mình tin là lisp chạy không sai.

Do bạn không nói rõ các yêu cầu nên mình tạm thời để bạn tự chọn chiều cao text, vị trí đặt text sao cgo vừa mắt bạn. Nếu bạn có thể xác định vị trí của các text theo một quy luật nào đó thì mình có thể chỉnh sửa điều này.

Đây chỉ là lisp sơ bộ bước đầu theo ý phỏng đoán của mình về yêu cầu của bạn nên có thể chưa thực sự đạt yêu cầu. muốn hoàn thiện nó bạn cần phải nói rõ hơn các yêu cầu của bạn mới được.

Rất mong bạn test thử và cho ý kiến.

(defun c:elale ()
(vl-load-com)
(command "undo" "be")
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setq en (car (entsel "\n Chon pline la duong nghiem thu "))
         plst (acet-geom-vertex-list en)
         pg (getpoint "\n Chon diem goc tinh toan")
         hg (getreal "\n Nhap gia tri cao do goc")
         i 0
         n (length plst)
         h (getreal "\n Nhap chieu cao text")
)
(foreach p plst
       (setq elev (+ hg (- (cadr p) (cadr pg))))
       (command "text" (getpoint "\n Chon diem nhap cao do ") h 90 (rtos elev 2 2))
       (if (and (> i 0) (< i n))
           (progn
                 (setq len (distance (nth (1- i) plst) (nth i plst)))
                 (command "text" (getpoint "\n Chon diem nhap chieu dai duong nghiem thu ") h 0 (rtos len 2 2) )
      	)
  	)
  	(setq i (1+ i))
)
(command "undo" "e")
(princ)
)

Chúc bạn vui.

rất cảm ơn bác về cái lisp của bác, nhưng mà nếu nó tự động xuất ra hết kết quả thì hay biết máy, được như vậy thì cảm ơn bác lắm lắ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

lục lọi trên mạng suốt từ hôm qua tới giờ, cuối cùng cũng kiếm được cái này, pót lên cho anh em nào cần. (lưu ý trước khi thực hiện lệnh cần vẽ đầy đủ hết các đường gióng)

http://www.cadviet.c...3/65908_dvb.rar

chúc anh em diễn đàn nhiều sức khỏe!

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

Xin Lỗi bạn vì hôm qua vào rồi nhưng lại phải out ngay nên không nhận được phản hồi của bạn. Mình sẽ gửi cho bạn file đó:

yêu cầu:

Load 2 file HL.dvb và HL.lsp lên rồi dùng lệnh HL, chú ý làm theo yêu cầu của dòng command nhé.

http://www.mediafire.com/?d3svaq9coxkxdm9

  • 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

Xin Lỗi bạn vì hôm qua vào rồi nhưng lại phải out ngay nên không nhận được phản hồi của bạn. Mình sẽ gửi cho bạn file đó:

yêu cầu:

Load 2 file HL.dvb và HL.lsp lên rồi dùng lệnh HL, chú ý làm theo yêu cầu của dòng command nhé.

http://www.mediafire...d3svaq9coxkxdm9

tuyệt vời bác ah! em làm được rồi. thank bác nhiều nhé.

chúc bác nhiều sức khỏe.

  • Vote giảm 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

rất cảm ơn bác về cái lisp của bác, nhưng mà nếu nó tự động xuất ra hết kết quả thì hay biết máy, được như vậy thì cảm ơn bác lắm lắm!

Hề hề hề,

Chưa hiểu rõ ý bạn nói tự động xuất hết kết quả ra là sao cả??? Mình đã nói trong bài trước là do chưa biết ý bạn định ghi Text theo kiểu gì nên chỉ lảm tạm như vầy để ban tùy chọn điểm đạt text cũng như chiều cao text mà lị. Nếu bạn muốn nó tự động ghi thì bạn phải cho biết cái quy định ghi text của bạn ra sao chứ.....

Còn nếu bạn yêu cầu tự động chọn cả đường nghiệm thu cũng không phải quá khó nhưng bạn cần cho biết rõ cái đường nghiệm thu của bạn có thuộc tính gì riêng biệt chứ nếu không lisp có thể chọn nhầm bạn ạ. Việc tự động chọn điểm gốc và cao độ gốc cũng vậy. nếu các bản vẽ của bạn thống nhất về điểm gốc này cũng như cao độ gốc thì mới tự động được bạn ạ.

Bạn hãy gửi một bản vẽ chuẩn và các yêu cầu tự động như bạn nói mình có thể làm theo cài bản vẽ chuẩn ấy chứ không thể tự động theo các chuẩn lung tung được bạn ạ.

@ Bác doanvanha: Đúng như bác góp ý. nhưng vì đây là mình xem voi nên cứ làm tạm thế để bạn đó test, sau đó nếu cần thì chỉnh sửa sau một thể bác ạ.

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

Chưa hiểu rõ ý bạn nói tự động xuất hết kết quả ra là sao cả??? Mình đã nói trong bài trước là do chưa biết ý bạn định ghi Text theo kiểu gì nên chỉ lảm tạm như vầy để ban tùy chọn điểm đạt text cũng như chiều cao text mà lị. Nếu bạn muốn nó tự động ghi thì bạn phải cho biết cái quy định ghi text của bạn ra sao chứ.....

Còn nếu bạn yêu cầu tự động chọn cả đường nghiệm thu cũng không phải quá khó nhưng bạn cần cho biết rõ cái đường nghiệm thu của bạn có thuộc tính gì riêng biệt chứ nếu không lisp có thể chọn nhầm bạn ạ. Việc tự động chọn điểm gốc và cao độ gốc cũng vậy. nếu các bản vẽ của bạn thống nhất về điểm gốc này cũng như cao độ gốc thì mới tự động được bạn ạ.

Bạn hãy gửi một bản vẽ chuẩn và các yêu cầu tự động như bạn nói mình có thể làm theo cài bản vẽ chuẩn ấy chứ không thể tự động theo các chuẩn lung tung được bạn ạ.

@ Bác doanvanha: Đúng như bác góp ý. nhưng vì đây là mình xem voi nên cứ làm tạm thế để bạn đó test, sau đó nếu cần thì chỉnh sửa sau một thể bác ạ.

Thanks bác đã quan tâm, e dùng cái vba của bác redsea_tq thấy ok lắm rồi. hi!

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

Trước em chạy bình thường nhưng sau khi cài lại win thì không dùng được nữa và báo lỗi như trên. Có anh nào giúp được em với không ạ, em đang cần gấp. Em xin chân thành cảm ơn

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

Xin Lỗi bạn vì hôm qua vào rồi nhưng lại phải out ngay nên không nhận được phản hồi của bạn. Mình sẽ gửi cho bạn file đó:

yêu cầu:

Load 2 file HL.dvb và HL.lsp lên rồi dùng lệnh HL, chú ý làm theo yêu cầu của dòng command nhé.

http://www.mediafire.com/?d3svaq9coxkxdm9

Bác redsea_tq có thể sửa lại để tính theo tỉ lệ của bản vẽ dùm em không bác

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

 chào anh redsea_tq,  cảm ơn anh đã chia sẻ lisp HL .em cũng dùng lisp HL của anh nhưng  chỉ ra đường dóng, ko ra khoảng cách lẻ và cao độ. em ko hiểu mong anh chỉ giúp em với. cảm ơn anh nhiều!http://www.cadviet.com/upfiles/5/122801_19.dwg

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 có một số trắc ngang, mình muốn chuyển khoảng cách lẻ và cao độ tự nhiên của TN đó thành file txt để dán lại vào file khảo sát theo định dạng ở dưới, rất mong mấy anh giúp đỡ. File cad và yêu cầu nằm trong bản vẽ: http://www.cadviet.com/upfiles/5/23335_copy_of_km8km9sua.dwg

1. Lấy khoảng và ghi cách lẻ và cao độ  phía bên trái pline(tại các đỉnh có STT màu xanh) theo thứ tự từ phải sang trái vào file .txt (theo định dạng: khoảng cách lẻ 1  --> tab --> cao độ 1 --> enter--->khoang cách lẻ 2 --> tab --> cao độ 2 và theo thứ tự )

2. Lấy khoảng cách lẻ và cao độ  phía bên phải pline(tại các đỉnh có STT màu đỏ) theo thứ tự từ trái sang  phải vào file .txt (theo định dạng: khoảng cách lẻ 1  --> tab --> cao độ 1 --> enter--->khỏang cách lẻ 2 --> tab --> cao độ 2 và theo thứ tự )

3. Xuất các giá trị thành file .txt

4. Cao độ chuẩn lấy từ cao độ của điểm 1 (text ở bên dưới, trong bản vẽ này là 41.25 )

VÍ DỤ ĐỊNH DẠNG FILE TXT:

PHÍA TRÁI:

khoảng cách lẻ từ 1->2  (tab) cao độ điểm 2  (enter)

khoảng cách lẻ từ 2->3  (tab) cao độ điểm 3  (enter)

.....

(hàng trống để phân biệt trái phải)

PHÍA PHẢI:

khoảng cách lẻ từ 1->2  (tab) cao độ điểm 2  (enter)

khoảng cách lẻ từ 2->3  (tab) cao độ điểm 3  (enter)

.....

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


×