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

[Share]Đánh cos cao độ tự động

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

Thấy mấy bài gần đây về đánh cos cao độ, ket lục lại đống lisp cũ thấy đã viết 1 cái hơn 2 năm rồi vẫn để không, share bạn nào thấy phù hợp thì dùng nhé

- Cách làm thì cũng đơn giản :

+ Tự tạo ký hiệu cos của các bạn, bằng các nét vẽ + text cũng được, bằng block thuộc tính cũng được

+ Ap để load lisp DCCD.vlx

+ Sử dụng lệnh DCCD (đánh cos cao độ ^^)

+ Thiết đặt :

    * Chênh giá trị tính theo trục X, Y hay khoảng cách giữa 2 cụm cos

    * Tỉ lệ : điền mẫu số của tỉ lệ thôi nhé. Có nghĩa là chênh sẽ chia cho giá trị này

    * Số số thập phân đằng sau dấu ,

    * Chuỗi ký hiệu dương, âm , 0

         Trong chuỗi này ký tự %i sẽ là giá trị số. Các chữ còn lại là tiền tố hay hậu tố tùy các bác, nó tự thêm vào

 + Đặt xong thì Enter 1 cái, các giá trị trên đương nhiên được lưu lại

 + Chọn đám ký hiệu cao độ, pick điểm đặt và điểm tới như lệnh copy ý, rồi cảm nhận ạ :)

- Lưu ý hạn chế :

+ Ket lấy text, att đầu tiên trong tập chọn để xử lý cho nhanh. K viết hàm tìm text giá trị số, nên tiện nhất ký hiệu nên có 1 text thôi, đỡ bị nhầm

+ Ket k viết code strip mã Mtext, nên nếu làm ký tự cos thì nên làm bằng Dtext hoặc Att Single Line

+ Code loằm khoằm nên ket đóng mã lại.

Các bác dùng thử và ý kiến thêm bớt, hợp lý ket lại thêm vô, hoặc bác nào phát triển tiếp + debug thì pm ket gửi code

Thân ái ^^

 

Video :

http://youtu.be/yTeI0-7agZY

 

 

File V1.0 :

http://www.cadviet.com/upfiles/3/24067_dccd.rar

 

File V2.0 : cho phép tăng 1 text hoặc toàn bộ

https://www.mediafire.com/?f6zwgxk8x61e2li

  • Like 4
  • Vote tăng 7

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

Thấy mấy bài gần đây về đánh cos cao độ, ket lục lại đống lisp cũ thấy đã viết 1 cái hơn 2 năm rồi vẫn để không, share bạn nào thấy phù hợp thì dùng nhé

- Cách làm thì cũng đơn giản :

+ Tự tạo ký hiệu cos của các bạn, bằng các nét vẽ + text cũng được, bằng block thuộc tính cũng được

+ Ap để load lisp DCCD.vlx

+ Sử dụng lệnh DCCD (đánh cos cao độ ^^)

+ Thiết đặt :

    * Chênh giá trị tính theo trục X, Y hay khoảng cách giữa 2 cụm cos

    * Tỉ lệ : điền mẫu số của tỉ lệ thôi nhé. Có nghĩa là chênh sẽ chia cho giá trị này

    * Số số thập phân đằng sau dấu ,

    * Chuỗi ký hiệu dương, âm , 0

         Trong chuỗi này ký tự %i sẽ là giá trị số. Các chữ còn lại là tiền tố hay hậu tố tùy các bác, nó tự thêm vào

 + Đặt xong thì Enter 1 cái, các giá trị trên đương nhiên được lưu lại

 + Chọn đám ký hiệu cao độ, pick điểm đặt và điểm tới như lệnh copy ý, rồi cảm nhận ạ :)

- Lưu ý hạn chế :

+ Ket lấy text, att đầu tiên trong tập chọn để xử lý cho nhanh. K viết hàm tìm text giá trị số, nên tiện nhất ký hiệu nên có 1 text thôi, đỡ bị nhầm

+ Ket k viết code strip mã Mtext, nên nếu làm ký tự cos thì nên làm bằng Dtext hoặc Att Single Line

+ Code loằm khoằm nên ket đóng mã lại.

Các bác dùng thử và ý kiến thêm bớt, hợp lý ket lại thêm vô, hoặc bác nào phát triển tiếp + debug thì pm ket gửi code

Thân ái ^^

 

Video :

http://youtu.be/yTeI0-7agZY

 

 

 

File :http://www.cadviet.com/upfiles/3/24067_dccd.rar

 

 

Cám ơn bạn Ketxu đã chia sẻ, lisp rất hay và hữu dụng nhưng vẫn có 1 điểm là lisp chưa dùng được với dyanmic block. mình hay sử dụng dynamic block cho cốt cao độ (như file đính kèm). Do có nhiều trường hợp cốt cao độ có đến 2, 3 cốt ghi cùng lúc (như trong vẽ thang ...) nên sử dụng dynamic block sẽ thuận tiện hơn. Bạn sửa lại lisp chút nhé:

 - có thể sử dụng cho dynamic block

 - khi copy thì tất cả 3 cao độ trong block đều tự động nhảy hết kể cả khi mình lựa chọn hiện ra 1 cao độ

 - ngoài ra bạn cung cấp file lisp được không vì lệnh dài quá, file lisp thì mọi người có thể tự sửa tên lệnh cho phù hợp với từng người

Mình cám ơn nhiều

http://www.cadviet.com/upfiles/4/9928_cot_cao_do_dynamic_block.dwg

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 vẫn dùng cho Dynamic bình thường đó chứ bạn. Chẳng qua bạn chưa để ý mình note là nó lấy cái Att đâù tiên mà nó lấy được, chứ k phải cái Att đầu tiên / duy nhất mà bạn thấy được. Bạn thử vơí 3 cos thì sẽ hiểu

- Làm được nhảy cả 3, nhưng để mình nghiên cứu có nên cho vào không, vì mình chưa muốn đổ đồng tăng tât cả mọi thứ mà nó thấy được

- Code mình đã gửi cho mấy bạn rồi, để phát triển thôi. Không biêts các bạn âý có nhã hứng chỉnh theo yêu cầu này không, vào giúp Ket vơí :(. Còn đổi tên lệnh thì k dùng đến code. Bạn chỉ cần viết như thế này :

 

(defun c:ten_lenh_cua_ban()(c:dccd))
 

P/s : nếu là mình, mình sẽ làm cos cao độ của bạn bằng Mtext, hoặc Dynamic Ảrray, chứ k giơí hạn 3 cos vâỵ đâu ^^

  • 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

Đã cập nhật v2.0 cho phép + tất cả giá trị các text  cos nếu pick chọn Tăng tất cả, nếu không chỉ đánh text đầu tiên tìm thấy . Link bài đầu

24067_bai_4_8222014122250_pm111020141034

  • 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

Đã cập nhật v2.0 cho phép + tất cả giá trị các text  cos nếu pick chọn Tăng tất cả, nếu không chỉ đánh text đầu tiên tìm thấy . Link bài đầu

24067_bai_4_8222014122250_pm111020141034

 

Quá tuyệt vời, có cái này làm sẽ nhanh hơn nhiều. cám ơn bạn ketxu nhiều nhé :D

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

cho e hỏi nếu mình giới hạn code thì phải làm sao để nó hiện ra ạ, ví dụ như mình chỉ yêu cầu nó hiện random từ 1.0 - 1.20 thì phải làm sao ạ. bác ketxu có thể làm giùm e thêm 2 ô nữa được không ạ. 1 ô là cao độ bắt đầu. còn 1 ô là cao độ kết thúc. khi mình nhấp vào bất cứ điểm nào thì nó cũng hiện random từ 1.0 đến 1.20 . e xin cảm ơ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

Thì sang bài toán khác rồi bạn ơi :)

bác có thể làm giúp e được không ạ. chỉ cần có 2 hàng đó thôi là được e không cần j hết. nhưng viết lisp thi e không bít viết. tức là chỉ cần 1 ô bắt đầu và một ô giới hạn. nhấp ở đâu là nó ra random trong khoảng đó ạ

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

Quick code xem đúng ý không, rồi edit sau.

 

;----- Random so trong khoang tu a den b.
(defun C:HA()
 (defun rand(a b)
;  (+ a (fix (* (- b a) (atof (strcat "0." (substr (rtos (getvar 'cdate) 2 18) 16 2)))))))
  (+ a (* (- b a) (atof (strcat "0." (substr (rtos (getvar 'cdate) 2 18) 16 2))))))
 (setq a (getreal "\nSo bat dau: "))
 (setq b (getreal "\nSo gioi han: ")) 
 (while (setq p (getpoint "\nPick point: "))
  (command "text" p "" "" (rtos (rand a b) 2 2) "")))

zị chắc được rồi ạ, nhưng không bít cách sử dụng làm sao. e không rành cái vụ này lắm. bây h làm sao load được cái file vlx để sử dụng trong cad dc :(

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

Bác H buồn bạn nên xóa luôn rồi. Chi mà bác ấy post code lisp rành rành mà bạn lại bảo là "được rồi", hồi lại nói "n k biết sử dụng vlx làm sao" :D Kỵ nhất là thế đó.

Bạn post lại yêu cầu ra 1 topic mới nhé.

  • Like 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

Bác H buồn bạn nên xóa luôn rồi. Chi mà bác ấy post code lisp rành rành mà bạn lại bảo là "được rồi", hồi lại nói "n k biết sử dụng vlx làm sao" :D Kỵ nhất là thế đó.

Bạn post lại yêu cầu ra 1 topic mới nhé.

 

mình là mem mới nên không bít phải làm với số liệu đó như thế nào. e mới đi làm được các a chị trong cơ quan dạy sơ sơ về cad. nên nhìn như thế e không hiểu được. mới vô diễn đàn nửa. có j thì nhờ các bác chỉ dạy thêm. do đặc thù của công việc nên e rất cần chương trình đánh code như thế hic. nếu làm được thì e sẽ hoàn thành hồ sơ nhanh hơn rất nhìu

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

Thấy mấy bài gần đây về đánh cos cao độ, ket lục lại đống lisp cũ thấy đã viết 1 cái hơn 2 năm rồi vẫn để không, share bạn nào thấy phù hợp thì dùng nhé

- Cách làm thì cũng đơn giản :

+ Tự tạo ký hiệu cos của các bạn, bằng các nét vẽ + text cũng được, bằng block thuộc tính cũng được

+ Ap để load lisp DCCD.vlx

+ Sử dụng lệnh DCCD (đánh cos cao độ ^^)

+ Thiết đặt :

    * Chênh giá trị tính theo trục X, Y hay khoảng cách giữa 2 cụm cos

    * Tỉ lệ : điền mẫu số của tỉ lệ thôi nhé. Có nghĩa là chênh sẽ chia cho giá trị này

    * Số số thập phân đằng sau dấu ,

    * Chuỗi ký hiệu dương, âm , 0

         Trong chuỗi này ký tự %i sẽ là giá trị số. Các chữ còn lại là tiền tố hay hậu tố tùy các bác, nó tự thêm vào

 + Đặt xong thì Enter 1 cái, các giá trị trên đương nhiên được lưu lại

 + Chọn đám ký hiệu cao độ, pick điểm đặt và điểm tới như lệnh copy ý, rồi cảm nhận ạ :)

- Lưu ý hạn chế :

+ Ket lấy text, att đầu tiên trong tập chọn để xử lý cho nhanh. K viết hàm tìm text giá trị số, nên tiện nhất ký hiệu nên có 1 text thôi, đỡ bị nhầm

+ Ket k viết code strip mã Mtext, nên nếu làm ký tự cos thì nên làm bằng Dtext hoặc Att Single Line

+ Code loằm khoằm nên ket đóng mã lại.

Các bác dùng thử và ý kiến thêm bớt, hợp lý ket lại thêm vô, hoặc bác nào phát triển tiếp + debug thì pm ket gửi code

Thân ái ^^

 

Video :

http://youtu.be/yTeI0-7agZY

 

 

File V1.0 :

http://www.cadviet.com/upfiles/3/24067_dccd.rar

 

File V2.0 : cho phép tăng 1 text hoặc toàn bộ

https://www.mediafire.com/?f6zwgxk8x61e2li

+bạn @ketxu mình tìm thấy 1 lsp khác của bạn về đánh cốt ở đây http://www.cadviet.com/forum/topic/56086-yeu-cau-viet-lisp-copy-nhay-cao-do-tu-dong-nhu-hinh-ve-kem-theo/bài viết #12 cái lsp đó với mình có ưu điểm là nó tự động cộng giá trị chênh cao dộ theo dạng +3.300 >>>+3.600 hoặc - 0.500 ( tức là có dấu chấm ngăn cách giữa hàng nghìn và hàng trăm )

cái lsp bạn share ở đây lại có ưu điểm là hoạt động với 1 cụm giá trị cốt ( cái này hay cho việc đánh cốt tự động của ký hiêu cốt hoàn thiện/cốt thô ) nhưng với mình lại bị nhược điểm là không hoạt động với ký hiệu cốt có dấu chấm ngăn cách như lsp trên ( hay là mình ko biết cách làm ở lsp này nhỉ ) bạn có thể giúp mình add ưu điểm ở topic kìa vào lsp này đc không.

+khi mình thử sử dụng lsp này bên layout ( với những bản vẽ dim và ghi cốt trên layout ) thì lsp này mình thấy ko hoạt động đúng, mình đã thử sử dụng option tỷ lệ thì cũng khô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

bác ket cho thêm thêm phía chèn nữa là ok rồi. Em là em dùng hàm mirror để tạo phía chèn. 

Nhân tiên em muốn cho field vào bock att để thuộc tính thay đổi theo cao độ block , bác có hứng thú không giúp em với.

 

http://www.cadviet.com/forum/topic/40442-lisp-cac-phep-tinh-dai-so-tu-dong-cap-nhat-khi-gia-tri-nguon-thay-doi/?p=412905

 

(defun ss-mirror (ss p1m p2m flag / ent ss1 num ind)

(if (null ss)
(setq ss1 NIL)
(progn
(if (= flag 0) ; Co co 2 gia tri 0 or 1
(progn
(command "._mirror" ss "" p1m p2m "y" )
(setq ss1 ss)
)
(progn
(setq ss1 (ssadd))
(setq num (sslength ss))
(setq ind 0)
(while (< ind num)
(setq ent (ssname ss ind))
(command ".mirror" ent "" p1m p2m "N")
(ssadd (entlast) ss1)
(setq ind (1+ ind))
) ) ) ) )
ss1
)

 

 

 

31960984223_fd869244b2_o.gif

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

bác ket cho thêm thêm phía chèn nữa là ok rồi. Em là em dùng hàm mirror để tạo phía chèn. 

Nhân tiên em muốn cho field vào bock att để thuộc tính thay đổi theo cao độ block , bác có hứng thú không giúp em với.

 

 

Có cái này trên Youtube " Block Cao độ tự độ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

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

×