Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
2 replies to this topic

#1 cdc123

cdc123

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 08 June 2011 - 11:55 PM

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!
  • 0

#2 pdle

pdle

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 286 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 09 June 2011 - 12:58 AM

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

  • 1
Share your knowledge. It is a way to achieve immortality !

***

PS: Nếu bài viết của mình có ích, xin hãy "Bình chọn cho bài viết này" nhé :D

#3 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1432 Bài viết
Điểm đánh giá: 1425 (rất tốt)

Đã gửi 09 June 2011 - 07:49 AM

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

  • 1