Chuyển đến nội dung
Diễn đàn CADViet
ThuyLinh313

Cải tạo các lệnh cơ bản của cad

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

Không cần phải là những đoạn code quá cao siêu, chỉ cần 1 vài đoạn code nhỏ, đơn giản để thay đổi cách thức làm việc các lệnh cơ bản của cad có thê khiến tốc độ vẽ của bạn tăng lên rất nhiều bởi đó là các lệnh chúng ta phải sử dụng thường xuyên. Mình lập topic này hi vọng mọi người cùng đóng góp ý tưởng. Khi không hài lòng với lệnh nào đó, thấy nó rườm rà 1 bước nào đó, có thể bỏ qua 1 bước nào đó hoặc thêm 1 bước nào đó để nó dễ dàng hơn cho quá trình vẽ thì post vào đây.

Topic này mình không thuộc mấy thể loại [hỏi, yêu cầu, đã xong, nhờ chỉnh sửa] nên không đặt tiền tố. Nhờ mod phụ trách box lisp đặt lại cho thích hợp dùm mình. Cảm ơn mod! Mình là kẻ khai mào nên đi trước:

 

1. chúng ta thường phải chọn [tập hợp đối tượng chọn của lệnh trước đó] bằng phím P (Previous) khi con trỏ đang ở chế độ chọn đối tượng cho lệnh hiện hành. hơi bất tiện vì phím P ở khá xa tay trái. Mình chuyển nó về phím space luôn cho các lệnh cơ bản: Copy, move, rotate, stretch, scale, miror, draw order. Khi sử dụng các lệnh này, sau khi gõ lệnh bạn chỉ cần nhấn space thêm 1 lần là chọn được các đối tượng trước luôn.

;;; Copy
(defun C:C   (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "Copy" SS "" "M")
(vl-cmdf "Copy" "P" "" "M"))
 (princ))

;;; Move
(defun C:M   (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "Move" SS "")
(vl-cmdf "Move" "P" ""))
 (princ))

;;; Rotate
(defun C:R   (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "Rotate" SS "")
(vl-cmdf "Rotate" "P" ""))
 (princ))

;;; Stretch
(defun C:S   (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "STRETCH" SS "")
(vl-cmdf "STRETCH" "P" ""))
 (princ))

;;; Scale
(defun C:SC  (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "Scale" SS "")
(vl-cmdf "Scale" "P" ""))
 (princ))

;;; Miror
(defun C:Mi  (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "mirror" SS "")
(vl-cmdf "mirror" "P" ""))
 (princ))

;;; DrawOrder
(defun C:DR  (/ SS)
 (if (setq SS (ssget))
(vl-cmdf "DRAWORDER" SS "")
(vl-cmdf "DRAWORDER" "P" ""))
 (princ))

2. Nhưng nếu bạn muốn chọn tập hợp Previuos trước cho 1 lênh nào khác mấy lệnh trên thì sao. Bạn có thể dùng lệnh này:

(defun C:SS (/ ss)
 (or
(not (equal '(nil nil) (sssetfirst nil (ssget "p"))))
(prompt " ** Khong co doi tuong nao duoc chon **"))
 (princ))

  • Vote tăng 3

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

Cái này có gặp 1 trở ngại nhỏ:

1). Khi dùng chúng thì ngoài phím space, thêm phím enter cũng hiệu nghiệm, khiến cho không thể thoát lệnh bằng enter được, trong khi cad cho thoát lệnh bằng enter (thoát ngay sau khi gọi lệnh chứ chưa chọn đối tượng).

2). Có nên dùng C thay cho Copy và R thay cho Rotate không vì C và R trùng với 2 lệnh tắt của Cad là Circle và Redraw.

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

1) Theo đánh giá chủ quan của mình (và theo số liệu thống kê trong 1 tài liệu mà mình đã từng đọc ở đâu đó trong 4r này) thì chúng ta thường dùng Esc để thoát lệnh nhiều hơn dùng Space rất nhiều. Dùng Esc gần như là phản xạ vô thức bạn ạ. sau khi mình dùng phương pháp trên 1 thời gian thì thấy tốc độ vẽ tăng lên rất nhiều. bạn cứ thử xem thế nào nhé.

2) về tên lệnh: vì đây là các lệnh cơ bản mà chúng ta sử dụng với mật độ thường xuyên nhất nên mình ưu tiên chuyển về các phím dễ gõ, đa số mọi người đều vậy mà. Mượn thì phải trả, bạn có thể đổi các lệnh bị lấy sang lệnh khác (ví dụ: rt = rotate, cx = Circle...) nếu không quen thì có thể tùy biến cho phù hợp với nhu cầu mỗi người. Điều mà mình muốn nhấn mạnh ở topic này là ý tưởng cải tạo lệnh cad chứ không nặng nề cái tên lệnh như thế nào bạn ạ.

---------------------------------------------------

Mình tiếp tục nhé. Lệnh J (Join) đưa ra phương pháp chọn đối tượng không được tối ưu cho lắm. Thứ tự chọn của nó: đầu tiên chọn đối tượng gốc rồi sau đó mới chọn lần lượt các đối tượng muốn join với nó. mất 2 lần select đối tượng và mỗi lần gõ lệnh chỉ tạo ra được 1 đối tượng cuối. mình cải tạo nó thế này: gõ lệnh và chọn tập hợp muốn join với nhau luôn. các đối tượng nào có thể join được với nhau sẽ tự join. Cái này gọi là Join hàng loạt ^^

(defun c:j (/ en lst ss n)
(and
 (setq n 0 ss (ssget))
 (while (< n (sslength ss))
  (setq en (ssname ss n) n (1+ n))
  (vl-cmdf "join" en ss "")))
(princ))

Nếu sử dụng lệnh này cho các bản vẽ bị phá khối nát thành các line sẽ thấy cực kỳ hiệu quả. nhất là các bản vẽ bình đồ đường đồng mức bị phá

  • 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

Mình hoàn toàn không ủng hộ việc dùng phím ESC để thoát lệnh, nó làm các ứng dụng lisp bị thoát đột ngột và nhiều thiết lập tạm thời không thể khôi phục như người viết mong muốn. Ví dụ, trước khi sử dụng những công việc liên quan đến tọa độ, mình thường chuyển UCS về world, dùng xong thì chuyển UCS về Previous. Nếu lệnh bị hủy giữa chừng bằng phím ESC thì việc không phục lại hệ tọa độ cũng sẽ không được thực hiện.

Nhiều thiết lập khác cũng vậy, ví dụ, trước khi sửa (xóa, hiệu chỉnh, tạo) hàng loạt đối tượng (~100 chẳng hạn), mình thường bắt đầu UNDO + BEGIN, làm xong thì UNDO + END. Khi đó, nếu người dùng không vừa lòng, họ chỉ cần UNDO 1 lần (thay vì 100 lần) để trở về ban đầu.Việc hủy lệnh giữa chừng sẽ khiến lệnh UNDO + END thực hiện, vì vậy, khi gọi lệnh UNDO, nó bắt buộc người dùng phải END bằng tay. Nhiều người dùng CAD không biết việc này nên nghĩ rằng CAD bị lỗi mới ghê chớ!!

Nói thật, mình rất không vừa lòng khi thấy ai đó dùng Lisp của mình mà thoát ngang như vậy, nó có thể làm cho các thiết lập bình thường trong CAD bị thay đổi một cách khó kiểm soát.

Đôi lời chia sẻ cùng bạn!

  • 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

1) Theo đánh giá chủ quan của mình (và theo số liệu thống kê trong 1 tài liệu mà mình đã từng đọc ở đâu đó trong 4r này) thì chúng ta thường dùng Esc để thoát lệnh nhiều hơn dùng Space rất nhiều. Dùng Esc gần như là phản xạ vô thức bạn ạ. sau khi mình dùng phương pháp trên 1 thời gian thì thấy tốc độ vẽ tăng lên rất nhiều. bạn cứ thử xem thế nào nhé.

2) về tên lệnh

2). OK

1). Hình như bạn hiểu nhầm ý tôi. Ý tôi là, ví dụ với lệnh Copy:

- Với Cad: sau khi nhập Copy/Co/Cp xong nhưng bỗng dưng bạn không muốn dùng mà muốn thoát luôn (chưa chọn objects) thì dùng Enter là thoát được.

- Với lệnh sửa C: không dùng được Enter để thoát như trên.

Như vậy ý tôi muốn nói: nếu dùng lệnh sửa C thì bị mất bớt đi 1 kiểu thoát (thoát bằng enter).

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

Về tên lệnh, theo quan điểm của mình, dù sao vẫn không nên đè lên các thiết lập có sẵn của AutoCAD. Nó được AutoDesk thiết lập dựa trên phản hồi của nhiều người dùng ở nhiều nước khác nhau. Nếu có ai đó mượn máy tính của mình, người ta sẽ không thể sử dụng bthường được.

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

@DOAN VAN HA: Mình hiểu ý bạn mà. và như mình nói ở trên, mình thay thế 1 chức năng ít dùng (space để thoát lệnh) và đã có phương án thay thế mà đa số chúng ta vẫn dùng (Esc) bằng 1 tiện ích hay dùng hơn (space để select previous). Đó là ý tưởng mà mình thấy hiệu quả, còn lựa chọn nó hay không là tùy mỗi người pkn?

 

Nói thật, mình rất không vừa lòng khi thấy ai đó dùng Lisp của mình mà thoát ngang như vậy, nó có thể làm cho các thiết lập bình thường trong CAD bị thay đổi một cách khó kiểm soát.

- Mấy lệnh trên mình đã cân nhắc, và chắc chắn việc Esc không ảnh hưởng đến bất kỳ thiết lập nào của cad. xem code bạn sẽ hiểu pk?

- 1 Quy tắc bắt buộc đối với người lập trình bạn phải nhớ là: Bạn không có quyền bắt người dùng phải ứng xử thế nào với sản phẩm bạn viết ra. họ luôn làm việc theo thói quen của họ. Nếu chương trình phát sinh lỗi do vô tình hay cố ý của người dùng thì trách nhiệm thuộc về bạn chứ, sao lại đổ lỗi cho họ không biết dùng? Bởi thế nếu muốn tránh lỗi thì bạn phải tính đến tất cả các khả năng người dùng có thể gây ra lỗi mà viết cho tốt hơn. kiểm soát lỗi phát sinh khi thoát ngang xương không phải là việc làm quá khó, bạn nghiên cứu cách điểu khiển các hàm error đi, nếu thấy khó thì bạn có thể lập topic mới, mình sẽ hướng dẫn bạn kiểm soát các lỗi bạn nêu trên :)

 

PS: mình không muốn tranh luận tiếp về vấn đề này khiến topic đi xa chủ đề ban đầu. Nhiều topic trong diễn đàn khiến mình phát nản khi theo dõi vì những tranh luận và những chuyện trời ơi đất hỡi không liên quan đến chủ đề. Chúng ta chỉ tập trung vào việc chính thui nhé!

  • Vote tăng 2

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

Join bạn viết dựa trên phiên bản CAD nào vậy ? :) Mình nhớ k nhầm thì lệnh Join bây giờ tiện tiện rất nhiều rồi, k như ngày xưa phải viết code cho nó ^^ Các lệnh khác k ý kiến, vì tốc độ ấn P của mình k chậm lắm, như ấn 1 phím đàn thui ^^

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

Về cải tiến các lệnh, mình ủng hộ quan điểm chia sẻ của bạn ThuyLinh313. Nhưng dưới góc độ cá nhân, mình cho rằng đây giống như hành động 'độ' xe, 'độ' điện thoại.... Tức là làm vì sướng chứ không phải vì tiện dụng, bởi tham số select previous hiếm khi dùng. Trong khi đó dùng lệnh này của bạn lại phải appload lisp, phải nhớ cách nhấn dấu cách, sang máy khác lại không còn dùng được. Còn nếu nói phím P ở xa tay, thế thì phím M của lệnh Move, Phím M,I của lệnh Mirror thì có gần không? Bạn dùng lệnh Move nhiều hơn hay tham số Previous của lệnh Move nhiều hơn?

 

Về lệnh J của bạn, lệnh này của bạn giống lệnh nn đã mặt trên diễn đàn cách đây gần 6 năm rồi: http://www.cadviet.c...hp?showtopic=78 , nếu chịu khó tìm các bạn sẽ còn thấy các lệnh tương tự ở các topic khác trên diễn đàn hoặc đã được tổng hợp ở mục download hoặc mục lisp.

  • 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

@Ketxu: Mình viết lại lệnh Join dựa trên bản cad 2010. Các phiên bản sau thì mình chưa thử nhưng với phiên bản này và các bản trước đó thì lệnh join chi cho phép tạo ra 1 đối tượng cuối mỗi lần gõ lênh. Thử tưởng tượng bạn có 100 hình chữ nhật bị phá vỡ, muốn nối chúng lại với nhau thì sẽ vất vả thế nào. So với lệnh gốc thì lệnh trên giảm được 1 lần select đối tượng, có thể join hàng loạt. Không biết các bản cad cao hơn đã làm được điều này chưa?!

 

@Nguyen Hoanh: Cảm ơn bạn đã ủng hộ. Mình có thể trả lời chắc chắn rằng trong quá trình vẽ mình sử dụng thao tác select previous thường xuyên hơn sử dụng lênh mirror, move thì không (do mình quen với M từ khi học vẽ cad nên không sửa lệnh). Nhưng mình nhận thấy khi thực hiện các chỉnh sửa với 1 đối tượng hoặc 1 tập hợp đối tượng mình mất trung bình hơn 1 lệnh cho chúng, dẫn đến thường xuyên có nhu cầu select previous.

Dù thế nào mình vẫn thấy việc gõ: tên lênh / space / space tiện lợi hơn nhiều so với tên lênh / space / P (hoặc select lại) / space, Mình không phải kiểu người "màu mè hoa lá cành" nên không làm vì sướng. Mình làm vì nó cải thiện đáng kể hiệu quả làm việc của mình.

 

Khi mình lập topic này mình cũng biết chắc chắn những gì mình post lên đây có thể đã có người làm rồi. Nhưng có 1 topic tập hợp chúng lại thì vẫn hơn. tinh thần của topic này là như vậy. Bạn nào thấy ở đâu đó đã post 1 lệnh của cad được chỉnh sửa hợp lý hơn thì copy về đây, chúng ta hoan nghênh mọi sự đóng góp cho du đó là kết quả sưu tầm được của người khác cũng được phải không?

  • 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

Về cải tiến các lệnh, mình ủng hộ quan điểm chia sẻ của bạn ThuyLinh313. Nhưng dưới góc độ cá nhân, mình cho rằng đây giống như hành động 'độ' xe, 'độ' điện thoại.... Tức là làm vì sướng chứ không phải vì tiện dụng, bởi tham số select previous hiếm khi dùng. Trong khi đó dùng lệnh này của bạn lại phải appload lisp, phải nhớ cách nhấn dấu cách, sang máy khác lại không còn dùng được. Còn nếu nói phím P ở xa tay, thế thì phím M của lệnh Move, Phím M,I của lệnh Mirror thì có gần không? Bạn dùng lệnh Move nhiều hơn hay tham số Previous của lệnh Move nhiều hơn?

 

Về lệnh J của bạn, lệnh này của bạn giống lệnh nn đã mặt trên diễn đàn cách đây gần 6 năm rồi: http://www.cadviet.c...hp?showtopic=78 , nếu chịu khó tìm các bạn sẽ còn thấy các lệnh tương tự ở các topic khác trên diễn đàn hoặc đã được tổng hợp ở mục download hoặc mục lisp.

bác hoành nói đúng.e xin thề là select previous phải nói là rất ít khi dùng.hehe.tất nhiên là ko có nó thì đôi khi lại thiếu mà có thì đôi lúc lại thừa.

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

@Ketxu: Mình viết lại lệnh Join dựa trên bản cad 2010. Các phiên bản sau thì mình chưa thử nhưng với phiên bản này và các bản trước đó thì lệnh join chi cho phép tạo ra 1 đối tượng cuối mỗi lần gõ lênh. Thử tưởng tượng bạn có 100 hình chữ nhật bị phá vỡ, muốn nối chúng lại với nhau thì sẽ vất vả thế nào. So với lệnh gốc thì lệnh trên giảm được 1 lần select đối tượng, có thể join hàng loạt. Không biết các bản cad cao hơn đã làm được điều này chưa?!

 

@Nguyen Hoanh: Cảm ơn bạn đã ủng hộ. Mình có thể trả lời chắc chắn rằng trong quá trình vẽ mình sử dụng thao tác select previous thường xuyên hơn sử dụng lênh mirror, move thì không (do mình quen với M từ khi học vẽ cad nên không sửa lệnh). Nhưng mình nhận thấy khi thực hiện các chỉnh sửa với 1 đối tượng hoặc 1 tập hợp đối tượng mình mất trung bình hơn 1 lệnh cho chúng, dẫn đến thường xuyên có nhu cầu select previous.

Dù thế nào mình vẫn thấy việc gõ: tên lênh / space / space tiện lợi hơn nhiều so với tên lênh / space / P (hoặc select lại) / space, Mình không phải kiểu người "màu mè hoa lá cành" nên không làm vì sướng. Mình làm vì nó cải thiện đáng kể hiệu quả làm việc của mình.

 

Khi mình lập topic này mình cũng biết chắc chắn những gì mình post lên đây có thể đã có người làm rồi. Nhưng có 1 topic tập hợp chúng lại thì vẫn hơn. tinh thần của topic này là như vậy. Bạn nào thấy ở đâu đó đã post 1 lệnh của cad được chỉnh sửa hợp lý hơn thì copy về đây, chúng ta hoan nghênh mọi sự đóng góp cho du đó là kết quả sưu tầm được của người khác cũng được phải không?

"Anh đến với hoa thì hoa đã nở

Anh đến bến đò thì đò đã qua sông

Anh đến với em thì em đã có chồng"

Khi anh viết lại lệnh ,,,Join dựa trên bản cad 2010 thì đã có AutoCAD2014

Và anh đã.... ngộ nhận và nhận ...ngộ! :rolleyes: :rolleyes: :rolleyes:

"Vắng mợ thì chợ vẫn đông

Cô đi lấy chồng thì chợ vẫn vui!"

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

@Hoằn: Vậy chứ bạn nghĩ ai cũng đủ điều kiện dùng Cad2014 như bạn chăng? Làm ơn đọc lại bài 1 dùm mình và động não mà suy nghĩ trước khi phát biểu tiếp. Trả lời cho mình biết:

- Mình chia sẻ cho những ai cần chứ có bắt mọi người phải theo mình không?

- Bạn chọn việc download cả mấy Gb bộ cài cad2014 hoặc thậm chí phải thay cả cái máy tính cho đủ cấu hình để cho nhu cầu Join hay lựa chọn phương pháp trên?

- Mình ngộ nhận gì? Nhận ngộ gì?

 

PS: Làm ơn đi, đây là diễn đàn kỹ thuật, các vấn đề trao đổi, chia sẻ chỉ cần ngắn gọn đủ ý tránh làm mất thời gian của người khác khi theo dõi. mấy thứ văn thơ của bạn nên post vào chỗ khác thì hay hơn. Các bài viết của bạn khiến các topic trong diễn đàn loãng đi nhiều và gây khó khăn cho người khác khi theo dõi đấy.

  • 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

Join với phiên bản 2012 của mình thì quét 1 loạt hết cả lũ , thằng nào dính với nhau là dính duyên hết, 1000 HCN cũng như 1, hề hề ^^

 

ps : Bạn cứ share tiếp đi, mình đang đặt gạch hóng tiếp ^^

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

Mình theo dõi diễn đàn 1 thời gian và biết Ketxu là người có nhiều đóng góp tích cực cho diễn đàn. Mình tin là bạn có nhiều ý tưởng cho nội dung toppic này. Số bài viết của bạn, màu nick của bạn và những đánh giá của các thành viên dành cho bạn đã phản ánh điều đó. Mình không mong chờ ketxu chỉ "hóng" bởi với trình độ của bạn thì không phải "hóng" cái gì đó từ mình mà ngược lại, mình cũng như nhiều thành viên khác mong chờ được học hỏi từ bạn. Mình tham gia diễn đàn trao đổi kinh nghiệm, học hỏi chứ không phải để thể hiện bản thân, để cho sướng, để vì vài cái like vô nghĩa hay để nói chuyện tầm phào vớ vẩn như một số thành viên khác. Bởi vậy, thay vì hóng thì mình thích bạn Ketxu tiếp tục đóng góp xậy dựng topic hơn. Về phía mình, tất nhiên mình sẽ vẫn tiếp tục đóng góp cho diễn đàn trong giới hạn hiểu biết của mình.

  • Vote tăng 3

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

@Hoằn: Vậy chứ bạn nghĩ ai cũng đủ điều kiện dùng Cad2014 như bạn chăng? Làm ơn đọc lại bài 1 dùm mình và động não mà suy nghĩ trước khi phát biểu tiếp. Trả lời cho mình biết:

- Mình chia sẻ cho những ai cần chứ có bắt mọi người phải theo mình không?

- Bạn chọn việc download cả mấy Gb bộ cài cad2014 hoặc thậm chí phải thay cả cái máy tính cho đủ cấu hình để cho nhu cầu Join hay lựa chọn phương pháp trên?

- Mình ngộ nhận gì? Nhận ngộ gì?

 

PS: Làm ơn đi, đây là diễn đàn kỹ thuật, các vấn đề trao đổi, chia sẻ chỉ cần ngắn gọn đủ ý tránh làm mất thời gian của người khác khi theo dõi. mấy thứ văn thơ của bạn nên post vào chỗ khác thì hay hơn. Các bài viết của bạn khiến các topic trong diễn đàn loãng đi nhiều và gây khó khăn cho người khác khi theo dõi đấy.

Thứ 1: Hoằn xin lỗi vì đã làm loãng nội dung Topic của bác!

Thứ 2: Mấy cái văn thơ đó Hoằn trích dẫn đóng ngoặc kép mở ngoặc kép, được mặc định là không phải của Hoằn

Thứ 3 : Việc bác đã : "Mình chia sẻ cho những ai cần chứ có bắt mọi người phải theo mình không?" đó là quyền tự do của bác, đồng thời người đọc cũng có quyền tự do phản biện khi bác đưa lên các phương tiện thông tin đại chúng, không phải là chỉ giới hạn trong Blog cá nhân

Thứ 4: Việc bác chia sẻ kinh nghiệm bản thân cho cộng đồng, Hoằn xin nhiệt liệt chúc mừng và ủng hộ, Hoằn mong muốn và háo hức muốn biết được những chia sẻ tiếp theo

Thứ 5: Những gì bác muốn chia sẻ, bác hãy tự tin và chủ động chia sẻ, đừng bao giờ hi vọng: anh "Ketxu tiếp tục đóng góp xậy dựng topic hơn" Vì những gì cần chia sẻ cho cộng đồng em nghĩ là anh Ketxu có chủ động của anh ấy, chứ không đợi chờ sự gợi ý của bác mới đóng góp...

Thứ 6: Những ai đã viết bài "vì vài cái like vô nghĩa hay để nói chuyện tầm phào vớ vẩn như một số thành viên khác" anh nên góp ý thẳng với người ta, không nên viết chung chung ở đây làm loãng nội dung chủ đề!

Thứ 7: Em Hoằn mới làm quen với lisp và viết được cái lisp để làm công việc sau, mong được bác chia sẻ kinh nghiệm :

Cải tạo các lệnh cơ bản của cad

 

03b95502a12b416e575442911a6dad13_50635078.dovuinangcao.png

Từ một bông hoa to cho trước Array ra các kiểu bông hoa tiếp theo như hình ảnh mà bông hoa gốc ban đầu vẫn còn

Lisp có đính kèm các chức năng tùy chọn:

-Thay đổi được số hàng, số cột và khoảng cách giữa các hàng, các cột

-Thay đối số đối tượng array và tỉ lệ scale

-Thay đổi góc độ xoay trong mặt phẳng Top và Left

Ap > Load Lisp...>> Gõ lệnh lisp.... lựa chọn… .>>>Chọn bông hoa to >>>> Chọn điểm chèn bên ngoài bông hoa gốc >>>> Xong!

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án bạn! Hỏi 3 câu thì trả lời 1 câu, câu mình muốn nhận được trả lời thì không trả lời, những trao đổi dành cho người khác không liên can gì đến mình thì lại chen vào ý kiến (!?) Rồi lại quanh quẩn cái bài bông hoa, không biết đưa vô đây định làm gì nữa!? hiểu được chết liền!

 

Mình tiếp tục nội dung topic:

- Lệnh Br (Break): Sau khi gõ lệnh con trỏ ở trạng thái ô vuông, mục đích để bạn có thể chọn được chính xác đối tượng muốn break, tuy nhiên nó khiến bạn không thể chọn chính xác điểm break đầu (muốn chọn chính xác bạn phải gõ thêm phím F - First point). Ngoài ra nếu tại điểm pick đầu tiên có 2 hay nhiều đối tượng giao nhau sẽ khiến bạn không thể chọn chính xác đối tượng mà bạn muốn). Mình đưa ra phương pháp chọn hợp lý hơn và nhanh hơn.

(defun C:BR (/ ss p pause en)
(and
 (setq p (getpoint))
 (not
  (while
(not
(setq ss (ssget "C" p p '((0 . "ARC,CIRCLE,ELLIPSE,*LINE")))))
)
  )
 (if (> (sslength ss) 1)
  (not
(while
(not
 	(ssmemb (setq en (car (entsel " Chon doi tuong break"))) ss))
)
)
  (setq en (ssname ss 0)))
 (not (redraw en 3))  
 (vl-cmdf "break" en "f" p (getpoint)))
(princ))

 

- Lệnh PE (Pedit): lệnh này quy định hơi khác thường: Không cho phép chọn trước đối tượng, không mặc định chon nhiều đối tượng luôn khi gõ lệnh. Mình sửa để loại bỏ các quy định bất tiện này.

(defun C:PE (/ SS)
(if (setq SS (ssget))
 (vl-cmdf "PEDIT" "M" SS "")
 (vl-cmdf "PEDIT" "M" Pause))
(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

Khi muốn chỉnh sửa textstyle của 1 đối tượng text nào đó trên bản vẽ, ta phải biết tên textstyle áp dụng vào text đó. Theo cách thông thường thì phải làm theo trình tự sau: Chọn text -> kiểm tra textstyle -> gõ lệnh st -> tìm kiếm style muốn đổi trong danh sách. mất tương đối nhiều thời gian.

Lisp này cho phép bạn pick vào đối tượng TEXT để gọi hộp thoại sửa textstyle tương ứng của nó luôn.

(defun c:st (/ style c-style)
(and
 (setq style (car (entsel)))
 (setq style (cdr (assoc 7 (entget style))))
 (setq c-style (getvar "textstyle"))
 (setvar "textstyle" style)
 (or
  (initdia)
  (command "style")
  (if (= (getvar "textstyle") style)
(setvar "textstyle" c-style))))
(princ))

Tương tự như vậy với lệnh DST (dimstyle). code tương tự nên mình không viết lại nữa

  • Vote tăng 3

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

hay quá, mót về xài thui :D, mà sao chị TL và chị Hoằn xung đột thế nhỉ, ngồi xuống ăn miếng bánh uống miếng trà nào ^^

Hoằn là em chồng của em, em hiểu Hoằn là người vô tư, chân thành , thẳng thắn và thân thiện với tất cả mọi người. Anh đã hiểu không đúng về Hoằn rồi, em nó chẳng có gì xung đột với chị Thùy Linh cả, chỉ là trao đổi để tăng cường sự hiểu biết lẫn nhau thôi mừ!

Anh đã mót được gì ở Topic này, riêng Haanh là người vốn dị ứng với lisp nên chưa hiểu nó hay quá ở chỗ nào??????

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ết rồi, ghét của ghét lây người ^^ Nhà có gì ta dùng nấy , haanh sao lại dị ứng LISP vậy :o

Có người thích Exciter, có người thích Cub, có người thích Dream..

  • 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ết rồi, ghét của ghét lây người ^^ Nhà có gì ta dùng nấy , haanh sao lại dị ứng LISP vậy :o

Có người thích Exciter, có người thích Cub, có người thích Dream..

Không phải đâu anh Ketxu ạ! Em dị ứng với những cái lisp mà nó không nhanh hơn AutoCAD được bao nhiêu. Với những lisp viết mà dùng chậm hơn cả AutoCAD thì em ghét lắm lắm nhưng em không ghét người viết mà chỉ thấy thương thương về sự ngộ nhận của người ta thôi anh ạ! Trường hợp thương thương thì em đã gặp nhiều trên diễn đàn rồi, chỉ làm khổ bản thân người viết lisp thôi...Sao người ta cứ phải tự hành hạ mình nhẩy???

Còn những cái lisp đẩy nhanh tốc độ vẽ lên thì em yêu lắm và yêu cả người viết lisp nữa!

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

×