Đến nội dung


Hình ảnh

đo chiều dài đường cong tại hai điểm bất kỳ


  • Please log in to reply
25 replies to this topic

#21 longbjch

longbjch

    biết zoom

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

Đã gửi 21 January 2014 - 04:53 PM

Đây bạn.

 

(defun C:HA( / obj1 obj2 p1 p2)
 (vl-load-com)
 (setq obj1 (car (entsel "\nChon duong cong: "))
       p1 (getpoint "\nP1: ")
  p2 (getpoint p1 "\nP2: ")
       obj2 (vlax-ename->vla-object (car (entsel "\nChon text: "))))
 (vla-put-TextString obj2 (rtos (abs (- (vlax-curve-getDistAtPoint obj1 p1) (vlax-curve-getDistAtPoint obj1 p2))) 2))
 (vla-put-Color obj2 1)
 (princ))
 

 anh ơi em hỏi đến bước chon text thì mình ấn gì để ra kết quả.


  • 0

#22 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 21 January 2014 - 05:01 PM


 anh ơi em hỏi đến bước chon text thì mình ấn gì để ra kết quả.

Đến bước chọn text thì mình bấm chọn vào 1 text trên bản vẽ.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#23 namnhim

namnhim

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 21 January 2014 - 10:25 PM

Mọi người ơi. có ai biết cách đo chiều dài đường cong giữa 2 điểm bất kỳ ko? giúp mình với.
hình như là có lệnh DAR để đo thì phải nhưng mình ko biết dùng. ai biết chỉ giùm nhé.

Hoặc là bạn có thể để cho nó hiện luôn ra Dim có Layer và kích thược màu đỏ cũng được.


(defun C:DIMARC ( / pt1 pt2 cen a1 a2 D1 D2 p r oldOs)
 (setq oldOs (getvar "OSMODE"))
 (prompt "Pick 2 points on an arc - ")
 (setvar "OSMODE" 512)
   (COMMAND "-LAYER" "m" "Dim" "color" 1 "" "")(PRINC)
 (while (not cen)
  (setq   pt1 (getpoint "1st pt: ")
   cen (osnap pt1 "_CEN")
  )
  (if (not cen) (alert "Doesn't lie on an arc, retry")
      (setq pt2 (getpoint cen " 2nd pt: ")))
 );while
 (setvar "OSMODE" 0)
 (setq a1 (angle cen pt1) a2 (angle cen pt2) ad (abs (- a2 a1))
   r (distance pt1 cen)
   D1 (* r ad)
   D2 (* r (- (* 2 pi) ad)) )
 (prompt (strcat "\nArc length: " (rtos D1) ",   complementar arc: " (rtos D2))) 
 (command "_DIMANGULAR" "" cen pt1 pt2 "_T" (rtos D1) pause)
 (setvar "OSMODE" oldOs)
 (prin1))
(princ "\nDIMARC command loaded.")
(princ)

  • 0

#24 namnhim

namnhim

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 21 January 2014 - 10:28 PM

Anh có thể cho xuất ra text sẵn có và đổi thành màu đỏ được ko ạ?

bạn có thể dùng cái này để đo và xuất luôn ra Dim có Layer và kích thước màu đỏ cũng được

(defun C:DIMARC ( / pt1 pt2 cen a1 a2 D1 D2 p r oldOs)
 (setq oldOs (getvar "OSMODE"))
 (prompt "Pick 2 points on an arc - ")
 (setvar "OSMODE" 512)
   (COMMAND "-LAYER" "m" "Dim" "color" 1 "" "")(PRINC)
 (while (not cen)
  (setq   pt1 (getpoint "1st pt: ")
   cen (osnap pt1 "_CEN")
  )
  (if (not cen) (alert "Doesn't lie on an arc, retry")
      (setq pt2 (getpoint cen " 2nd pt: ")))
 );while
 (setvar "OSMODE" 0)
 (setq a1 (angle cen pt1) a2 (angle cen pt2) ad (abs (- a2 a1))
   r (distance pt1 cen)
   D1 (* r ad)
   D2 (* r (- (* 2 pi) ad)) )
 (prompt (strcat "\nArc length: " (rtos D1) ",   complementar arc: " (rtos D2))) 
 (command "_DIMANGULAR" "" cen pt1 pt2 "_T" (rtos D1) pause)
 (setvar "OSMODE" oldOs)
 (prin1))
(princ "\nDIMARC command loaded.")
(princ)

  • 0

#25 thuynguyet009

thuynguyet009

    Chưa sử dụng CAD

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

Đã gửi 04 December 2014 - 10:20 AM

l

 

Đây bạn.

 

(defun C:HA( / obj1 obj2 p1 p2)
 (vl-load-com)
 (setq obj1 (car (entsel "\nChon duong cong: "))
       p1 (getpoint "\nP1: ")
  p2 (getpoint p1 "\nP2: ")
       obj2 (vlax-ename->vla-object (car (entsel "\nChon text: "))))
 (vla-put-TextString obj2 (rtos (abs (- (vlax-curve-getDistAtPoint obj1 p1) (vlax-curve-getDistAtPoint obj1 p2))) 2))
 (vla-put-Color obj2 1)
 (princ))
 

Bác ơi có thể sửa lại một chút là mình đo được ra kết quả như một đường kích thước bình thường không? Cảm ơn bác rất nhiều.


  • 0

#26 thuynguyet009

thuynguyet009

    Chưa sử dụng CAD

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

Đã gửi 04 December 2014 - 10:28 AM

bạn có thể dùng cái này để đo và xuất luôn ra Dim có Layer và kích thước màu đỏ cũng được

(defun C:DIMARC ( / pt1 pt2 cen a1 a2 D1 D2 p r oldOs)
 (setq oldOs (getvar "OSMODE"))
 (prompt "Pick 2 points on an arc - ")
 (setvar "OSMODE" 512)
   (COMMAND "-LAYER" "m" "Dim" "color" 1 "" "")(PRINC)
 (while (not cen)
  (setq   pt1 (getpoint "1st pt: ")
   cen (osnap pt1 "_CEN")
  )
  (if (not cen) (alert "Doesn't lie on an arc, retry")
      (setq pt2 (getpoint cen " 2nd pt: ")))
 );while
 (setvar "OSMODE" 0)
 (setq a1 (angle cen pt1) a2 (angle cen pt2) ad (abs (- a2 a1))
   r (distance pt1 cen)
   D1 (* r ad)
   D2 (* r (- (* 2 pi) ad)) )
 (prompt (strcat "\nArc length: " (rtos D1) ",   complementar arc: " (rtos D2))) 
 (command "_DIMANGULAR" "" cen pt1 pt2 "_T" (rtos D1) pause)
 (setvar "OSMODE" oldOs)
 (prin1))
(princ "\nDIMARC command loaded.")
(princ)

Cái này mở rộng cho đo pline được không bạn?


  • 0