Đến nội dung


Hình ảnh
* * * - - 1 Bình chọn

[Đã xong] Tính tổng diện tích các hình trên bản vẽ, "Ed" vào text sẵn có


  • Please log in to reply
100 replies to this topic

#61 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 03 June 2011 - 01:44 PM

XIn lỗi các bạn, không hiểu sao chủ đề bị trôi mất, nên mình không kíp trả lời kịp thời :

- Không khó. Không biết bạn còn cần không ? Tỷ lệ bản vẽ có thể nhập hoặc lấy tỉ lệ Dim hiện thời


- Yêu cầu này đã được bác Bình sửa ở topic Viết Lisp theo yêu cầu rồi bạn nhé ^^ Trang 180



- Xanh : được, và trên diễn đàn cũng đã có. CÒn làm trên phôi "UDT" thì bạn nhờ thẳng bác TUệ ^^
- Đỏ : được, trong trường hợp các Pline đó kín . K kín vẫn có thuộc tính area nhưng chưa chắc đã đúng ^^ Nếu bạn ưng cái bụng thì mình mần luôn ^^
P/S : layer đó là layer nào, nhập vào lisp bằng cách nào ? (chọn đối tượng mẫu, hay viết trong lisp, hay nhập tay ??")

Hề hề hề,
Đỏ: được nhưng cần biết cái định nghĩa tâm của các hình đó là cái gì và được xác định ra sao????
Hề hề hề,

Rất cảm ơn bác ketxu đã quan tâm vấn đề này.
Vấn đề của em là như thế này:
- thứ nhất em dùng 1 Pline vẽ các đường cong kín (để bắt diện tích các phòng, diện tích hành lang ...)
- sau đó em sẽ đo diện tích các Pline kín đó rồi ghi vào giữa các phòng (Pline kín)
- cuối cùng là tạo 1 cái bảng ghi tên phòng và diện tích.
Thực ra đây là công việc của họa viên, nhưng em thấy autolisp tuyệt vời quá.
Không biết là bác ketxu và các cao thủ khác có ý tưởng gì về vấn đề của em không.
Cảm ơn các bác nhiều và chúc một buổi chiều làm việc vui vẻ.
PS: em không thấy cái nút thanks chỗ nào cả, có phải là click vào dấu "+" chỗ bình chọn cho bài viết này không?

Hề hề hề,
Tâm các hình và giữa các hình cần được định nghĩa một cách chính xác bạn nhé. nếu không lisp viết xong lại phải bập bập thì mệt đáo để.
Cái nút thanhks chính là cái nút bạn hỏi. Không tin cứ kích thử vào sẽ biết mà....
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#62 mokara30

mokara30

    biết zoom

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

Đã gửi 03 June 2011 - 03:15 PM

okey, em đọc bài nào, click "+" bài đó tuốt bác phamthanhbinh ah.
thực ra em chẳng cần chính xác tâm làm gì, em chỉ cần thể hiện XYZ m2 vào trong phòng đó (bên trong đường pline kín đó thôi.
Thanks bác Bình nhé.
  • 1

#63 mokara30

mokara30

    biết zoom

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

Đã gửi 08 June 2011 - 10:45 AM

mấy hôm nay em lên núi, hok có thời gian vô diễn đàn. Không biết là có pác nào có ý tưởng cho vấn đề của em không nhỉ???
  • 0

#64 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 08 June 2011 - 04:05 PM

mấy hôm nay em lên núi, hok có thời gian vô diễn đàn. Không biết là có pác nào có ý tưởng cho vấn đề của em không nhỉ???

Hề hề hề,
Bạn lên núi tu thêm được mấy thành công lực rồi hỉ???
Chừng nào thì hạ sơn hành hiệp???
Vấn đề của bạn thực ra trên diễn đàn đã có khá khá lisp tương tự. Có thể do bạn chưa biết cách vận dụng chúng nên mới lúng túng như vậy. Bạn nên post một bản vẽ bạn có trước khi chạy lisp lên và một bản vẽ thể hiện cái bạn cần có sau khi chạy lisp. Như vậy sẽ thuận lợi hơn cho người viết lisp vì thực ra bạn nói chưa rõ ràng lắm. Tỷ như cái bảng thống kê bạn cần có ấy dài rộng ra sao??? Nội dung cần thể hiện trong cái bảng thống kế ấy???....
Rất mong bạn bớt chút thời gian để các lisper đỡ phải đoán mò bạn nhé....
Chúc bạn sớm thành công trong công việc cũng như tư việc.... Hề hề hề....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#65 hngochuan

hngochuan

    Chưa sử dụng CAD

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

Đã gửi 23 June 2011 - 01:58 AM

Ko biết mọi người thấy sao chứ lisp tính diện tích trên diễn đàn mình đều có thử cả và thấy có 1 vài nhược điểm nên chế ra cái này mọi người dùng thử nha.( Bản vẽ kĩ thuật thường là đơn vị mm tính kết quả ra đơn vị là m2).Lisp tính được với các bản vẽ tỉ lệ bất kì.Có thể tính tổng 1 lúc nhiều hình.Rất tiện khi tính đào và bóc khối lượng.
http://www.cadviet.c...files/3/dti.lsp
;------------------------------------tinh dien tich (dti)-----------------------------------
(Defun c:dti()
(setvar "cmdecho" 0)
(initget "Heso Do")
(command "style" "DT" "vn-abc.shx" "" "0.8" "0.6" "" "" "")
(if (not tpo) (setq tpo 1))
(setq SC (getint (strcat "\n Nhap ti le <" (itoa tpo) "> :")))
(if (not SC) (setq SC tpo) (setq tpo SC))
(if (not tp1) (setq tp1 2))
(setq tp (getint (strcat "\n Nhap So chu so thap phan <" (itoa tp1) "> :")))
(if (not tp) (setq tp tp1) (setq tp1 tp))
(setq pt (getpoint "\n chon diem:"))
(if (= pt "Heso")
(progn
(setq am (getreal "\n loccoc259.co.cc : "))
(if (and (null am) (/= ac 0))
(setq am ac)
)
(setq pt (getpoint "\n Chon diem: "))
)
(setq ac am))

(if (or (= am 0) (null am)) (setq am 1))
(setq s 0)
(progn
; (setq pt (getpoint "\n Chon diem: "))
(while pt
(setq entold (cdr (assoc 5 (entget (entlast)))))
(command "boundary" pt "")
(setq entnew (cdr (assoc 5 (entget (entlast)))))
(if (/= entold entnew)
(progn
(setq entnew (entget (entlast)))
(if (assoc 62 entnew)
(setq entnew (subst (cons 62 (+ 3 (cdr (assoc 62 entnew)))) (assoc 62 entnew) entnew))
(setq entnew (append entnew (list (cons 62 (+ 3 (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 entnew))))))))))
)
(entmod entnew)
(Command "area" "o" (entlast))
(setq s (+ s (getvar "area")))
(setq pt (getpoint "\n Chon diem: "))
(entdel (entlast))
)
(progn
(princ "chon diem sai")
(setq pt (getpoint "\n Chon diem: "))
)
)
)

)

"(command "osnap" "intersection")"

(princ (* s am))
(princ)
(command "style" "DT" "vn-abc.shx" "" "0.85" "0.6" "" "" "")
(setq pt1 (getpoint "Chon vi tri ghi dien tich: "))
(setq dt1 (* s am SC SC))
(setq dt (/ dt1 1000000))
(setq dt (strcat (rtos dt 2 tp)))
(command "text" pt1 2 0 (strcat dt))
)

Thấy hay thì nhớ thanks nha.

Em thấy líp này rất hay, có thể chọn đwợc tỷ lê. nhwng em góp ý chút là bác chế làm sao để khi pick vùng tính diện tích nó sẽ hiện lên dạng mặt cắt của vùng đó để không bị nhầm lẫn pick 2 lần vào cùng một vùng tính diện tích ! pác mail cho em thì tôt ! hngochuan@gmail.com
  • 0

#66 tski259

tski259

    biết vẽ pline

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

Đã gửi 23 June 2011 - 08:39 PM

Em thấy líp này rất hay, có thể chọn đwợc tỷ lê. nhwng em góp ý chút là bác chế làm sao để khi pick vùng tính diện tích nó sẽ hiện lên dạng mặt cắt của vùng đó để không bị nhầm lẫn pick 2 lần vào cùng một vùng tính diện tích ! pác mail cho em thì tôt ! hngochuan@gmail.com

Hi.Thực chất nó có đó bạn.Nếu trùng màu thì bạn đổi màu layer đang dùng sang màu khác là thấy liền hà.Chúc bạn vui.
  • 0

#67 tski259

tski259

    biết vẽ pline

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

Đã gửi 23 June 2011 - 09:38 PM

Hi.trả lời ra ngoài mới thấy là chuyên mục tính diện tích "ed" vào text sẵn có.lisp dti là ghi ra text,đành chế thêm thêm tí cho hợp với chuyên mục nè.lệnh dt2.
http://www.cadviet.c...files/3/dt2.lsp
;------------------------------------tinh dien tich (dt2)-----------------------------------
(Defun c:dt2()
(setvar "cmdecho" 0)
(initget "Heso Do")
(if (not tpo) (setq tpo 1))
(setq SC (getint (strcat "\n Nhap ti le <" (itoa tpo) "> :")))
(if (not SC) (setq SC tpo) (setq tpo SC))
(if (not tp1) (setq tp1 2))
(setq tp (getint (strcat "\n Nhap So chu so thap phan <" (itoa tp1) "> :")))
(if (not tp) (setq tp tp1) (setq tp1 tp))
(setq pt (getpoint "\n chon diem:"))
(if (= pt "Heso")
(progn
(setq am (getreal "\n loccoc259.co.cc : "))
(if (and (null am) (/= ac 0))
(setq am ac)
)
(setq pt (getpoint "\n Chon diem: "))
)
(setq ac am))

(if (or (= am 0) (null am)) (setq am 1))
(setq s 0)
(progn
; (setq pt (getpoint "\n Chon diem: "))
(while pt
(setq entold (cdr (assoc 5 (entget (entlast)))))
(command "boundary" pt "")
(setq entnew (cdr (assoc 5 (entget (entlast)))))
(if (/= entold entnew)
(progn
(setq entnew (entget (entlast)))
(if (assoc 62 entnew)
(setq entnew (subst (cons 62 (+ 3 (cdr (assoc 62 entnew)))) (assoc 62 entnew) entnew))
(setq entnew (append entnew (list (cons 62 (+ 3 (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 entnew))))))))))
)
(entmod entnew)
(Command "area" "o" (entlast))
(setq s (+ s (getvar "area")))
(setq pt (getpoint "\n Chon diem: "))
(entdel (entlast))
)
(progn
(princ "chon diem sai")
(setq pt (getpoint "\n Chon diem: "))
)
)
)

)

(setq dt1 (* s am SC SC))
(setq dt (/ dt1 1000000))
(princ dt)
(setq obj (vlax-ename->vla-object
(car (entsel "\nChon text de ghi ket qua:"))
)
)
(vla-put-TextString obj (rtos dt 2 tp))
)
@Ketxu : Cảm ơn bác đã khuyến khích mình nc về lisp nha.Thực chất mình cũng muốn lắm.Nhưng đi làm suốt không có thời gian để nc sâu lắm.Mình muốn mua sách xem thêm mà mình lượn ở Vinh lẫn Hà Tĩnh mà không có nơi náo bán sách về lisp cả.Mình phải học mót trên diễn đàn với dịch help của Cad, mà trình độ tiếng anh còn kém lắm,học chậm như rùa.Nên mới dừng ở việc độ lisp thôi.Nhưng mình sẽ cố gắng để góp sức cho diễn đàn ngày càng phát triển.
  • 2

#68 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 23 June 2011 - 10:40 PM

@Ketxu :....Nhưng mình sẽ cố gắng để góp sức cho diễn đàn ngày càng phát triển.

Trước tiên bạn hãy đóng góp bằng cách cho Code vào trong thẻ code ^^
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#69 tski259

tski259

    biết vẽ pline

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

Đã gửi 23 June 2011 - 11:23 PM

Trước tiên bạn hãy đóng góp bằng cách cho Code vào trong thẻ code ^^

Hi.Nghe liền
  • 0

#70 Tankyduyen

Tankyduyen

    Chưa sử dụng CAD

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

Đã gửi 04 April 2012 - 01:54 AM

Kích thước của chương trình đang sử dụng là mm
Bạn muốn đổi sang mét thì nhập vào hệ số chuyển đổi đơn vị là 1/1000 (hoặc 0,001) nhé.
Code sửa lại đây :

(defun c:udt(/ ss tong ham tmp tt hstl oldim)
(prompt "\n Kich thuoc cua chuong trinh tinh theo don vi mm ")
(setq hstl (getreal "\n Nhap ti le chuyen doi don vi :"))
(setq tp (getint "\n so chu so thap phan : "))
(setq oldim (getvar "Dimzin"))
(setvar "Dimzin" 0)
(setq
ss (ssget '((-4 . "<or")(0 .="" "lwpolyline")(0="" "region")(0="" "circle")(0="" "arc")(-4="" "or="">"))) </or")(0></p> <p> tong 0.0</p> <p> ham (lambda (x) (command ".area" "o" x) (setq tong (+ tong (getvar "area"))))</p> <p> tmp (mapcar 'ham (ss2ent ss)) </p> <p> tt (entget (car (entsel "\nChon text ket qua: ")))</p> <p> tong (vl-string-right-trim "." (vl-string-right-trim "0" (rtos tong)))</p> <p> )</p> <p> (entmod (subst (cons 1 (rtos (* (atof tong) hstl hstl) 2 2)) (assoc 1 tt) tt))</p> <p> (setvar "Dimzin" oldim)</p> <p> (princ)</p> <p> )</p> <p> </p> <p> (defun ss2ent(ss / sodt index lstent)</p> <p> (setq </p> <p> sodt (if ss (sslength ss) 0) </p> <p> index 0</p> <p> )</p> <p> (repeat sodt</p> <p> (setq ent (ssname ss index)</p> <p> index (1+ index)</p> <p> lstent (cons ent lstent)</p> <p> )</p> <p> )</p> <p> (reverse lstent)</p> <p> )</p> <p> (princ "\nUpdate Area - free lisp from cadviet.com")</p> <p> (princ "\nUse UDT command to start!")</p> <p> (vl-load-com)</p> <p>

</p> <p> </p><p>Hay quá, hôm nay em mới biết trang web này. Nghiên cứu ngay<br></p>
  • 0

#71 trần quang mỹ

trần quang mỹ

    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 May 2012 - 11:11 AM

các bác giúp em với.cách dùng lisp tính diện tích đào khuôn và đắp lề làm như thế nào ah.em có lisp UTD của bác tuệ mà em không biết cách dùng sao nữa.cảm ơn các bác ạh
  • 0

#72 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 28 June 2012 - 06:40 PM

Bác Teu hay bác ketxu ơi giúp em sửa cai lisp UDT tình diện tích ra m2 thêm 4 ý nữa cho hợp với công việc của kiến trúc sư được ko ? .

1. Em muốn sau khi tính ra diên tích rồi và pick vô 1 cái text sẵn có nào đó để edit ra kết quả như moi người đã biết thì kết quả đó có luôn phần hậu tố là m2 nếu tỷ lệ nhâp là 0.001 và kết quả đó có luôn phần hậu tố là ha (hécta ) nếu tỷ lệ nhập là 1/10 000 000 000 (vì 1ha = 10 000 m2 = 10 000 000 000 mm2 ) Mà tốt nhât các bác bỏ luôn đoạn nhập tỷ lệ cho em thay vào đó cho lụa chọn hệ đơn vị sẽ quy đổi luôn là m2 thì tiện lợi hơn , em nghĩ vậy , ( mạc định là cho chọn hệ m2 như bác Tue cho em chọn tỷ lệ 0.001 , vì hay dùng m2 nhất )
. VD kết quả là 15m2 , 20m2, 34ha , 45ha ,,,,Xin các bác lưu ý là không cần ký tự cách giữa con số và 2 ký tự m2 đâu ạ , viết liền luôn
2. Như ý 1 nhưng ý 2 thì kết quả là : Phòng Khách 30m2 hay Phòng Ngủ 25m2 ( Phòng Khách , Phòng Ngủ là các text đã có sẵn trên bản vẽ ) các bác lưu ý về dấu cách giữa tên phòng và kết quả nhé
3 . Em Muốn có thêm 1 chế độ trong Lisp UDT của bác Teu giống như của bác tksi259 đó là ko cần chọn Text để edit ra kết quả mà pick vô 1 điểm bất kỳ thế là phát sinh ra text kết quả ( mạc định chiều cao Text là 300 , có thể thay đổi mạc định nè để ko cần edit chiều cao text kết quả nhiều lần )
4. Lisp của bác tksi259 sao toàn cho kết quả là 0 , chắc tạ em gà quá , nhưng có cái hay là khi vùng tính diện tích chưa bo Pline thì ko dùng phương pháp pick vùng kín như UDT mà lại dùng phương án pick điểm ( pick vùng kín như UDT mà gặp vùng bản vẽ nhiều hatch nặng là treo máy ngay , mà nhiều khi vùng cần tính diện tích là vùng "ảo" chỉ có trong đầu KTS chưa vẽ ra bản vẽ thì sao , làm concept hay gặp lắm , chưa vẽ kỹ nhưng đã muốn có kết quả để kiểm nghiệm trước rồi mới vẽ kỹ mà ) , mong bác Tue sửa nhất chỗ này cho em đỡ treo máy

Em xin cảm ơn ! rất mong cac bác edit cho ! Hiện giờ bao em vẫn dùng UDT cũ vần thấy tuyệt vời rồi nhưng đc thêm 4 ý trên nữa thì Lisp hoàn hảo ko 1 tỳ vết luôn các bác ạ
  • 0

#73 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 28 June 2012 - 07:12 PM

Chờ bác Teu ra tay :D
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#74 HoaVien

HoaVien

    biết vẽ arc

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

Đã gửi 29 June 2012 - 07:26 AM

Bác Teu hay bác ketxu ơi giúp em sửa cai lisp UDT tình diện tích ra m2 thêm 4 ý nữa cho hợp với công việc của kiến trúc sư được ko ? .
......................

Bác tếu, tều hay têu gì đó mau ra giúp nhé :ph34r:
  • 0

#75 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 29 June 2012 - 09:09 AM

Sorry bác Tue_NV , em bị cái tật hay viết nhầm tên .... người nổi tiếng , càng nổi tiếng em càng hay nhầm :D . Chắc bác là trường hợp ... duy nhất khiến em nhớ nhầm :D
  • 0

#76 Hung_tthanh

Hung_tthanh

    biết pan

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

Đã gửi 26 July 2012 - 08:28 AM

Nguyên văn lisp "udt" ở bên trên, cũng không biết có phải lisp bạn đề cập không, cũng không rõ việc không nhận lệnh là như thế nào. Hy vọng bạn hiểu ý mình Hình đã gửi

(defun c:udt(/ ss tong ham tmp tt hstl oldim toe frome cur dt)
(prompt "\n Kich thuoc cua chuong trinh tinh theo don vi mm ")
(if (not hstlo) (setq hstlo 0.001))
(setq hstl (getreal (strcat "\n Nhap ti le chuyen doi don vi <" (rtos hstlo 2 3) "> :")))
(if (not hstl) (setq hstl hstlo) (setq hstlo hstl))
(if (not tpo) (setq tpo 2))
(setq tp (getint (strcat "\n Nhap So chu so thap phan <" (itoa tpo) "> :")))
(if (not tp) (setq tp tpo) (setq tpo tp))
(setq oldim (getvar "Dimzin"))
(setvar "Dimzin" 0)
(prompt "\n Chon doi tuong de tinh dien tich hay Enter de tinh dien tich theo Pick diem ")
(setq
ss (ssget '((-4 . "<OR")(0 . "LWPOLYLINE")(0 . "REGION")(0 . "CIRCLE")(0 . "ARC")(-4 . "OR>")))
tong 0.0
ham (lambda (x) (command ".area" "o" x) (setq tong (+ tong (getvar "area"))))
tmp (mapcar 'ham (ss2ent ss))
)

(if (not ss) (progn
(setq tong 0.0 ss (ssadd))
(while (setq p (getpoint "\n Pick vao vung tinh dien tich :"))
(setq frome (entlast))
(command ".boundary" p "")
(setq toe (entlast))

(setq cur frome)
(while (not (eq cur toe))
(setq
cur (entnext cur)
ss (ssadd cur ss))
(command "area" "S" "O" ss "" "")
(setq dt (getvar "area"))
(setq tong (+ tong dt))
)
(command "area" "A" "O" "L" "" "")
(setq dt (getvar "area"))
(setq tong (+ tong (* dt 2)))
(sssetfirst ss ss)
)
(command "erase" ss "")
))


(setq tt (entget (car (entsel "\nChon text ket qua: ")))
tong (vl-string-right-trim "." (vl-string-right-trim "0" (rtos tong)))
)
(entmod (subst (cons 1 (rtos (* (atof tong) hstl hstl) 2 tp)) (assoc 1 tt) tt))

(setvar "Dimzin" oldim)


(princ)
)
;
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(princ "\nUpdate Area - free lisp from cadviet.com")
(princ "\nUse UDT command to start!")
(vl-load-com)


Bạn kiểm tra thử lại xem hình như hệ số chuyển đổi đơn vị bị lôi.
Ví dụ mình vẽ hình chữ nhật 1000x1000
1. ban đầu mình thay đôi hệ sô là 0.0005 thì diện tích ra 0.25 => Ok
2. làm lại lần nữa lúc nhập hệ số thì tại dòng nhắc đã hiện sẵn mặc định là "<0.001>: 0.001", mình ấn Enter để rồi tính thì diện tích vẫn là 0.25. Muốn diện tính ra đúng thì phải đánh vào số 0.001
- Rất dễ xãy ra sai xót vì tại dòng nhắc vẫn hiện là <0.001> nhưng thực chất tỉ lệ lại là 0.0005 bạn có thể sửa đổi là khi nhập 0.0005 thì làm lại lần tiếp theo thì dòng nhắc hiện là <0.0005> để biết mình đang làm với hệ số nào....^!^
  • 0

#77 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 29 October 2012 - 03:31 PM

Lệnh UDT (Update diện tích) dưới đây sẽ làm điều bạn muốn:

(defun c:udt(/ ss tong ham tmp tt)  (setq    ss (ssget '((-4 . "<or")(0 .="" "lwpolyline")(0="" "region")(0="" "circle")(0="" "arc")(-4="" "or="">")))    	tong 0.0    ham (lambda (x) (command ".area" "o" x) (setq tong (+ tong (getvar "area"))))    tmp (mapcar 'ham (ss2ent ss))      tt (entget (car (entsel "\nChon text ket qua: ")))    tong (vl-string-right-trim "." (vl-string-right-trim "0" (rtos tong)))  )  (entmod (subst (cons 1 tong) (assoc 1 tt) tt)))(defun ss2ent(ss / sodt index lstent)  (setq 	sodt (if ss (sslength ss) 0)         index 0  )  (repeat sodt    (setq ent (ssname ss index)  	index (1+ index)  	lstent (cons ent lstent)    )  )  (reverse lstent))(princ "\nUpdate Area - free lisp from cadviet.com")(princ "\nUse UDT command to start!")(vl-load-com)
</or")(0></p> <p>

</p> <p> </p><p>Hôm nay, trong công việc thấy có cái công tác tính tổng diện tích.<br></p><p>Em seach thấy Lisp của bác Hoanh ---> em cười như nghé, như địa chủ được mùa<br></p><p>Ai ngờ down về, load lên.......-----> "Unknown command "UDT". Press F1 for help."<br></p><p>Nhờ bác giúp dùm cho !<br></p>
  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#78 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 29 October 2012 - 03:58 PM

Với lisp này thì sao mà em load thì máy đã tính đc diện tích nhưng khi điền diện tích thì "Chon text de ghi ket qua:; error: no function definition:
VLAX-ENAME->VLAX-OBJECT"
  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#79 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 29 October 2012 - 06:27 PM

trên diễn đàn nói nhiều về vấn đề này r, bạn chịu khó search nhé
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#80 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 30 October 2012 - 09:06 AM

trên diễn đàn nói nhiều về vấn đề này r, bạn chịu khó search nhé

Cảm ơn vì đã nhắc nhở!
Mình đã search chủ đề lisp tính dt nhưng quên mất thế võ đó khi gặp lỗi ! Thanks! OK rồi !
  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson