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

viết lisp cho lệnh lentheng

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

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.

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

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

  • 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
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  :"))
 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 (	 (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

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

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

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ô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.com/upfiles/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.

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  

×