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

Nhờ các bác viết dùm Lisp đánh cao độ

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

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12103&st=0
(defun c:dcs(/ tlv blm blname dmo cdm cd dm cdmi dmoc)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/")))
(setq blm (entget(car(entsel "\n Pick chon Block mau :"))))
(setq blname (cdr(assoc 2 blm)))
(setq TLX (cdr(assoc 41 blm)))
(setq TLY (cdr(assoc 42 blm)))
(setq dmo (getpoint "\n Pick diem moc : "))
(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick text cao do : ")))))))  )
(if cdm (progn))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
;(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo)) tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
(princ)
)

Đoạn lisp trên e kết hợp 2 lần chỉnh sửa của bác Tuenv và đã cho ra kết quả đúng của dạng blog.

Tuy nhiên khi blog insert ra thì lại bị scan nhỏ đi rất nhiều so với blog mẫu.

Các bác cho e hỏi nguyên nhân tại sao lại như 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

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12103&st=0
(defun c:dcs(/ tlv blm blname dmo cdm cd dm cdmi dmoc)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/")))
(setq blm (entget(car(entsel "\n Pick chon Block mau :"))))
(setq blname (cdr(assoc 2 blm)))
(setq TLX (cdr(assoc 41 blm)))
(setq TLY (cdr(assoc 42 blm)))
(setq dmo (getpoint "\n Pick diem moc : "))
(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick text cao do : ")))))))  )
(if cdm (progn))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
;(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo)) tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
(princ)
)

Đoạn lisp trên e kết hợp 2 lần chỉnh sửa của bác Tuenv và đã cho ra kết quả đúng của dạng blog.

Tuy nhiên khi blog insert ra thì lại bị scan nhỏ đi rất nhiều so với blog mẫu.

Các bác cho e hỏi nguyên nhân tại sao lại như vậy?

Lisp đầu trước khi sửa có bị tình trạng như vậy

Lisp sau khi sửa ở bài viết số #24 chạy ok, không bị vậy nữa

 

E tìm mãi ko ra. Không biết dòng nào của bác Tuenv làm cho blog insert ra có giá trị đều giống blog mẫu mà không nhận cao độ. Hic... Còn phần mở rộng thêm cho text thì oki rùi.

Tue_NV thử lisp chạy ở bài viết số #24 -> ok

  • 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 đầu trước khi sửa có bị tình trạng như vậy

Lisp sau khi sửa ở bài viết số #24 chạy ok, không bị vậy nữa

 

 

Tue_NV thử lisp chạy ở bài viết số #24 -> ok

Thanks bác. E vừa tìm ra nguyên nhân. Blog insert ra theo lisp #24 rất chuẩn.

Nhưng sau khi có kết quả phải re lại bản vẽ nó mới hiện lên cao độ của điểm mới. Lúc đầu e chọn blog mẫu xong, nhập cao độ mốc xong, thì vẫn thấy cao độ điểm mới bằng cao độ của blog mẫu. Hjj làm phiền bác Tuenv ngày chủ nhật vui vẻ roài. (Lúc đầu e lại ko có dùng re) :P :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

Thanks bác. E vừa tìm ra nguyên nhân. Blog insert ra theo lisp #24 rất chuẩn.

Nhưng sau khi có kết quả phải re lại bản vẽ nó mới hiện lên cao độ của điểm mới. Lúc đầu e chọn blog mẫu xong, nhập cao độ mốc xong, thì vẫn thấy cao độ điểm mới bằng cao độ của blog mẫu. Hjj làm phiền bác Tuenv ngày chủ nhật vui vẻ roài. (Lúc đầu e lại ko có dùng re) :P :D

Mình chạy thì không cần RE mà Block vẫn đổi giá trị

Vậy bạn thêm dòng này :

(entupd (entlast))

xuống dưới dòng (entmod (subst (cons 1 cd) (assoc 1 el) el))

và xuống dưới dòng : (entmod (subst (cons 1 cdi) (assoc 1 el) el))

ở code lisp của bài viết số #24

Bạn thử xem

  • 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ảm ơn bạn Tue_NV vì cái lisp hay. :)

Bạn có thể điều chỉnh sao cho nếu mình chỉnh sửa giá trị cốt ban đầu thì các giá trị sau sẽ tự động thay đổi theo đc ko?

VD:

cốt điểm mốc ban đầu là 0.000

sau được thay đổi tăng lên thành +0.200

thì mình chỉ việc sửa cao độ điểm mốc là các cao độ khác cũng sẽ tự động tăng thêm +0.200

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

Mình chạy thì không cần RE mà Block vẫn đổi giá trị

Vậy bạn thêm dòng này :

(entupd (entlast))

xuống dưới dòng (entmod (subst (cons 1 cd) (assoc 1 el) el))

và xuống dưới dòng : (entmod (subst (cons 1 cdi) (assoc 1 el) el))

ở code lisp của bài viết số #24

Bạn thử xem

Các bác cho e hỏi: E muốn giữ lại tỉ lệ vẽ, và blog mẫu đã chọn để mỗi lần thực hiện lệnh lần tiếp theo không phải chọn lại tỉ lệ vẽ và blog mẫu thì xây dựng thêm code như thế nào ah?

Khi kết thúc lệnh lần đầu và thực hiện lệnh tiếp tục sẽ bắt đầu ngay ở bước: Pick điểm mố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

Phần đỏ là bạn phải xóa đi

Phần xanh là thêm vào

(defun c:dcs(/ tlv blm blname dmo cdm cd dm cdmi dmoc)

 

.....

 

(or tlv (setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/"))))

(or blm (setq blm (entget(car(entsel "\n Pick chon Block mau :")))))

 

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

Phần đỏ là bạn phải xóa đi

Phần xanh là thêm vào

Với code ở bài #24, đã sửa theo gợi ý của Ketxu. Nhưng chưa bớt được thao tác nhập ban đầu: chọn blog mẫu

;; free lisp from cadviet.com
;;; this lisp was downloaded from
http://www.cadviet.com/forum/index.php?showtopic=12103&st=20
(defun c:dcd(/ blname dmo cdm cd dm cdmi dmoc bl)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(or tlv (setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/"))))
(or bl (setq bl (car(entsel "\n Pick chon Block mau / Text mau :"))))
(or blm (setq blm (entget bl)))
(setq dmo (getpoint "\n Pick diem moc : "))
(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao
do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick
text cao do : ")))))))  )
(if cdm (progn
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo))
tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr
dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dm)
(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (=
(cdr(assoc 66 (entget (entlast)))) 1))
 (setq el (entget (entnext (entlast)) )))
(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget
(entlast))) )
(entmod (subst (cons 1 cdi) (assoc 1 el) el))
(entupd (entlast))
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
)))
(princ)
)

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ới code ở bài #24, đã sửa theo gợi ý của Ketxu. Nhưng chưa bớt được thao tác nhập ban đầu: chọn blog mẫu

;; free lisp from cadviet.com
;;; this lisp was downloaded from
http://www.cadviet.com/forum/index.php?showtopic=12103&st=20
(defun c:dcd(/ blname dmo cdm cd dm cdmi dmoc bl)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(or tlv (setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/"))))
(or bl (setq bl (car(entsel "\n Pick chon Block mau / Text mau :"))))
(or blm (setq blm (entget bl)))
(setq dmo (getpoint "\n Pick diem moc : "))
(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao
do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick
text cao do : ")))))))  )
(if cdm (progn
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo))
tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr
dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dm)
(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (=
(cdr(assoc 66 (entget (entlast)))) 1))
 (setq el (entget (entnext (entlast)) )))
(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget
(entlast))) )
(entmod (subst (cons 1 cdi) (assoc 1 el) el))
(entupd (entlast))
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
)))
(princ)
)

Mình đọc qua và thấy bạn bỏ cái biến bl màu đỏ ở đây là được:

(defun c:dcd(/ blname dmo cdm cd dm cdmi dmoc bl)

  • 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 đã wonderul. Đa tạ các cao nhân a hùng đã ra tay giúp đỡ. :P :D

Đây là bản chỉnh sửa lần cuối, bạn nào cần lisp này như mình thì mời xơi ở đây nhé :D

;; free lisp from cadviet.com
;;; this lisp was downloaded from
http://www.cadviet.com/forum/index.php?showtopic=12103&st=20
(defun c:dcd(/ blname dmo cdm cd dm cdmi dmoc)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(or tlv (setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/"))))
(or bl (setq bl (car(entsel "\n Pick chon Block mau / Text mau :"))))
(or blm (setq blm (entget bl)))
(setq dmo (getpoint "\n Pick diem moc : "))
(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao
do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick
text cao do : ")))))))  )
(if cdm (progn
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo))
tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr
dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dm)
(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (=
(cdr(assoc 66 (entget (entlast)))) 1))
 (setq el (entget (entnext (entlast)) )))
(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget
(entlast))) )
(entmod (subst (cons 1 cdi) (assoc 1 el) el))
(entupd (entlast))
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
)))
(princ)
)

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 đã wonderul. Đa tạ các cao nhân a hùng đã ra tay giúp đỡ. :P :D

Đây là bản chỉnh sửa lần cuối, bạn nào cần lisp này như mình thì mời xơi ở đây nhé :D

 

 

 

theo lisp này thì cái cao độ điểm mốc ko thấy xuất hiện nữa bạn ah.

 

nhờ bạn nào giúp mình câu hỏi ở #30 với.

Mình 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

 

 

theo lisp này thì cái cao độ điểm mốc ko thấy xuất hiện nữa bạn ah.

 

nhờ bạn nào giúp mình câu hỏi ở #30 với.

Mình cảm ơn!

Cái này do bạn bach1212 sửa lại lisp của tác giả mà không ghi tên tác giả vô Lisp ấy mà :D

Bạn bach1212 chú ý lại Code lisp gốc của Tue_NV ở bài 24 nhé! :rolleyes:

 

@nguyenkhoadng: Bạn hỏi có viết được không? => Được : bằng cách dùng field

Có điều nảy sinh là Khi sửa cao độ mốc thì có thể có trường hợp + chuyển sang - hoặc từ - sang + thì cái dấu này không thể cập nhật được

Chi bằng gom những cái cao độ vừa tạo ra vô 1 tập chọn rồi viết thêm cái lisp cộng trừ cos cao độ là xong. Nếu cos dương thì thêm dấu + phía trước, cos âm thì thêm dấu - đằng trước

  • 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

 

Chi bằng gom những cái cao độ vừa tạo ra vô 1 tập chọn rồi viết thêm cái lisp cộng trừ cos cao độ là xong. Nếu cos dương thì thêm dấu + phía trước, cos âm thì thêm dấu - đằng trước

 

bạn Tue_NV cho mình hỏi đã có bạn nào viết lisp đó chia sẻ lên diễn đàn chưa vậy?

lisp cộng trừ cos cao độ kết hợp với cái này thì hoàn hảo quá :)

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

 

bạn Tue_NV cho mình hỏi đã có bạn nào viết lisp đó chia sẻ lên diễn đàn chưa vậy?

lisp cộng trừ cos cao độ kết hợp với cái này thì hoàn hảo quá :)

Cảm ơn!

Cái này cũng đã có rồi, bạn search thử xem.

Ở đây có nè bạn :

http://www.cadviet.c...showtopic=15838

 

@bach1212: Mình nghĩ bạn nên lưu lại tỉ lệ mẫu hay block/text mẫu cho việc sử dụng lần sau hay hơn

Nếu nhập tỉ lệ mới hay block/text mẫu mới thì bạn nhập và chọn -> lưu cho lần sau để sử dụng,

còn chấp nhận tỉ lệ mẫu cũ hay block/text mẫu cũ thì enter là xong

 

chứ không nên sửa code như vầy, trường hợp bạn muốn thay đổi tỉ lệ hay block/text sử dụng thì lisp trên ko sử dụng được.

Giả dụ: Bạn nhập nhầm tỉ lệ và chọn nhầm Block/text mẫu -> Bạn muốn thay đổi -> Sửa code vậy thì chịu rồi

  • 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 của bác dcd.lsp của bác Tue_NV rất hay đã giúp ích cho tôi rất nhiều trong công việc, Cảm ơn bác nhiều lắm.

 

Nhân đây xin nhờ bác cũng như các cao thủ trong Cadviet, phát triển lisp để làm sao có thể chọn điểm cần ghi cao độ rồi chọn text hoặc block att đã có nhận giá trị cao độ mới.

 

Sở dĩ cần chức năng này vì khi lần đầu thiết kế xong thì điền cao độ nhưng sau đó có yêu cầu điều chỉnh thiết kế và cao độ, mà xóa cao độ cũ đi rồi ghi lại thì quả là mất công. Mà trong quá trình thiết kế việc thay đổi và điều chỉnh thiết kế là chuyện thường tình chứ mấy ai thiết kế một lần là ăn ngay đâ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

Lisp của bác dcd.lsp của bác Tue_NV rất hay đã giúp ích cho tôi rất nhiều trong công việc, Cảm ơn bác nhiều lắm.

 

Nhân đây xin nhờ bác cũng như các cao thủ trong Cadviet, phát triển lisp để làm sao có thể chọn điểm cần ghi cao độ rồi chọn text hoặc block att đã có nhận giá trị cao độ mới.

 

Sở dĩ cần chức năng này vì khi lần đầu thiết kế xong thì điền cao độ nhưng sau đó có yêu cầu điều chỉnh thiết kế và cao độ, mà xóa cao độ cũ đi rồi ghi lại thì quả là mất công. Mà trong quá trình thiết kế việc thay đổi và điều chỉnh thiết kế là chuyện thường tình chứ mấy ai thiết kế một lần là ăn ngay đâu.

Tue_NV đọc mà không hiểu câu này của bạn :

"chọn điểm cần ghi cao độ rồi chọn text hoặc block att đã có nhận giá trị cao độ mới."

điểm là 1 danh sách gồm 3 phần tử x, y, z

Còn giá trị chỉ có 1 phần tử số

 

Lấy điểm Gán cho text hoặc block att 1 giá trị sao được???

Hay ý bạn là như lisp cũ rứa, thay vì pick điểm cao độ -> Thì pick điểm -> chọn text sẽ gán cao độ cho text??

Nếu vậy thì xoá đi làm lại còn nhanh hơn, chính xác hơn, vừa kiểm soát được cao độ nữa...

  • 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

Bác Tue_NV nhiệt tình quá, em mấy bữa nay bận nên giờ mới vào Cadviet được, bác thông cảm nha.

 

Bác Tue_NV ơi, VD thế này nhé.

 

Có các điểm A,B,C,D ... cần ghi cao độ.

Lần 1: Sau khi thiết kế xong

Ghi cao độ: pick chọn A là điểm mốc, nhập cao độ là 120.00 (cao độ giả định)

sau đó pick các điểm B,C,D ... được các cao độ tương ứng: 120.50, 119.85, 122.00 ...

 

Lần 2: Do thay đổi lại cao độ giả định, và điều chỉnh lại thiết kế nên vị trí một số điểm thay đổi (cao độ tất nhiên là đã bị thay đổi theo) nên cần sửa lại cao độ một số điểm hoặc ghi lại toàn bộ cao độ. Chẳng hạn lúc này các điểm A,B,C,D ... có cao độ mới tương ứng là: 121.20, 121.70, 120.90, 123.45 ...

Ghi cao độ: pick chọn A là điểm mốc, nhập cao độ là 121.20 (Vị trí điểm A có thể thay đổi hoặc không) rồi pick chọn cao độ 120.00 (là text hoặc block att) để gán cao độ mới là 121.20. Pick điểm B rồi pick chọn cao độ 120.50 để gán cao độ mới là 121.70. Các điểm khác làm tương tự.

 

Bác Tue_NV và các cao thủ giúp em với nha bởi nếu số điểm cần ghi cao độ ít thì xóa đi rồi điền lại không mất nhiều thời gian chứ nếu số điểm nhiều thì cũng mất kha khá đấ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

Bác Tue_NV nhiệt tình quá, em mấy bữa nay bận nên giờ mới vào Cadviet được, bác thông cảm nha.

 

Bác Tue_NV ơi, VD thế này nhé.

 

Có các điểm A,B,C,D ... cần ghi cao độ.

Lần 1: Sau khi thiết kế xong

Ghi cao độ: pick chọn A là điểm mốc, nhập cao độ là 120.00 (cao độ giả định)

sau đó pick các điểm B,C,D ... được các cao độ tương ứng: 120.50, 119.85, 122.00 ...

 

Lần 2: Do thay đổi lại cao độ giả định, và điều chỉnh lại thiết kế nên vị trí một số điểm thay đổi (cao độ tất nhiên là đã bị thay đổi theo) nên cần sửa lại cao độ một số điểm hoặc ghi lại toàn bộ cao độ. Chẳng hạn lúc này các điểm A,B,C,D ... có cao độ mới tương ứng là: 121.20, 121.70, 120.90, 123.45 ...

Ghi cao độ: pick chọn A là điểm mốc, nhập cao độ là 121.20 (Vị trí điểm A có thể thay đổi hoặc không) rồi pick chọn cao độ 120.00 (là text hoặc block att) để gán cao độ mới là 121.20. Pick điểm B rồi pick chọn cao độ 120.50 để gán cao độ mới là 121.70. Các điểm khác làm tương tự.

 

Bác Tue_NV và các cao thủ giúp em với nha bởi nếu số điểm cần ghi cao độ ít thì xóa đi rồi điền lại không mất nhiều thời gian chứ nếu số điểm nhiều thì cũng mất kha khá đấy ạ.

Hề hề hề,

Hãy gửi bản vẽ có cái block point cao độ của bạn lên và cái kết quả bạn muốn sửa thành.

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

Xin lỗi đã đào lại topic này, xin nhờ các bạn chỉnh giúp lisp với một số yêu cầu sau: Khi nhập lệnh CAD

- Autocad tự động chèn block cao độ với gốc tọa độ tự động lấy tọa độ tuyệt đối trong CAD ở 0,0. Tỉ lệ sử dụng là 1 đơn vị trong cad=1m ngoài thực tế.

- Cho phép chọn lựa kiểu quay đầu mũi tên và text theo hướng lựa chọn (có ghi nhớ cho lần sau và có cho phép ghi nhớ lại nếu lần tiếp theo nhập lệnh CAD).

- Cho phép chọn tỉ lệ chung block và text cho bản vẽ cần phóng to tỉ lệ (tỉ lệ được ghi nhớ và cho phép chọn lại ở lần nhập lệnh tiếp).

- Cao độ sử dụng là m, số làm tròn 2 chữ số sau dấu phẩy.

http://www.cadviet.com/upfiles/7/12373_block.dwg

 

PS: Nếu thuộc tính block này sau khi thay đổi vị trí block cao độ khác nhau, text cũng tự thay đổi giá trị luôn thì tốt biết mấy.

 

Xin cảm ơn các bạn!

 

PS: Rất mong bác Tue_NV, bác ketxu, bác Nguyen Hoanh, bác phamthanhbinh cùng các bác khác giú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

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  

×