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

đoạn code chèn text vào tọa độ cho trước

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

Chào các bác. Mình viết đoạn code này nhưng không chạy được. các bác sửa giúp e với nhé.

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (polar (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645))))

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

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 các bác. Mình viết đoạn code này nhưng không chạy được. các bác sửa giúp e với nhé.

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (polar (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645))))

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

 

Mục tiêu của đoạn code là gì?

tức là đoạn code này dùng làm gì?

 

còn nếu chỉ để chạy được thì:

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 center)

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

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ục tiêu của đoạn code là gì?

tức là đoạn code này dùng làm gì?

 

còn nếu chỉ để chạy được thì:

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 center)

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

Mục

Mục tiêu của em là khi pick vào 1 điểm bất kỳ đoạn text đó sẽ gán vào một điểm có tọa độ khác tọa độ đó. em đang viết lisp chèn block và gán các thông số text vào block đó 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 các bác. Mình viết đoạn code này nhưng không chạy được. các bác sửa giúp e với nhé.

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (polar (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645))))

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

 

Hàm POLA dùng chỉ định 1 điểm từ 1 điểm cho trước, góc, khoảng cách:

(setq diemcan (polar diemgoc goc khoangcach))

Của bạn hình như thiếu cả góc lẩn khoảng cách.

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645)))

(setq LK (getstring "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

 

Mình doán ý bạn hỏi nhập 1 điểm và hỏi tên lô nó sẽ viết tên lô ra cái điểm cách điểm bạn nhập là 5.1771 và 21.0645 thì sửa lại như trê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
Mục

Mục tiêu của em là khi pick vào 1 điểm bất kỳ đoạn text đó sẽ gán vào một điểm có tọa độ khác tọa độ đó. em đang viết lisp chèn block và gán các thông số text vào block đó bác ạ

thế thì bạn loại bỏ hàm polar ra khỏi đoạn code trên là được.

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645)))

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

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àm POLA dùng chỉ định 1 điểm từ 1 điểm cho trước, góc, khoảng cách:

(setq diemcan (polar diemgoc goc khoangcach))

Của bạn hình như thiếu cả góc lẩn khoảng cách.

bác chỉnh sửa giúp em cho chạy được với. điểm tọa độ ghi text đó có khoảng cách với điểm pick là x= 5.177, y = 21.06.

e chưa hiểu hàm này 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
thế thì bạn loại bỏ hàm polar ra khỏi đoạn code trên là được.

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------Nhap ten lo------------------------------

(setq p1 (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645)))

(setq LK (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" LK)

)

được rồi ạ.cảm ơn các bác nhiều. CADVIET thật tuyệt vời

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

em viết các đoạn code tiếp theo thì không chạy đồng thời đươc. các bác chỉ giáo giúp em với nhé

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------chen block------------------------------

(command "insert" "vongtron" "center" "s" "" "" "" "")

;----------------------------------Nhap ten lo------------------------------

(setq p1 (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645)))

(setq abc (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" abc)

)

 

http://www.cadviet.com/upfiles/Drawing1_4.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
em viết các đoạn code tiếp theo thì không chạy đồng thời đươc. các bác chỉ giáo giúp em với nhé

 

(defun c:LK()

(setq Center (getpoint "\n nhap tam: "))

;----------------------------------chen block------------------------------

(command "insert" "vongtron" "center" "s" "" "" "" "")

;----------------------------------Nhap ten lo------------------------------

(setq p1 (list (+ (car Center) 5.1770) (+ (cadr Center) 21.0645)))

(setq abc (getreal "\n nhap ten lo: "))

(command "TEXT" p1 "" "" abc)

)

 

http://www.cadviet.com/upfiles/Drawing1_4.dwg

 

bạn bỏ dấu hai nháy (") ở 2 bên chữ center đi!

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 bỏ dấu hai nháy (") ở 2 bên chữ center đi!

Em biết lỗi nó rồi. Nhưng vấn đề ở chỗ là nó không chạy lệnh gán text 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
em bó tay rồi. Các bác viết hộ em lisp với nhé. các yêu cầu em đã ghi vao trong bản vẽ kèm theo

 

 

http://www.cadviet.com/upfiles/Drawing1_5.dwg

Viết cái này phải có thời gian. Bạn để tối tôi xem thử.

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
Em thank bác trước nghe

http://www.cadviet.com/upfiles/kyhieulo.zip

Đây bạn load file lisp này lên tạo đường dẩn đến file kyhieulodatduy.dwg.

Gỏ lệnh KHLD:

Hỏi tên lô: lisp sẽ tự thêm LK- phía trước tên lô.

Hỏi Chon diem trong vung kin can do:pic vào trong vùng cần đo nếu vùng chọn không kín thì nó lại hỏi Chon diem trong vung kin can do khi nào chọn được điểm trong vùng kín thì lisp chạy tiếp.

Hỏi Mot met hien hanh la (1) <Diem viet ket qua>: lisp mặc định 1 met là 1 đơn vị bản vẽ nếu muốn thay đổi thì bạn gỏ m lisp sẽ hỏi bạn nhập giá trị 1 mét là bao nhiêu đơn vị.

Chấp nhận giá trị 1 mét thì chọn 1 điểm lisp sẽ chèn ký hiệu và điển cácthông số theo ý bạ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
http://www.cadviet.com/upfiles/kyhieulo.zip

Đây bạn load file lisp này lên tạo đường dẩn đến file kyhieulodatduy.dwg.

Gỏ lệnh KHLD:

Hỏi tên lô: lisp sẽ tự thêm LK- phía trước tên lô.

Hỏi Chon diem trong vung kin can do:pic vào trong vùng cần đo nếu vùng chọn không kín thì nó lại hỏi Chon diem trong vung kin can do khi nào chọn được điểm trong vùng kín thì lisp chạy tiếp.

Hỏi Mot met hien hanh la (1) <Diem viet ket qua>: lisp mặc định 1 met là 1 đơn vị bản vẽ nếu muốn thay đổi thì bạn gỏ m lisp sẽ hỏi bạn nhập giá trị 1 mét là bao nhiêu đơn vị.

Chấp nhận giá trị 1 mét thì chọn 1 điểm lisp sẽ chèn ký hiệu và điển cácthông số theo ý bạn.

Bác duy ơi em download về rồi nhưng khi chạy báo lỗi không có hàm "boundPt". Bác kiểm tra giúp e nhé

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 duy ơi em download về rồi nhưng khi chạy báo lỗi không có hàm "boundPt". Bác kiểm tra giúp e nhé

 

;;;--------------------------------------------------------------------------

(defun boundpt (p / e res)

;;;Return T if p is in a closed area. Otherwise return nil

(setq e (entlast))

(command "boundary" p "")

(setq res (not (equal (entlast) e)))

(if res (command "erase" (entlast) ""))

res

)

;;;---------------------------------------------------------------------------

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
;;;--------------------------------------------------------------------------

(defun boundpt (p / e res)

;;;Return T if p is in a closed area. Otherwise return nil

(setq e (entlast))

(command "boundary" p "")

(setq res (not (equal (entlast) e)))

(if res (command "erase" (entlast) ""))

res

)

;;;---------------------------------------------------------------------------

Em hỏi thêm câu nữa.

(setq dientich (/ dtdoduoc (* motmetdt motmetdt)))

(setq HSSD (* dientich 40 5))

Em muốn làm tròn sau dấu phẩy 2 số thì mình làm thế nào bác.

Thank bác nhiều

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
Em hỏi thêm câu nữa.

(setq dientich (/ dtdoduoc (* motmetdt motmetdt)))

(setq HSSD (* dientich 40 5))

Em muốn làm tròn sau dấu phẩy 2 số thì mình làm thế nào bác.

Thank bác nhiều

 

(setq soketqua (rtos sobandau 2 4))

Cái màu đỏ là số sau dấu ,

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
(setq soketqua (rtos sobandau 2 4))

Cái màu đỏ là số sau dấu ,

Em thử rồi không được bác a. Bác cho em ví dụ cụ thể vào phép gán trong lisp bác viết cho em nhé 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
Em thử rồi không được bác a. Bác cho em ví dụ cụ thể vào phép gán trong lisp bác viết cho em nhé bác

Mấy bửa nay máy cơ quan hư mạng nên không trả lời bạn được.

Bạn tìm trong lisp của mình viết tìm dòng có chử rtos sửa số 4 thành số 2 là đượ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
Mấy bửa nay máy cơ quan hư mạng nên không trả lời bạn được.

Bạn tìm trong lisp của mình viết tìm dòng có chử rtos sửa số 4 thành số 2 là được.

Cảm ơn bác. E sửa được rồi.Hôm trước em không chú ý hàm đó viết ở dòng command.Bác ơi bác có cách đo diện tích nào khác không. Vì đường của em bị hở mà khó kiểm soát. bác có cách đo nào khác không.Nếu dùng lệnh Boundary vùng không kín thì lệnh không thực hiện đượ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
Cảm ơn bác. E sửa được rồi.Hôm trước em không chú ý hàm đó viết ở dòng command.Bác ơi bác có cách đo diện tích nào khác không. Vì đường của em bị hở mà khó kiểm soát. bác có cách đo nào khác không.Nếu dùng lệnh Boundary vùng không kín thì lệnh không thực hiện được.

Tùy yêu cầu của bạn thôi chọn đối tượng cũn được. Nhưng thường thì đo diện tích phải là plie khép kí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
Tùy yêu cầu của bạn thôi chọn đối tượng cũn được. Nhưng thường thì đo diện tích phải là plie khép kín.

Em biết điều đó.Nhưng do người khác vẽ nên rất khó để đảm bảo là vùng kín.Bác có đoạn code nào khác mà không cần dùng đến boundary không bác.lisp bác viết cho em em phát triển thấy rất tuyệt vời, em chỉ cong băn khoăn đó nữa thôi 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
Em biết điều đó.Nhưng do người khác vẽ nên rất khó để đảm bảo là vùng kín.Bác có đoạn code nào khác mà không cần dùng đến boundary không bác.lisp bác viết cho em em phát triển thấy rất tuyệt vời, em chỉ cong băn khoăn đó nữa thôi bác à.

 

bạn thay đoạn tạo pl bằng cách chọn 1 pline có sẳn là được mà. Nếu là bạn đã có đường pline mà không biết cách cải tạo lại code thì mình chỉnh cho 1 chút còn nếu chưa có pline luôn thì ngoìa cách pic điểm để tạo pline mình không nghỉ ra cách nào khá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
bạn thay đoạn tạo pl bằng cách chọn 1 pline có sẳn là được mà. Nếu là bạn đã có đường pline mà không biết cách cải tạo lại code thì mình chỉnh cho 1 chút còn nếu chưa có pline luôn thì ngoìa cách pic điểm để tạo pline mình không nghỉ ra cách nào khác.

OK em thử xem.Cảm ơn 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

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

×