Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
43 replies to this topic

#1 auduongphuc

auduongphuc

    biết zoom

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

Đã gửi 14 July 2009 - 03:48 PM

em tìm thấy trên diễn đàn Lisp đánh cốt cao độ, nhưng có một vài điểm em thấy chưa vừa ý,nên nhờ bác Hoành viết dùm em cái lisp với yêu cầu sau: khi mình nhập lệnh cad sẽ yêu cầu mình xác định điểm 0,0. sau đó mình sẽ pick điểm đánh cốt cao độ, nhưng sẽ liên tục đến khi mình ngưng thì có thể enter để kết thúc lệnh, và cái kí hiệu đó có thể mirror qua lại được.khi cần chỉnh sửa thì có thể sửa trực tiếp như block ATT.đây là file kí hiệu cốt cao độ của em, mong bác lấy nó làm dùm em. Cảm ơn bác nhiều. http://www.cadviet.c.../Cot_cao_do.dwg
  • 0

#2 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 14 July 2009 - 04:02 PM

em tìm thấy trên diễn đàn Lisp đánh cốt cao độ, nhưng có một vài điểm em thấy chưa vừa ý,nên nhờ bác Hoành viết dùm em cái lisp với yêu cầu sau: khi mình nhập lệnh cad sẽ yêu cầu mình xác định điểm 0,0. sau đó mình sẽ pick điểm đánh cốt cao độ, nhưng sẽ liên tục đến khi mình ngưng thì có thể enter để kết thúc lệnh, và cái kí hiệu đó có thể mirror qua lại được.khi cần chỉnh sửa thì có thể sửa trực tiếp như block ATT.đây là file kí hiệu cốt cao độ của em, mong bác lấy nó làm dùm em. Cảm ơn bác nhiều. http://www.cadviet.c.../Cot_cao_do.dwg

Bạn dùng cad đời nhiêu mà mình dùng cad2007 mở hông ra vậy? Thấp thấp xuống cho mình mót tí bạn!
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 auduongphuc

auduongphuc

    biết zoom

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

Đã gửi 15 July 2009 - 08:13 AM

Bạn dùng cad đời nhiêu mà mình dùng cad2007 mở hông ra vậy? Thấp thấp xuống cho mình mót tí bạn!

ủa !mình cũng dùng cad 20007 thôi mà.bạn thử tải lại kiểm tra xem.
http://www.cadviet.c.../Cot_cao_do.dwg
sao chưa thấy bác hoanh đâu nhỉ?
  • 0

#4 phamchitan

phamchitan

    biết pan

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

Đã gửi 20 July 2009 - 04:33 PM

em tìm thấy trên diễn đàn Lisp đánh cốt cao độ, nhưng có một vài điểm em thấy chưa vừa ý,nên nhờ bác Hoành viết dùm em cái lisp với yêu cầu sau: khi mình nhập lệnh cad sẽ yêu cầu mình xác định điểm 0,0. sau đó mình sẽ pick điểm đánh cốt cao độ, nhưng sẽ liên tục đến khi mình ngưng thì có thể enter để kết thúc lệnh, và cái kí hiệu đó có thể mirror qua lại được.khi cần chỉnh sửa thì có thể sửa trực tiếp như block ATT.đây là file kí hiệu cốt cao độ của em, mong bác lấy nó làm dùm em. Cảm ơn bác nhiều. http://www.cadviet.c.../Cot_cao_do.dwg

như yêu cầu của bạn mình có lisp đó nhưng mình chưa biết cách post file từ máy của mình vào diễn đàn,vì vậy bạn cho mình địa chỉ mail mình sẽ gửi cho bạn hoặc bạn vào trang tuvanxd.net dowl phần TLKT về là có đấy bạn ạ.mình đã dùng rùi.
  • 0

#5 quygtvt

quygtvt

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: 27 (tàm tạm)

Đã gửi 20 July 2009 - 11:45 PM

em tìm thấy trên diễn đàn Lisp đánh cốt cao độ, nhưng có một vài điểm em thấy chưa vừa ý,nên nhờ bác Hoành viết dùm em cái lisp với yêu cầu sau: khi mình nhập lệnh cad sẽ yêu cầu mình xác định điểm 0,0. sau đó mình sẽ pick điểm đánh cốt cao độ, nhưng sẽ liên tục đến khi mình ngưng thì có thể enter để kết thúc lệnh, và cái kí hiệu đó có thể mirror qua lại được.khi cần chỉnh sửa thì có thể sửa trực tiếp như block ATT.đây là file kí hiệu cốt cao độ của em, mong bác lấy nó làm dùm em. Cảm ơn bác nhiều. http://www.cadviet.c.../Cot_cao_do.dwg

Đây là lisp viết theo yêu cầu của bạn:
http://www.cadviet.com/upfiles/CTR.vlx cho trường hợp đơn vị đo cao độ là mm.
Hoặc http://www.cadviet.c...files/CTR_1.vlx cho trường hợp đơn vị đo cao độ là m
Chú ý: Trong file cad phải có sẵn Block KH-COSVER như bạn đã gửi.
Tên lệnh là CTR.
  • 0
Không thể nói trời không xanh hơn,
và mắt em không xanh khác ngày thường

Hình đã gửi


#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 21 July 2009 - 04:54 AM

Đây là lisp viết theo yêu cầu của bạn:
http://www.cadviet.com/upfiles/CTR.vlx cho trường hợp đơn vị đo cao độ là mm.
Hoặc http://www.cadviet.c...files/CTR_1.vlx cho trường hợp đơn vị đo cao độ là m
Chú ý: Trong file cad phải có sẵn Block KH-COSVER như bạn đã gửi.
Tên lệnh là CTR.

Chào quygtvt
Có lẽ rằng khi viết Lisp bạn chưa chú ý đến biến ATTREQ
Lisp của bạn sẽ sai khi biến hệ thống ATTREQ = 0
Lisp của bạn chỉ đúng khi biến hệ thống ATTREQ = 1
Vậy nên, bạn phải thiết lập cái biến này trong Lisp thì Lisp mới đúng được
Chức năng của biến ATTREQ : bạn đọc Help nhé
:s_dead:
  • 1

#7 auduongphuc

auduongphuc

    biết zoom

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

Đã gửi 25 July 2009 - 08:34 AM

Đây là lisp viết theo yêu cầu của bạn:
http://www.cadviet.com/upfiles/CTR.vlx cho trường hợp đơn vị đo cao độ là mm.
Hoặc http://www.cadviet.c...files/CTR_1.vlx cho trường hợp đơn vị đo cao độ là m
Chú ý: Trong file cad phải có sẵn Block KH-COSVER như bạn đã gửi.
Tên lệnh là CTR.

Cám ơn bạn rất nhiều, mình đã down cả 2 file về dùng thử và thấy đúng như bác Tue NV đã nói. ATTREQ =0 thì đúng như ý mình, chỉ tiếc là số cao độ lại không chịu nhảy, còn = 1 thì số chịu nhảy nhưng dấu "+, - (âm dương)" thì không có. nhờ bác sửa lại dùm em chỗ đó. nếu được thì nhờ bác Tue NV sửa dùm cho em luôn. thank's các bác nhiều lắm lắm.
  • 0

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 25 July 2009 - 09:32 AM

Cám ơn bạn rất nhiều, mình đã down cả 2 file về dùng thử và thấy đúng như bác Tue NV đã nói. ATTREQ =0 thì đúng như ý mình, chỉ tiếc là số cao độ lại không chịu nhảy, còn = 1 thì số chịu nhảy nhưng dấu "+, - (âm dương)" thì không có. nhờ bác sửa lại dùm em chỗ đó. nếu được thì nhờ bác Tue NV sửa dùm cho em luôn. thank's các bác nhiều lắm lắm.

Đoạn Lisp của bạn quygtvt cần phải bổ sung thêm các ý sau cho hoàn thiện :
1. Bổ sung thêm biến Attreq để Lisp hoạt động đúng như Tue_NV đã nêu
2. Vấn đề về tỉ lệ vẽ. Vì đôi lúc ta vẽ với các tỉ lệ khác nhau
3. Cao độ tại điểm mốc. Tức là :
Nhap diem moc cao do:
Sau đó phải thêm dòng nữa là : Nhập cao độ cho điểm mốc là bao nhiêu ? -> để từ đó tính toán cao độ cho
Nhap diem ve cao do:
4. theo ý của auduongphuc
  • 0

#9 auduongphuc

auduongphuc

    biết zoom

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

Đã gửi 25 July 2009 - 11:45 AM

Đoạn Lisp của bạn quygtvt cần phải bổ sung thêm các ý sau cho hoàn thiện :
1. Bổ sung thêm biến Attreq để Lisp hoạt động đúng như Tue_NV đã nêu
2. Vấn đề về tỉ lệ vẽ. Vì đôi lúc ta vẽ với các tỉ lệ khác nhau
3. Cao độ tại điểm mốc. Tức là :
Nhap diem moc cao do:
Sau đó phải thêm dòng nữa là : Nhập cao độ cho điểm mốc là bao nhiêu ? -> để từ đó tính toán cao độ cho
Nhap diem ve cao do:
4. theo ý của auduongphuc

@ auduongphuc : Nếu bạn có thể sửa được chủ đề của Topic này thì Tue_NV sẽ giúp bạn vì lí do tế nhị là mình không muốn " múa rìu qua mắt bác Hoành". Mong bạn thông cảm

Cảm ơn bác Tue NV đã nhiệt tình giúp đỡ, nhưng ..Hic..hic...thật sự là em không biết làm cách nào có thể thay đổi được chủ đề. Post như vậy chủ yếu là để bác Hoành nhìn thấy dễ hơn,nếu rảnh thì có thể giúp em. nhưng thấy lâu quá, chắc bác Hoành bận thiệt rồi. thôi nhờ bác Tue NV viết dùm em đi. nếu bác Hoành có đọc được chắc cũng thông cảm mà. nếu bác vẫn ngại thì làm phiền bác gửi mail cho em. auduongphuc@gmail.com . Thank's bác nhiều.
  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 25 July 2009 - 03:32 PM

Chuyện "có thể thay đổi được tên chủ đề" hay không bạn Tue_NV biết rõ hơn bạn chứ? (Group: CADViet Team)
Nhưng bạn đã ghi rõ nhờ bác Hoành thì mọi người cũng dè chừng.
muốn giúp bạn nhưng ... ngại "cây đa cây đề".

Cám ơn anh giabach.
Em đang viết và cố gắng hoàn thành xong code này để giúp cho bạn auduongphuc.
Có gì trở ngại mong anh gia bách và mọi người hỗ trợ thêm.
Chào anh. Chúc anh thật nhiều sức khoẻ.
-----------
Tue_NV đã hoàn thành xong code này
Bạn auduongphuc chạy thử xem :
Chỉ Có 2 yêu cầu nhỏ khi chạy code :
1. Lisp chấp nhận bất cứ Block cao độ nào miễn là Block đó có 1 Atrtibute và Block đó phải có trên CAD để mà ta Pick chon Block mau
2. Điểm chèn Block đó nên nằm ngay cos cao độ chèn
Mong bạn auduongphuc hiểu

(defun c:dcd(/ 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 :"))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))
(if (< cdm 0) (setq cd (rtos cdm 2 3)))
(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(setq cdmi (* (- (cadr dm) cdm (cadr dmo)) tlv))
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 3))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 3))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 3)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)

(setvar "Dimzin" oldim)
(princ)
)

  • 4

#11 auduongphuc

auduongphuc

    biết zoom

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

Đã gửi 28 July 2009 - 09:37 AM

Cám ơn anh giabach.
Em đang viết và cố gắng hoàn thành xong code này để giúp cho bạn auduongphuc.
Có gì trở ngại mong anh gia bách và mọi người hỗ trợ thêm.
Chào anh. Chúc anh thật nhiều sức khoẻ.
-----------
Tue_NV đã hoàn thành xong code này
Bạn auduongphuc chạy thử xem :
Chỉ Có 2 yêu cầu nhỏ khi chạy code :
1. Lisp chấp nhận bất cứ Block cao độ nào miễn là Block đó có 1 Atrtibute và Block đó phải có trên CAD để mà ta Pick chon Block mau
2. Điểm chèn Block đó nên nằm ngay cos cao độ chèn
Mong bạn auduongphuc hiểu


(defun c:dcd(/ 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 :"))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))
(if (< cdm 0) (setq cd (rtos cdm 2 3)))
(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(setq cdmi (* (- (cadr dm) cdm (cadr dmo)) tlv))
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 3))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 3))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 3)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)

(setvar "Dimzin" oldim)
(princ)
)

Cảm ơn bác Tue_NV rất nhiều, Lisp của bác rất đúng với ý em (đến 99%), nhưng còn bị 1 vấn đề rất nhỏ nữa, không biết là do em kém hay bác nhầm (hy vọng là do em) mà cốt cao độ bị nhân lên tới 10 lần. Khi cốt ở 0.000 thì ok, nhưng khi mình lên cao hơn hoặc xuống thấp hơn thì đúng số nhưng bị x10 lần, mong bác chỉnh sửa lại dùm em hoặc bác chỉ bảo dùm em. Thank's bác. em xin gửi kèm theo file để dễ hình dung http://www.cadviet.c.../cot_cao_do.dwg
  • 0

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 28 July 2009 - 10:01 AM

Cảm ơn bác Tue_NV rất nhiều, Lisp của bác rất đúng với ý em (đến 99%), nhưng còn bị 1 vấn đề rất nhỏ nữa, không biết là do em kém hay bác nhầm (hy vọng là do em) mà cốt cao độ bị nhân lên tới 10 lần. Khi cốt ở 0.000 thì ok, nhưng khi mình lên cao hơn hoặc xuống thấp hơn thì đúng số nhưng bị x10 lần, mong bác chỉnh sửa lại dùm em hoặc bác chỉ bảo dùm em. Thank's bác. em xin gửi kèm theo file để dễ hình dung http://www.cadviet.c.../cot_cao_do.dwg

Bạn đã nhầm rồi. 5,6mét <=> 5600 mm
-> mà bạn vẽ cos là 5.600
=> kết quả tỉ lệ ở dòng Nhap ti le ve : 1/1000
Phải nhập là số 1000 phải không bạn
5600/5.6 = 1000

cos của bạn là 5,600 nhưng kết quả đo được là 5600 thì bạn suy luận sẽ ra kết quả tỉ lệ vẽ đó mà
Cái hay của Lisp này như Tue_NV đã nói là Lisp chấp nhận bất cứ Block cao độ nào miễn là Block đó có 1 Atrtibute và Block đó phải có trên CAD để mà ta Pick chon Block mau
  • 2

#13 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 28 July 2009 - 07:54 PM

Chuyện "có thể thay đổi được tên chủ đề" hay không bạn Tue_NV biết rõ hơn bạn chứ? (Group: CADViet Team)
Nhưng bạn đã ghi rõ nhờ bác Hoành thì mọi người cũng dè chừng.
muốn giúp bạn nhưng ... ngại "cây đa cây đề".


Nếu em là Bác Hoành chắc em cũng cảm thấy khó chịu với những topic chỉ đích danh tên mình thế này. "đây là diễn đàn chung của cả cộng đồng Cadviet cơ mà, có fải website của riêng tôi đâu mà lúc nào cũng fải chỉ rõ tên tôi mỗi khi bạn gặp vấn đề thế? nếu có gì thắc mắc thì cứ post lên để mọi nguời cùng tháo gỡ" Em mà là bác ấy em sẽ nghĩ như vậy đấy :s_dead:
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#14 ToTo08

ToTo08

    biết vẽ line

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

Đã gửi 26 August 2010 - 10:26 PM

Mình thấy lisp này rất hay, tuy nhiên có nhược điểm là khi "nhao cao do diem moc" nếu là 0.00 thì lisp chạy chính xác, nhưng nếu nhập con số khác 0, thì nó hiểu bị ngược. ví dụ tôi nhập 3 thì khi move lên 1 đơn vị kết quả sẽ là -2 (nếu đúng là 4), nếu tôi nhập -1 thì khi tôi move xuống 1 đơn vị thì kết quả là 0 (nếu đúng là -2). Bạn Tue_NV sửa lại chỗ này giúp mình, cám ơn.
  • 0

#15 ToTo08

ToTo08

    biết vẽ line

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

Đã gửi 28 August 2010 - 11:15 AM

:D Hic, chủ lisp không quan tâm nữa àh, mong tin chủ lisp, thanks.
  • 0

#16 dkkx3a

dkkx3a

    biết lệnh trim

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

Đã gửi 29 August 2010 - 09:57 AM

:D Hic, chủ lisp không quan tâm nữa àh, mong tin chủ lisp, thanks.


Bạn sài thử cái này, mình viết và dùng cũng tạm, có gì Reply lại nhé:
http://www.cadviet.c...showtopic=21470
  • 0
TỰ SỰ
Biển vào chiều buồn giữa cô liêu
Sóng vỗ bờ bạc đầu con nước
Khi biển động như lòng ta chợt động
Biển ồn ào nhưng thực rất dịu êm.......

#17 ngotheanh

ngotheanh

    biết vẽ circle

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

Đã gửi 01 September 2010 - 10:08 AM

Cám ơn anh giabach.
Em đang viết và cố gắng hoàn thành xong code này để giúp cho bạn auduongphuc.
Có gì trở ngại mong anh gia bách và mọi người hỗ trợ thêm.
Chào anh. Chúc anh thật nhiều sức khoẻ.
-----------
Tue_NV đã hoàn thành xong code này
Bạn auduongphuc chạy thử xem :
Chỉ Có 2 yêu cầu nhỏ khi chạy code :
1. Lisp chấp nhận bất cứ Block cao độ nào miễn là Block đó có 1 Atrtibute và Block đó phải có trên CAD để mà ta Pick chon Block mau
2. Điểm chèn Block đó nên nằm ngay cos cao độ chèn
Mong bạn auduongphuc hiểu


(defun c:dcd(/ 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 :"))
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))
(if (< cdm 0) (setq cd (rtos cdm 2 3)))
(command "insert" blname dmo TLX TLY "0" cd)
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(setq cdmi (* (- (cadr dm) cdm (cadr dmo)) tlv))
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 3))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 3))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 3)))
(command "insert" blname dm TLX TLY "0" cdi)
(setq dmoc dm)
)

(setvar "Dimzin" oldim)
(princ)
)

Bác ơi, tình hình là lisp của bạn rất hay, đúng ý mình, nhưng mà trong bản vẽ thì cốt cao độ sẽ là đơn vị mét, và thường là sau dấu thập phân chỉ cần hai số thôi, ví dụ như là +2.52, bác có thể sửa thêm giùm em dc không?Cảm ơn bác nhiều
  • 0

#18 18011985

18011985

    biết lệnh properties

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

Đã gửi 11 September 2010 - 11:07 AM

Bác ơi, tình hình là lisp của bạn rất hay, đúng ý mình, nhưng mà trong bản vẽ thì cốt cao độ sẽ là đơn vị mét, và thường là sau dấu thập phân chỉ cần hai số thôi, ví dụ như là +2.52, bác có thể sửa thêm giùm em dc không?Cảm ơn bác nhiều

Bạn chỉ cần sửa Rtos ..... 2 3 -> Rtos ........ 2 2
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#19 almodeus

almodeus

    biết vẽ arc

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

Đã gửi 15 February 2011 - 01:56 AM

lisp đánh cao độ của Tue rất hay nhưng bị lỗi rồi...sau khi cho giá trị tại điểm mốc, thì nó cứ bằng 0 và cái block bị rotate một góc...và click những điểm tiếp theo thì vẫn không nhảy số...
  • 0

#20 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 14 September 2012 - 11:33 AM

Cám ơn anh giabach.
Em đang viết và cố gắng hoàn thành xong code này để giúp cho bạn auduongphuc.
Có gì trở ngại mong anh gia bách và mọi người hỗ trợ thêm.
Chào anh. Chúc anh thật nhiều sức khoẻ.
-----------
Tue_NV đã hoàn thành xong code này
Bạn auduongphuc chạy thử xem :
Chỉ Có 2 yêu cầu nhỏ khi chạy code :
1. Lisp chấp nhận bất cứ Block cao độ nào miễn là Block đó có 1 Atrtibute và Block đó phải có trên CAD để mà ta Pick chon Block mau
2. Điểm chèn Block đó nên nằm ngay cos cao độ chèn
Mong bạn auduongphuc hiểu

(defun c:dcd(/ 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 :"))(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 3))))(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 3))))(if (< cdm 0) (setq cd (rtos cdm 2 3)))(command "insert" blname dmo TLX TLY "0" cd)(setq dmoc dmo)(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))(setq cdmi (* (- (cadr dm) cdm (cadr dmo)) tlv))(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 3))))(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 3))))(if (< cdmi 0) (setq cdi (rtos cdmi 2 3)))(command "insert" blname dm TLX TLY "0" cdi)(setq dmoc dm))(setvar "Dimzin" oldim)(princ))

Lisp này của bác rất tuyệt. Mong bác chỉnh sửa thêm cho lisp hoàn thiện:
- Lỗi gặp phải là cao độ điểm mốc khác 0 thì lisp tính phần cao độ tại các điểm thấp hơn chưa đúng. (Thay vì trừ đi khoảng cách giữa 2 điểm thì nó lại lấy cao độ mốc cộng thêm vào và điền dấu trừ phía trước, mặc dù cao độ mốc là 5.00 và khoảng cách giảm xuống là 2.00: Kết quả đúng phải là +3.00 nhưng lisp tính là: -7.00)
- Khi lựa chọn cao độ mốc, thêm chức năng chọn text trực tiếp trên bản vẽ (Hiện tại chỉ có 1 lựa chọn nhập số bằng tay)
Thanks
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1