Đến nội dung


Hình ảnh
- - - - -

viết lisp cho lệnh lentheng


  • Please log in to reply
6 replies to this topic

#1 vantran

vantran

    biết vẽ circle

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

Đã gửi 19 July 2009 - 07:54 PM

Khi vẽ mặt cắt địa chất tôi thường sử dụng lệnh len>T để sau đó nhập độ dài của đường thẳng. Tuy nhiên số lường đường thẳng này rất nhiều nên phải lặp đi lặp lại rất mất thời gian. Tôi đã tìm trên diễn đàn nhừng không tìm thấy. Bác nào có thể giúp đỡ vấn đề này không.Tôi muốn có một lisp mà mình chỉ cần đánh lệnh rồi nhập khoảng cách là được không phải lặp lại bước nhập lệnh len>T.
  • 0

#2 q288

q288

    biết lệnh fillet

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

Đã gửi 20 July 2009 - 08:02 AM

Khi vẽ mặt cắt địa chất tôi thường sử dụng lệnh len>T để sau đó nhập độ dài của đường thẳng. Tuy nhiên số lường đường thẳng này rất nhiều nên phải lặp đi lặp lại rất mất thời gian. Tôi đã tìm trên diễn đàn nhừng không tìm thấy. Bác nào có thể giúp đỡ vấn đề này không.Tôi muốn có một lisp mà mình chỉ cần đánh lệnh rồi nhập khoảng cách là được không phải lặp lại bước nhập lệnh len>T.


Lisp này dùng cho line, arc, pline, spline. Vì khi lengthen thì phải có 1 đầu cố định và 1 đầu di động nên phải định ra phía cần đổi.

(defun C:ll()
(vl-load-com)
(if (not lu) (setq lu 1))
(setq lu1 (getreal (strcat "\nChieu dai moi <" (rtos lu) "> :"))
ss (ssget '((0 . "LINE,ARC,*POLYLINE,SPLINE")))
ph (getpoint "Phia cua duong can thay doi:")
os (getvar "osmode"))
(if lu1 (setq lu lu1))
(setvar "osmode" 0)
(foreach v (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq obj (vlax-ename->vla-object v)
tt10 (vlax-curve-getStartPoint obj)
tt11 (vlax-curve-getEndPoint obj))
(if (< (distance ph tt10) (distance ph tt11))
(setq dc tt10)
(setq dc tt11))
(command "lengthen" "Total" lu (list v dc) ""))
(setvar "osmode" os)
)

  • 0

#3 xuantran15

xuantran15

    biết lệnh ddedit

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

Đã gửi 20 July 2009 - 08:04 AM

Khi vẽ mặt cắt địa chất tôi thường sử dụng lệnh len>T để sau đó nhập độ dài của đường thẳng. Tuy nhiên số lường đường thẳng này rất nhiều nên phải lặp đi lặp lại rất mất thời gian. Tôi đã tìm trên diễn đàn nhừng không tìm thấy. Bác nào có thể giúp đỡ vấn đề này không.Tôi muốn có một lisp mà mình chỉ cần đánh lệnh rồi nhập khoảng cách là được không phải lặp lại bước nhập lệnh len>T.

Đáp ứng yêu cầu của bạn đây.
; Lenh lengthen voi lua chon T
(defun c:et ()
(command "lengthen" "t" )
(princ)
)
Mình mới mò về lisp nên ko rành lắm, nhưng hy vọng nó đúng như ý bạn. :s_dead:
  • 1
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 20 July 2009 - 08:21 AM

Lisp này dùng cho line, arc, pline, spline. Vì khi lengthen thì phải có 1 đầu cố định và 1 đầu di động nên phải định ra phía cần đổi.


(defun C:ll()
(vl-load-com)
(if (not lu) (setq lu 1))
(setq lu1 (getreal (strcat "\nChieu dai moi <" (rtos lu) "> :"))
ss (ssget '((0 . "LINE,ARC,*POLYLINE,SPLINE")))
ph (getpoint "Phia cua duong can thay doi:")
os (getvar "osmode"))
(if lu1 (setq lu lu1))
(setvar "osmode" 0)
(foreach v (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq obj (vlax-ename->vla-object v)
tt10 (vlax-curve-getStartPoint obj)
tt11 (vlax-curve-getEndPoint obj))
(if (< (distance ph tt10) (distance ph tt11))
(setq dc tt10)
(setq dc tt11))
(command "lengthen" "Total" lu (list v dc) ""))
(setvar "osmode" os)
)

Chào bạn q288. Cảm ơn bạn vì Code trên. Rất hay
Tuy nhiên, Lisp chạy đúng với line, arc, pline, nhưng không còn đúng với Spline
  • 0

#5 q288

q288

    biết lệnh fillet

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

Đã gửi 20 July 2009 - 08:29 AM

Chào bạn q288. Cảm ơn bạn vì Code trên. Rất hay
Tuy nhiên, Lisp chạy đúng với line, arc, pline, nhưng không còn đúng với Spline


đ/v spline thì rút ngắn bớt thì đc, kéo dài thêm thì ko đc (vì có lẽ cad ko bít kéo dài như thế nào?) ,
đ/v các đg gấp khúc như pline cũng vậy.
  • 0

#6 tonducduong

tonducduong

    Chưa sử dụng CAD

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

Đã gửi 06 October 2009 - 02:37 PM

Tôi có một vấn đề thế này mong các ban giúp tôi với nhé! Tôi đang mắc về việc khai triển hình CÔN, và CÔN LỆCH, và cả CÚT nữa. Và còn khó hơn nữa là côn nhưng trên lại vuông dưói thì tròn. Mong các Pro giúp tôi nhé! Tôi mơi vào nghè mà. HuHu
  • 0

#7 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 October 2009 - 04:32 PM

Tôi có một vấn đề thế này mong các ban giúp tôi với nhé! Tôi đang mắc về việc khai triển hình CÔN, và CÔN LỆCH, và cả CÚT nữa. Và còn khó hơn nữa là côn nhưng trên lại vuông dưói thì tròn. Mong các Pro giúp tôi nhé! Tôi mơi vào nghè mà. HuHu

Chào bạn tonducduong,
Bạn hãy tham khảo cái này xem có đúng ý bạn không nhé
http://www.cadviet.c...iles/2/hd11.jpg

Nhắc bạn nên post bài đúng với topic nhé, đây là topic về lisp, bài của bạn nên post trong chuyên mục cơ khí sẽ có nhiều người đọc hơn.
Chúc bạn vui khi tham gia diễn đàn.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.