Đến nội dung


Hình ảnh
- - - - -

Đánh cốt tự động bằng lisp DC


  • Please log in to reply
93 replies to this topic

#81 NTD

NTD

    biết lệnh rotate

  • Members
  • PipPipPip
  • 135 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 18 June 2012 - 06:22 PM

Bạn có thể thêm vào lệnh sau Cotxx : dùng để định nghĩa cốt bất kỳ (tương tự cốt 0.00)

(defun c:cotxx ()  (setq Cotxx (getreal "\nNhap cot can dinh nghia: ")      Cot00 (+ (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)    )  (princ))


Bạn cũng có thể kết hợp với lệnh tăng giảm cốt đồng loạt, tham khảo tại đây
http://www.cadviet.c...o...ost&p=37756



đoạn mã của bác là
(defun c:cotxx ()
(setq Cotxx (getreal "\nNhap cot can dinh nghia: ")
Cot00 (+ (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)
)
(princ)
)

em thấy phải thay dấu cộng + thanh dấu trừ - mới chuẩn, em đã thử rồi , sẽ viết lại là :

(defun c:cotxx ()
(setq Cotxx (getreal "\nNhap cot can dinh nghia: ")
Cot00 (- (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)
)
(princ)
)
  • 0

#82 duongts

duongts

    biết vẽ line

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

Đã gửi 24 October 2012 - 08:26 AM

Bạn đã bao giờ mệt vì phải tính toán để đánh cốt cao độ của mặt cắt và mặt đứng hay chưa?
vừa phải tính xem từ điểm cần tính đến cốt 0.00 có khoảng cách h bao nhiêu, rồi lại nhập vào bản vẽ.

Bây giờ, bạn có thể làm điều này một cách nhanh chóng và tự động nhờ vào lisp dc của cadviet.
với lisp này, bạn chỉ cần gõ lệnh dc, chương trình sẽ hỏi bạn điểm bạn cần đánh cốt, sau đó chương trình sẽ chèn ký hiệu cốt vào đúng vị trí và giá trị mà bạn cần. Bạn dùng lệnh cot00 để định nghĩa điểm có cao độ là cot00.

Để sử dụng lệnh, trước tiên phải copy file cot.dwg vào thư mục support - Đây là file chứa nội dung của ký hiệu cốt. Sau đó appload file danhcot.lsp để sử dụng lệnh.

(defun c:cot00 ()
(setq Cot00 (cadr (getpoint "\nDiem co cot 0.000: ")))
(princ)
)
(defun c:dc (/ diem caodo dau giatri dodaichuoi)
(if (not cot00)
(progn
(alert "chua co cot 0.000")
(c:cot00)
)
)
(grdraw (list (+ (car (getvar "VIEWCTR")) (* -1.0 (getvar "VIEWSIZE")))
cot00
)
(list (+ (car (getvar "VIEWCTR")) (* 1.0 (getvar "VIEWSIZE")))
cot00
)
1
1
)
(setq
diem (getpoint "\nVao diem can danh cot: ")
caodo (- (cadr diem) cot00)
dau (cond
((equal caodo 0.0 0.01) "%%p")
((> caodo 0.0) "+")
(t "-")
)
giatri (rtos caodo 2 0)
)
(if (= "-" (substr giatri 1 1))
(setq giatri (substr giatri 2))
)
(while (< (strlen giatri) 4)
(setq giatri (strcat "0" giatri))
)
(setq dodaichuoi (strlen giatri)
giatri (strcat (substr giatri 1 (- dodaichuoi 3))
"."
(substr giatri (- dodaichuoi 2))
)
)
(command ".insert" "danhcot" diem 100.0 100.0 0.0 dau giatri)
(redraw)
)
file danhcot.lsp: http://www.cadviet.c...les/danhcot.lsp
file danhcot.dwg: http://www.cadviet.c...les/DANHCOT.zip

Lưu ý: Với mỗi file DWG mà bạn vẽ, bạn phải đặt lại biến ATTDIA về 0 trước khi dùng lệnh DC (chỉ cần đặt 1 lần cho mỗi file).

Rất mong có được sự phản hồi.
Cảm ơn.

Bac Hoanh oi. lisp cua bac rat tuyet nhung bac co the cho em hoi la muon khai bao cao do khong phai la cos+0.00 nhieu lan duoc khong? VI du lam tren trac ngang muon ghi cao do nhung lay goc bang +0 thi kho qua ma chi kha bao duoc1 lan nen rat bat tien.
  • 0

#83 Quảng

Quảng

    Chưa sử dụng CAD

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

Đã gửi 08 November 2012 - 01:32 PM

Bạn đã bao giờ mệt vì phải tính toán để đánh cốt cao độ của mặt cắt và mặt đứng hay chưa?
vừa phải tính xem từ điểm cần tính đến cốt 0.00 có khoảng cách h bao nhiêu, rồi lại nhập vào bản vẽ.

Bây giờ, bạn có thể làm điều này một cách nhanh chóng và tự động nhờ vào lisp dc của cadviet.
với lisp này, bạn chỉ cần gõ lệnh dc, chương trình sẽ hỏi bạn điểm bạn cần đánh cốt, sau đó chương trình sẽ chèn ký hiệu cốt vào đúng vị trí và giá trị mà bạn cần. Bạn dùng lệnh cot00 để định nghĩa điểm có cao độ là cot00.

Để sử dụng lệnh, trước tiên phải copy file cot.dwg vào thư mục support - Đây là file chứa nội dung của ký hiệu cốt. Sau đó appload file danhcot.lsp để sử dụng lệnh.

(defun c:cot00 ()
(setq Cot00 (cadr (getpoint "\nDiem co cot 0.000: ")))
(princ)
)
(defun c:dc (/ diem caodo dau giatri dodaichuoi)
(if (not cot00)
(progn
(alert "chua co cot 0.000")
(c:cot00)
)
)
(grdraw (list (+ (car (getvar "VIEWCTR")) (* -1.0 (getvar "VIEWSIZE")))
cot00
)
(list (+ (car (getvar "VIEWCTR")) (* 1.0 (getvar "VIEWSIZE")))
cot00
)
1
1
)
(setq
diem (getpoint "\nVao diem can danh cot: ")
caodo (- (cadr diem) cot00)
dau (cond
((equal caodo 0.0 0.01) "%%p")
((> caodo 0.0) "+")
(t "-")
)
giatri (rtos caodo 2 0)
)
(if (= "-" (substr giatri 1 1))
(setq giatri (substr giatri 2))
)
(while (< (strlen giatri) 4)
(setq giatri (strcat "0" giatri))
)
(setq dodaichuoi (strlen giatri)
giatri (strcat (substr giatri 1 (- dodaichuoi 3))
"."
(substr giatri (- dodaichuoi 2))
)
)
(command ".insert" "danhcot" diem 100.0 100.0 0.0 dau giatri)
(redraw)
)
file danhcot.lsp: http://www.cadviet.c...les/danhcot.lsp
file danhcot.dwg: http://www.cadviet.c...les/DANHCOT.zip

Lưu ý: Với mỗi file DWG mà bạn vẽ, bạn phải đặt lại biến ATTDIA về 0 trước khi dùng lệnh DC (chỉ cần đặt 1 lần cho mỗi file).

Rất mong có được sự phản hồi.
Cảm ơn.

bạn có thể làm cho phần text có mầu sắc là mầu của layer hiện hành không???. trong này mặc định là mầu Green nhưng mầu này in ra giấy nền mầu trắng mình thấy xấu quá. mình dùng mầu Blue mà phải chỉnh từng cái dim thấy mất công qua :D thank trước vì minh chỉ biết ăn sẵn không biết tẹo nào về viết lisp hjhj.
  • 0

#84 damquang.arch

damquang.arch

    Chưa sử dụng CAD

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

Đã gửi 08 November 2012 - 02:37 PM

thank bac nhieu, lisp rat hay...:D
  • 0

#85 phucfe

phucfe

    Chưa sử dụng CAD

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

Đã gửi 15 November 2012 - 03:03 PM

cho mình hỏi 1 chút là minhd đánh cốt ở 1 chỗ nhưng nó lại nhảy tít ra chỗ #.cốt thì vẫn đứng.làm sao để khắc fuc vấn đề này
  • 0

#86 min90

min90

    biết zoom

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

Đã gửi 31 March 2013 - 06:21 PM

mình có 1 vài thắc mắc sao

 

có thể tùy chọn kích thước cho biểu tượng cốt cao độ đưcọ ko, tại nhiều khi nó nhỏ quá mà scale cách đối tượng đó thì nó nhảy tùm lum hết

 

nữa là tự nhiên phần tẽxt của mình có chữ SL nữa

2013-03-31%2018_20_42-AutoCAD%202013%20-

 

làm sao để bỏ nó đây?


  • 0

#87 m2mnamtuoc

m2mnamtuoc

    biết pan

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

Đã gửi 09 September 2013 - 10:32 PM

bạn nào up lại cho link cái ... link die rồi


  • 0

#88 cancer_xd

cancer_xd

    biết lệnh fillet

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

Đã gửi 13 November 2013 - 01:27 PM

mình có 1 vài thắc mắc sao

 

có thể tùy chọn kích thước cho biểu tượng cốt cao độ đưcọ ko, tại nhiều khi nó nhỏ quá mà scale cách đối tượng đó thì nó nhảy tùm lum hết

 

nữa là tự nhiên phần tẽxt của mình có chữ SL nữa

2013-03-31%2018_20_42-AutoCAD%202013%20-

 

làm sao để bỏ nó đây?

vào cái file danhcot.dwg trong ổ C xoa cái chứ SL đi là được


  • 0

#89 Tycoon

Tycoon

    biết vẽ line

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

Đã gửi 26 March 2014 - 09:49 AM

Die mất file danhcot.lsp rồi. Anh chị nào còn up lại giúp e với.


  • 0

#90 viendinhngoc

viendinhngoc

    biết vẽ ellipse

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

Đã gửi 28 June 2014 - 04:54 PM

sao lúc dc mình có hiện mũi tên mà không thấy text vậy mọi ng

hic


  • 0

#91 heocom

heocom

    Chưa sử dụng CAD

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

Đã gửi 08 August 2014 - 04:19 PM

bác ơi e chưa hiểu lắm....khi e đánh lệnh dc vào thì nó hiện ra ô nhỏ chưa có cốt 0.000 là sao chỉ e cách dùng vs và cho e lai lick e doaw lại xem dc ko

 thank bác nhiu.....!


  • 0

#92 buixuany0410

buixuany0410

    Chưa sử dụng CAD

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

Đã gửi 18 October 2014 - 03:28 PM

bác nào có thể up lại file k? link die hết rồi!


  • 0

#93 Nguyễn Trung Thông

Nguyễn Trung Thông

    Chưa sử dụng CAD

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

Đã gửi 12 May 2015 - 03:03 PM

Sao mình làm như hướng dẫn nhưng khi vẽ đánh cốt thì nó chỉ hiện SL # # nhỉ?


  • 0

#94 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 315 (khá)

Đã gửi 12 May 2015 - 04:37 PM

Tặng các bác LISP đánh cốt cao độ khác.
Sử dụng:
+ Chọn tỷ lệ đo (mặc định là 1)
Ví dụ:
Sau khi chọn cao trình +-0.00
Điểm tiếp theo cách 1 khoảng +1000 => kết quả +1.00 (chiều âm ngược lại).
* Nếu tỷ lệ đo = 2: Thì kết quả sẽ là: +0.50.
+ Khi di chuyển ký hiệu cao trình +-0.00 (Theo chiều Y) thì tất cả các cao trình khác sẽ thay đổi giá trị.
+ Khi di chuyển cao trình bất kỳ thì tự nó sẽ thay đổi giá trị.
+ Copy 1 cao trình (khác +-0.00) sang vị trí mới thì giá trị tự thay đổi.
+ Mỗi lần gọi lệnh thì có 1 cao trình mốc +-0.00
Trong Lisp dùng Field nên muốn thấy sự thay đổi phải dùng lệnh: REGEN.
LệnhL CD1 hoặc CD2

 http://www.cadviet.c..._cotcaodo_2.zip


  • 0