Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
cdc123

[Hỏi] Tìm lisp lấy tọa độ điểm midpoint của cung tròn

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

Chào tất cả mọi người, Mình thấy diễn đàn có rất nhiều cao thủ autolisp. Hiện mình đang cần 1 đoạn lisp mà khi chọn đường cung tròn thì nó tự truy xuất ra tọa độ điểm midpoint của cung tròn đó. Nếu cao thủ nào biết được mà có ý tưởng thì giúp mình với. !Nếu không phiền thì gửi vào mail của mình là : phamtiendunggtvt@gmail.com. Cám ơn rất 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

Chào tất cả mọi người, Mình thấy diễn đàn có rất nhiều cao thủ autolisp. Hiện mình đang cần 1 đoạn lisp mà khi chọn đường cung tròn thì nó tự truy xuất ra tọa độ điểm midpoint của cung tròn đó. Nếu cao thủ nào biết được mà có ý tưởng thì giúp mình với. !Nếu không phiền thì gửi vào mail của mình là : phamtiendunggtvt@gmail.com. Cám ơn rất nhiều!

1. Em là member đang tập tành viết lisp thôi ạ, không phải là cao thủ gì cả.

2. Nếu về mặt ý tưởng thì theo em, lấy góc đầu góc cuối, và bán kính, tâm ( các mã dxf) sau đó dùng lệnh polar là tìm ra điểm giữa ngay ạ

3. Không biết là anh muốn xuất kết quả ra như thế nào, nên em tạm thời alert nó ra vậy :)

3. Em trả lời luôn ở đây ạ, không contact qua mail nữa. Forum public mà anh :)

(defun c:mar (/ i ans sta end ra cep cea mia)
(prompt "\nChon cung tron: ")(setq i 1 ans "")
(foreach ent (mapcar 'entget (acet-ss-to-list (ssget '((0 . "ARC")))))
	(setq sta (acet-dxf 50 ent) 
		end (acet-dxf 51 ent) 
		ra(acet-dxf 40 ent)
		cep (acet-dxf 10 ent)
		cea (/ (+ sta end) 2 )
		mia (polar cep cea ra)
		ans (strcat ans "Trung diem cung thu " (itoa i) " la: " (rtos (nth 0 mia) ) "," (rtos (nth 1 mia )) "," (rtos (nth 2 mia )) "\n")
		i (1+ i)
	)
)
(if (/= ans "") (alert ans))
)

  • 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

Chào tất cả mọi người, Mình thấy diễn đàn có rất nhiều cao thủ autolisp. Hiện mình đang cần 1 đoạn lisp mà khi chọn đường cung tròn thì nó tự truy xuất ra tọa độ điểm midpoint của cung tròn đó. Nếu cao thủ nào biết được mà có ý tưởng thì giúp mình với. !Nếu không phiền thì gửi vào mail của mình là : phamtiendunggtvt@gmail.com. Cám ơn rất nhiều!

Lisp lấy tọa độ điểm midpoint của Curve (bao gồm cung tròn)

(defun c:ment (/ ent)
 (vl-load-com)
 (defun midEnt(dt / obj)
   (vlax-curve-getPointAtDist
     (setq obj (vlax-ename->vla-object dt))
     (/ (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj))2) ))

 (if (and (setq ent (car (entsel "\nChon Curve: ")))
   (wcmatch (cdr(assoc 0 (entget ent))) "ARC,*LINE"))
   (progn
     ;(setq mid (midEnt ent))
     (princ (midEnt ent))
     ;(alert (vl-prin1-to-string (midEnt ent)))
     (entmake (list '(0 . "POINT")(cons 10 (midEnt ent)) ))))
 (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

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

Đăng nhập để thực hiện theo  

×