Đến nội dung


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

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#2681 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 25 August 2009 - 05:32 PM

TUE có thể viết giúp mình được ko?viết dùm mình lisp convert text và Mtext từ mã VNI windows sang unicodevà ngược lại ko vậy?cảm ơn bạn rất nhiều!
  • 0

#2682 HoangSon614

HoangSon614

    biết lệnh properties

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

Đã gửi 25 August 2009 - 07:58 PM

Bạn Hoàng Sơn 614 thân mến, mình test lại rồi, chạy êm mà. Bạn chú ý nhé:
nếu ví dụ bạn có 1 cái ao hình chữ nhật với mỗi chiều là 1m và 2m
khi bạn vẽ lên máy với đơn vị là: m thì các cạch tương ứng trong autocad sẽ là: 1 và 2 tỉ lệ 1/n trong chương trình sẽ là: 1
----------------------------------- :Dm --------------------------------------------- -- : 10 và 20 ------------------------------------ : 10
----------------------------------- :cm ------------------------------------------------ : 100 và 200 ------------------------------------- : 100
------------------------------------ :mm ------------------------------------------------ : 1000 và 2000 ------------------------------------- : 1000
hoặc bạn có thể xác định tỉ lệ bản vẽ của bạn bằng cách đo khoảng cách cạnh AB trên Autocad và chia cho khoảng cách thực ở ngoài thực địa nhé
ví dụ bạn đo chiều dài cái nhà là 4.50 tương ứng ở thực địa là 9m như vậy tỉ lệ bản vẽ sẽ là 4.5 / 9 = 0.5.
Bạn lấy thương số đó lắp vào tỉ lệ 1/n của chương trình tính diện tích nhé.
note: xoá hết cái lisp cũ nhé rồi down lại cái bản vá lỗi về nhé.
nhớ làm theo hướng dẫn trong file "huong dan.doc" nhé...

Cảm ơn tomboy đã quan tâm tới mình, nhưng mình vẫn còn một số chưa rõ, bạn giải thích giúp mình nhé
1. Theo như ý bạn (chiều dài cái nhà là 4.50 tương ứng ở thực địa là 9m như vậy tỉ lệ bản vẽ sẽ là 4.5 / 9 = 0.5) thì mình hiểu là vẽ tỷ lệ 1/2
Nên lấy 1/2 = 0.5 và nhập 0.5 vào để tính diện tích đúng không bạn
2. Vậy mình có một mặt bằng nhà (13x8)m = 136m2 vẽ với tỷ lệ 1/200, vậy tỷ lệ nhập vào = 0.02 nhưng kết quả là sai.
Vậy nguyên tắc chung nhất như thế nào để có kết quả là chính xác và là một số thực với bất kỳ tỷ lệ vẽ nào
Cụ thể như: với kích thước nhà 20x5=100m2
Với tỷ lệ vẽ 1/100 = 100m2
1/10 = 100m2
1/50 = 100m2
Và mình nhờ bạn giải thích thêm bạn tính tỷ lệ như thế nào mà ra kết quả như trên (phần màu đỏ phía trên)
Mình vẫn chưa thông, bạn thông cảm cố giúp mình cho trót. Cảm ơn bạn nhiều
  • 0

#2683 HoangSon614

HoangSon614

    biết lệnh properties

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

Đã gửi 25 August 2009 - 08:40 PM

thanhks, bạn nói đúng, tại vì mình chỉ tập trung tìm lỗi của chương trình đó là lỗi thiếu font trong autocad và lỗi vòng lặp khi đọc dữ liệu từ tệp ra thôi nên mình không để ý tới vấn đề đó. mình sẽ rút kinh nghiệm để những bản vá sau được hoàn thiện hơn.

Cố gắng hoàn thiện trong thời gian sớm nhất có thể nha bạn và chính điều đó có thể giúp ích được cho nhiều người trên diễn đàn đó. Chúc bạn bạn sớm hoàn thành
  • 0

#2684 tivanteo

tivanteo

    biết vẽ circle

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

Đã gửi 25 August 2009 - 09:51 PM

ok, của bạn đây, lisp này do mình viết vội quá nên không kịp test kỹ, bạn chạy thử rồi cho ý kiến nhé
link nè: http://www.cadviet.c...files/2/glt.rar
note: đọc kỹ hướng dẫn trong file HUONG DAN.DOC nhé
Lệnh là: GLT (get lý trình đấy mà)


Cám ơn tomboy đã giúp đỡ.Mình đã test rồi ct của bạn không nhận đường spline, mình cần là 1 điểm trên spline, mình đã test ct của bác gia bach viết , nói chung là đúng ý mình cần rồi, bạn có thể giúp đỡ mình viết thêm 1 đoạn lisp để vẽ 1 đường spline lên các điểm đã xác định trên các đườn spline trước
thank bac GIA BACH nhé
  • 0

#2685 tomboy

tomboy

    biết vẽ polygon

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

Đã gửi 25 August 2009 - 10:34 PM

Cảm ơn tomboy đã quan tâm tới mình, nhưng mình vẫn còn một số chưa rõ, bạn giải thích giúp mình nhé
1. Theo như ý bạn (chiều dài cái nhà là 4.50 tương ứng ở thực địa là 9m như vậy tỉ lệ bản vẽ sẽ là 4.5 / 9 = 0.5) thì mình hiểu là vẽ tỷ lệ 1/2
Nên lấy 1/2 = 0.5 và nhập 0.5 vào để tính diện tích đúng không bạn
2. Vậy mình có một mặt bằng nhà (13x8)m = 136m2 vẽ với tỷ lệ 1/200, vậy tỷ lệ nhập vào = 0.02 nhưng kết quả là sai.
Vậy nguyên tắc chung nhất như thế nào để có kết quả là chính xác và là một số thực với bất kỳ tỷ lệ vẽ nào
Cụ thể như: với kích thước nhà 20x5=100m2
Với tỷ lệ vẽ 1/100 = 100m2
1/10 = 100m2
1/50 = 100m2
Và mình nhờ bạn giải thích thêm bạn tính tỷ lệ như thế nào mà ra kết quả như trên (phần màu đỏ phía trên)
Mình vẫn chưa thông, bạn thông cảm cố giúp mình cho trót. Cảm ơn bạn nhiều

thường thì khi vẽ bản vẽ kỹ thuật đơn vị sẽ là mm. Ví dụ vẽ một cái cốt xe honda có đường kính D10 hay R5 tức là 10mm . Nếu vẽ đơn vị là m thì phải ghi là D0.01m, với cách ghi này rất là khó chịu khi mình đọc bản vẽ, nếu như cái cốt xe đó có đường kính là 1m thì người ta phải vẽ là D1000 , do đó tỉ lệ thay đổi diện tích là m=1000,
  • 0

#2686 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 26 August 2009 - 07:50 AM

............
Do đó em muốn viết 1 LISP khi chạy sẽ tự động Select toàn bộ đối tượng trên bản vẽ (có thể dùng Command: _AI_SELALL) rồi tự động tính ra Xmax, Ymax, Xmin, Ymin từ đó tính toạ độ trung bình của 2 điểm Max, Min trên rồi gán toạ độ đó cho biến INSBASE của bản vẽ. Khi insert sẽ dùng BASEPOINT của bản vẽ này để đặt đúng vị trí mình muốn (bởi vì mặc định biến INSBASE của bản vẽ là (0.000,0.000,0.000)).
Có thể em viết hơi trừu tượng nhưng mong các bác giúp em cái LISP này. Em xin cảm ơn nhiều

Chào moihoclisp
Bạn chạy thử LISP tính ra Xmax, Ymax, Xmin, Ymin của LayOut hiện hành từ đó tính toạ độ trung bình của 2 điểm Max, Min.
(gán toạ độ đó cho biến INSBASE của bản vẽ.)
(defun C:test(/ vl ov ss lst_pt mid)
(defun boundarySS (ss / lst_max lst_min ll maxpt minpt ur)
(vl-load-com)
(setq lst_min (list)
lst_max (list) )
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(vla-GetBoundingBox ent 'minpt 'maxpt)
(setq lst_min (cons (vlax-safearray->list minpt) lst_min)
lst_max (cons (vlax-safearray->list maxpt) lst_max) )
)
(setq ll (list (car (vl-sort (mapcar 'car lst_min) '<))
(car (vl-sort (mapcar 'cadr lst_min) '<))
)
ur (list (last (vl-sort (mapcar 'car lst_max) '<))
(last (vl-sort (mapcar 'cadr lst_max) '<))
)
)
(list ll ur)
)
; ham chinh
(if (setq ss (ssget "_X" (list (cons 410 (getvar "Ctab")))))
(progn
(command "undo" "be")
(setq vl '("osmode" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(0 0))
(setq lst_pt (boundarySS ss)
mid (mapcar '/ (mapcar '+ (car lst_pt) (cadr lst_pt)) '(2.0 2.0))
)
(princ (strcat "\n Point_Min X = " (rtos(car mid)) "; Y = " (rtos(cadr mid))))
(entmake (list '(0 . "POINT")(cons 10 mid)) )
;(setvar "InsBase" mid)
(mapcar 'setvar vl ov) ; reset Sys Vars
(command "undo" "e")(princ)
)
)
)



Mình đang tìm cái lisp cộng, trừ, nhân, chia giữa các phần tử tương ứng của 2 hàng text.
Mình nhớ Bác Hoành đã post nó trong topic này nhưng tìm hoài không ra.
Bạn nào nhớ nó ở khoảng trang bao nhiêu thì nhắc mình với. Chức năng tìm kiếm của diễn đàn với 4 từ khóa trên cũng chịu thua rồi :s_big:

To Thaistreetz
Có phải bạn nói dòng này :
(mapcar '/ (mapcar '+ (car lst_pt) (cadr lst_pt)) '(2.0 2.0))
  • 1

#2687 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 26 August 2009 - 08:36 AM

TUE có thể viết giúp mình được ko?viết dùm mình lisp convert text và Mtext từ mã VNI windows sang unicodevà ngược lại ko vậy?cảm ơn bạn rất nhiều!
  • 0

#2688 conghoan1003

conghoan1003

    biết vẽ point

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

Đã gửi 26 August 2009 - 09:38 AM

Chào Hoan, thiep kiểm tra nhiều lần mà có lỗi gì đâu? khi chọn đối tượng, Hoan nhớ chọn theo kiểu cửa sổ từ phải qua trái, có 5 đối tượng được chọn, gồm 1 pline tự nhiên, 4 line giới hạn. Trong 4 line giới hạn màu vàng, có 2 line cắt qua pline. Điểm cắt này là điểm bắt đầu vẽ đường nạo vét. Sau khi chọn xong nhấn enter, nếu lần đầu khi chạy lisp, lisp sẽ hỏi các thông số. Tiếp tục chọn các mặt cắt khác, khi chọn xong, enter, chọn, enter.... cho đến khi hết mặt cắt, mỏi tay thì ẻnter kết thúc. Còn lisp chọn 1 lần các mặt cắt 1 lúc, Thiep đã viết xong đang test. Hãy đợi đấy nhé.

Mình cũng chẳng hiểu sao lại lỗi ngư thế nữa, mình test (trên cad2007) nhiều lần mà mà vẫn như thế, mặt cắt đầu tiên chạy OK còn các mặt cắt tiếp theo thì không được. Thiệp xem lại giúp mình nhé. Cảm ơn nhiều!
Nó báo như thế này:
Command: AP APPLOAD khd_vbu.lsp successfully loaded.
Command:
Command:
Command: VB Undo Current settings: Auto = On, Control = All, Combine = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: begin
Command: UCS
Current ucs name: *WORLD*
Specify origin of UCS or [Face/NAmed/OBject/Previous/View/World/X/Y/Z/ZAxis]
: W
Command: VB Unknown command "VB". Press F1 for help.
Command: Chon cac curve be mat nao vet:
Select objects: Specify opposite corner: 5 found
Select objects:
Chon goc doc nao vet ben PHAI (mau so): 1
Chon goc doc nao vet ben TRAI (mau so): 1
Chieu sau nao vet: 1
Chon chieu cao chu: 1
Select objects: Specify opposite corner: 5 found
Select objects: bad argument type: lselsetp nil
File mình test bị lối nè: http://www.cadviet.c...es/2/tnct_5.dwg
  • 0
Học học nữa học mãi.
Đúp học lại!

#2689 nguyenkhoadung98

nguyenkhoadung98

    biết vẽ pline

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

Đã gửi 26 August 2009 - 10:10 AM

Không biết Nguyenkhoadung đã đọc bài viết trả lời của Tue_NV cho bạn chưa?
Nó nằm ở đây : Viết Lisp theo yêu cầu - Bài viết số 2597

cảm ơn bạc TUE, mình tìm thấy rồi, rất tuyệt bạn ah , thanks thanks and thanks
  • 0

#2690 tomboy

tomboy

    biết vẽ polygon

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

Đã gửi 26 August 2009 - 10:43 AM

Cảm ơn tomboy đã quan tâm tới mình, nhưng mình vẫn còn một số chưa rõ, bạn giải thích giúp mình nhé
1. Theo như ý bạn (chiều dài cái nhà là 4.50 tương ứng ở thực địa là 9m như vậy tỉ lệ bản vẽ sẽ là 4.5 / 9 = 0.5) thì mình hiểu là vẽ tỷ lệ 1/2
Nên lấy 1/2 = 0.5 và nhập 0.5 vào để tính diện tích đúng không bạn
2. Vậy mình có một mặt bằng nhà (13x8)m = 136m2 vẽ với tỷ lệ 1/200, vậy tỷ lệ nhập vào = 0.02 nhưng kết quả là sai.
Vậy nguyên tắc chung nhất như thế nào để có kết quả là chính xác và là một số thực với bất kỳ tỷ lệ vẽ nào
Cụ thể như: với kích thước nhà 20x5=100m2
Với tỷ lệ vẽ 1/100 = 100m2
1/10 = 100m2
1/50 = 100m2
Và mình nhờ bạn giải thích thêm bạn tính tỷ lệ như thế nào mà ra kết quả như trên (phần màu đỏ phía trên)
Mình vẫn chưa thông, bạn thông cảm cố giúp mình cho trót. Cảm ơn bạn nhiều

Mình sửa lại cho bạn rồi nè: http://www.cadviet.c...les/2/gdt_1.rar
Thông cảm nhé, và các link cũ mình cũng sửa luôn rồi
  • 1

#2691 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 26 August 2009 - 11:06 AM

Mình cũng chẳng hiểu sao lại lỗi ngư thế nữa, mình test (trên cad2007) nhiều lần mà mà vẫn như thế, mặt cắt đầu tiên chạy OK còn các mặt cắt tiếp theo thì không được. Thiệp xem lại giúp mình nhé. Cảm ơn nhiều!
Nó báo như thế này:
Command: AP APPLOAD khd_vbu.lsp successfully loaded.
Command:
Command:
Command: VB Undo Current settings: Auto = On, Control = All, Combine = Yes
Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]
<1>: begin
Command: UCS
Current ucs name: *WORLD*
Specify origin of UCS or [Face/NAmed/OBject/Previous/View/World/X/Y/Z/ZAxis]
: W
Command: VB Unknown command "VB". Press F1 for help.
Command: Chon cac curve be mat nao vet:
Select objects: Specify opposite corner: 5 found
Select objects:
Chon goc doc nao vet ben PHAI (mau so): 1
Chon goc doc nao vet ben TRAI (mau so): 1
Chieu sau nao vet: 1
Chon chieu cao chu: 1
Select objects: Specify opposite corner: 5 found
Select objects: bad argument type: lselsetp nil
File mình test bị lối nè: http://www.cadviet.c...es/2/tnct_5.dwg

Không phải lệnh VB, mà là lệnh VBU. Nhưng Cad đã không hiểu lệnh rồi mà sao vẫn yêu cầu "Chon goc doc nao vet ben PHAI (mau so):"....???
  • 1

#2692 tomboy

tomboy

    biết vẽ polygon

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

Đã gửi 26 August 2009 - 11:23 AM

Cố gắng hoàn thiện trong thời gian sớm nhất có thể nha bạn và chính điều đó có thể giúp ích được cho nhiều người trên diễn đàn đó. Chúc bạn bạn sớm hoàn thành

ok, mình đã sửa lại như nhận xét của bạn Thaistrestz rồi nhé
link đây: http://www.cadviet.c...les/2/tdc_1.rar
  • 0

#2693 HoangSon614

HoangSon614

    biết lệnh properties

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

Đã gửi 26 August 2009 - 11:31 AM

Mình sửa lại cho bạn rồi nè: http://www.cadviet.c...les/2/gdt_1.rar
Thông cảm nhé, và các link cũ mình cũng sửa luôn rồi

Được rồi tomboy à. Cảm ơn bạn đã nhiệt tình. Chúc bạn sức khoẻ và thành công trong công việc
  • 0

#2694 moihoclisp

moihoclisp

    biết zoom

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

Đã gửi 26 August 2009 - 11:36 AM

Cám ơn bác Gia Bach. LISP đó đúng ý của em rồi bác ah. Thanks bác nhiều
  • 0

#2695 HoangSon614

HoangSon614

    biết lệnh properties

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

Đã gửi 26 August 2009 - 11:54 AM

Các bạn giúp mình sửa lại cái lisp chạy Trắc dọc cống .
*Hiện trạng:
Lisp này dùng để vẽ trắc dọc cống
-Sau khi nhập các số liệu thiết kế vào five của Excel sau đó save as chúng lại dưới dạng đuôi .prn
-Từ Autocad R14 AP lisp TDC2005-v9.lsp, nhập lệnh tdc rồi mở five vừa save thi => bve TDOC
(lisp này chạy được khi cad R14 có font ( Vn_vni.shx)
*Sửa chữa:
-Vì lisp này chỉ chạy ổn định trên cad R14 còn các CAD khác thì 1 là chạy không được ,2 là bị lỗi do đó nhờ các bạn trên diễn đàn CADViet chuyển giúp lisp này chạy trên Cad2007 và không phụ thuộc vào font trên .
Nếu lisp này hoàn thiện nó sẽ giúp ích rất nhiều cho các bạn làm bên mảng thoát nước .
-Rất mong được sự giúp đỡ của các anh em trên diễn đàn và sớm nhận được hồi âm.
Thân chào
Đây là five mình đã upload
http://www.cadviet.c...files/2/tdc.zip

Bạn chia sẽ file nhập bằng Excell và hướng dẫn sử dụng lên diễn đàn cho mọi người sử dụng luôn đi bạn
  • 0

#2696 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 26 August 2009 - 01:42 PM

TUE có thể viết giúp mình được ko?viết dùm mình lisp convert text và Mtext từ mã VNI windows sang unicodevà ngược lại ko vậy?cảm ơn bạn rất nhiều!
  • 0

#2697 duytrung

duytrung

    biết pan

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

Đã gửi 26 August 2009 - 01:58 PM

Bạn chia sẽ file nhập bằng Excell và hướng dẫn sử dụng lên diễn đàn cho mọi người sử dụng luôn đi bạn

Trước hết mình rất cảm ơn bạn Thaistreets và bạn Tomboy đã giúp đỡ .bây giờ thì nó đã chạy được trên môi trường Cad còn lại.
Đây là link đầy đủ, còn cách sử dụng thì mình đã nêu ở baì trước rồi.
http://www.cadviet.c...c_4_cad2008.zip
  • 2

#2698 conghoan1003

conghoan1003

    biết vẽ point

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

Đã gửi 26 August 2009 - 05:02 PM

Không phải lệnh VB, mà là lệnh VBU. Nhưng Cad đã không hiểu lệnh rồi mà sao vẫn yêu cầu "Chon goc doc nao vet ben PHAI (mau so):"....???

Cái này mình biết rồi, mình chỉ đổi lệnh lại để cho tiện sử dụng thôi. Mình cũng chẳng hiểu tại sao không biết lệnh mà lại yêu cầu như thế nửa, mà thiệp test trên cad nào vậy?
  • 0
Học học nữa học mãi.
Đúp học lại!

#2699 lich_pro

lich_pro

    Chưa sử dụng CAD

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

Đã gửi 26 August 2009 - 05:45 PM

Mọi người ơi tôi học cad được có vài hôm mà cô giáo đã bắt vẽ các đò vật 3D mình tự chọn để làm bài tập lớn.Tôi định vẽ chiếc quạt điện nhưng chẳng rõ vẽ như thế nào?Ai có bản vẽ đó thì gửi cho tôi với.Nếu có các lệnh vẽ theo từng đoạn thì tốt.Cám ơn nhìu!!
Nếu ai có thì gửi mail cho mình nhé:khinaoemve1989@yahoo.com
  • 0

#2700 Thaistreetz

Thaistreetz

    biết lệnh adcenter

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

Đã gửi 26 August 2009 - 08:54 PM

Mọi người ơi tôi học cad được có vài hôm mà cô giáo đã bắt vẽ các đò vật 3D mình tự chọn để làm bài tập lớn.Tôi định vẽ chiếc quạt điện nhưng chẳng rõ vẽ như thế nào?Ai có bản vẽ đó thì gửi cho tôi với.Nếu có các lệnh vẽ theo từng đoạn thì tốt.Cám ơn nhìu!!
Nếu ai có thì gửi mail cho mình nhé:khinaoemve1989@yahoo.com

=)) vẽ con rubik đi bạn. mới học vẽ cad mà bạn chọn vẽ cái quạt điện thì nộp bài cô giáo cũng phát hoảng đấy, chả dám dạy bạn nữa đâu.
  • 0

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