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

Cần lisp đánh toạ độ cọc.

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

Mình lại gặp rắc rối với mấy cái cọc,chán ghê,nhờ các bác giúp đỡ,mình chỉ là newbie đang mò mẫm về Autolisp.

Mình có 1 mặt bằng cọc gần cả ngàn cọc nhưng bên nhà thầu thi công lại yêu cầu phải đánh toạ độ quốc gia cho từng cái cọc ấy,thế có chết kô chứ.Mình xin nhờ các bác giúp giùm cái lisp khi chọn vào các vòng tròn ( cọc ) thì nó sẽ ghi ra toạ độ tâm của vòng tròn bên cạnh vòng tròn đó so với 1 toạ độ đã ấn định trước.

Xin các bác giúp giùm mình,đang cần gấp lắm,nhà thầu thi công hối từng ngày.Cám ơn các bác trước nhé. :mellow:

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 lại gặp rắc rối với mấy cái cọc,chán ghê,nhờ các bác giúp đỡ,mình chỉ là newbie đang mò mẫm về Autolisp.

Mình có 1 mặt bằng cọc gần cả ngàn cọc nhưng bên nhà thầu thi công lại yêu cầu phải đánh toạ độ quốc gia cho từng cái cọc ấy,thế có chết kô chứ.Mình xin nhờ các bác giúp giùm cái lisp khi chọn vào các vòng tròn ( cọc ) thì nó sẽ ghi ra toạ độ tâm của vòng tròn bên cạnh vòng tròn đó so với 1 toạ độ đã ấn định trước.

Xin các bác giúp giùm mình,đang cần gấp lắm,nhà thầu thi công hối từng ngày.Cám ơn các bác trước nhé. :mellow:

Bạn dùng thử lisp này, lệnh CC, chọn hàng loạt vòng tròn. Chỗ nào chưa đúng ý (liên quan đến toạ độ quy ước, trình bày kết quả...) thì nêu cụ thể, sửa 1 phát nữa là OK:

;;;-------------------------------------------------------
(defun wtxt (txt p / sty d h) ;;;Write txt on graphic screen, defaul setting
(setq
   sty (getvar "textstyle")
   d (tblsearch "style" sty)
   h (cdr (assoc 40 d))
)
(if (= h 0) (setq h (cdr (assoc 42 d))))
(entmake
   (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 40 h) (assoc 41 d))
)
)
;;;-------------------------------------------------------
(defun C:CC( / ss e p) ;;;Coordinate of Circles
(setq ss (ssget '((0 . "CIRCLE"))))
(while (setq e (ssname ss 0))
   (setq p (cdr (assoc 10 (entget e))))
   (wtxt (strcat "x=" (rtos (car p)) "; y=" (rtos (cadr p))) p)
   (ssdel e ss)
)
(princ)
)
;;;-------------------------------------------------------

  • 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
Bạn dùng thử lisp này, lệnh CC, chọn hàng loạt vòng tròn. Chỗ nào chưa đúng ý (liên quan đến toạ độ quy ước, trình bày kết quả...) thì nêu cụ thể, sửa 1 phát nữa là OK:

;;;-------------------------------------------------------
(defun wtxt (txt p / sty d h) ;;;Write txt on graphic screen, defaul setting
(setq
   sty (getvar "textstyle")
   d (tblsearch "style" sty)
   h (cdr (assoc 40 d))
)
(if (= h 0) (setq h (cdr (assoc 42 d))))
(entmake
   (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 40 h) (assoc 41 d))
)
)
;;;-------------------------------------------------------
(defun C:CC( / ss e p) ;;;Coordinate of Circles
(setq ss (ssget '((0 . "CIRCLE"))))
(while (setq e (ssname ss 0))
   (setq p (cdr (assoc 10 (entget e))))
   (wtxt (strcat "x=" (rtos (car p)) "; y=" (rtos (cadr p))) p)
   (ssdel e ss)
)
(princ)
)
;;;-------------------------------------------------------

 

Mình làm được rồi,cám ơn bác ssg nhiều 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

Hay quá, mình muốn hỏi ssg là bạn có thể viết cho mình một cái list để đánh toạ độ điểm được không và toạ độ XY khi hiện lên có thể chỉnh được thành 1 hoặc 2 hàng tuỳ bố cục bản vẽ.

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ạn dùng thử lisp này, lệnh CC, chọn hàng loạt vòng tròn. Chỗ nào chưa đúng ý (liên quan đến toạ độ quy ước, trình bày kết quả...) thì nêu cụ thể, sửa 1 phát nữa là OK:

;;;-------------------------------------------------------
(defun wtxt (txt p / sty d h) ;;;Write txt on graphic screen, defaul setting
(setq
   sty (getvar "textstyle")
   d (tblsearch "style" sty)
   h (cdr (assoc 40 d))
)
(if (= h 0) (setq h (cdr (assoc 42 d))))
(entmake
   (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 40 h) (assoc 41 d))
)
)
;;;-------------------------------------------------------
(defun C:CC( / ss e p) ;;;Coordinate of Circles
(setq ss (ssget '((0 . "CIRCLE"))))
(while (setq e (ssname ss 0))
   (setq p (cdr (assoc 10 (entget e))))
   (wtxt (strcat "x=" (rtos (car p)) "; y=" (rtos (cadr p))) p)
   (ssdel e ss)
)
(princ)
)
;;;-------------------------------------------------------

Bác ơi ! Sao em dùng lisp này ko được nhỉ ??? Gõ AP và Load file này rồi ra ngoài màn hình gõ CC ko thấy gì cả ??? Thx

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 ơi ! Sao em dùng lisp này ko được nhỉ ??? Gõ AP và Load file này rồi ra ngoài màn hình gõ CC ko thấy gì cả ??? Thx

Đừng dowload bằng cách click vào Download lisp file.

(chức năng này của diễn đàn đang bị lỗi)

Bạn copy toàn bộ text trong mục CODEBOX và luu thành file *.lsp.

 

hoặc tại file CC.lsp (mà bạn đã dowload bằng cách click vào Download lisp file. )

thay thế dòng (setq ss (ssget \'((0 . "CIRCLE"))))

bằng dòng : (setq ss (ssget '((0 . "CIRCLE"))))

 

To ADMIN :

- đề nghị Admin xem xét, cân nhắc giữa tiện lợi và phiền phức của chức năng Download lisp file trên diễn đàn !

  • 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
Đừng dowload bằng cách click vào Download lisp file.

(chức năng này của diễn đàn đang bị lỗi)

Bạn copy toàn bộ text trong mục CODEBOX và luu thành file *.lsp.

 

hoặc tại file CC.lsp (mà bạn đã dowload bằng cách click vào Download lisp file. )

thay thế dòng (setq ss (ssget \'((0 . "CIRCLE"))))

bằng dòng : (setq ss (ssget '((0 . "CIRCLE"))))

 

To ADMIN :

- đề nghị Admin xem xét, cân nhắc giữa tiện lợi và phiền phức của chức năng Download lisp file trên diễn đàn !

Đúng vậy ! Em đã làm được rồi , cảm ơn bác nhiều nhé .

 

Tiện đây ,cho em hỏi thêm là có lisp (hay lệnh) nào có thể chèn 1 ký tự bất kỳ (VD như P , B...) vào 1 số hoặc 1 nhóm số được chọn (sẽ thành P1 ,P2...B1...) không ạ ?

 

Thx các bác đã quan tâ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

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

×