Đến nội dung


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

Viết lisp theo yêu cầu [phần 2]


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

#2361 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 25 October 2010 - 08:58 PM

- Mình muốn nhờ mọi người viết cho lisp điền giá trị đo được là diện tích (được pick chọn từ hatch or poline khép kín), chiều dài (được pick chọn từ pline, line vào block thuộc tính đã được lập sẵn.
- Cụ thể cấu trúc lisp như sau :
+ Tên lệnh : DTCD
+ Chọn vùng diện tích
+ Chọn đoạn thẳng
+ Chọn block cần điền ( block có tên BG đã đc lập sẵn)
- Chú ý : phải chọn diện tích trước vì thứ tự điền giá trị trong block thuộc tính mình đã lập là để diện tích trước xong đến chiều dài.
- Anh em xem giùm nhé,có chỗ nào chưa rõ ý của mình thì để mình nói thêm dau nhé.
- Link file cad kèm theo: http://www.cadviet.c.../cadvietcom.dwg
- Cám ơn đã quan tâm .

Bạn hãy gửi lại file nhé, file đã gửi không mở được.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2362 bachngoctung

bachngoctung

    biết lệnh copy

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

Đã gửi 26 October 2010 - 12:40 AM

Bạn hãy gửi lại file nhé, file đã gửi không mở được.

- Cám ơn ban phamthanhbinh đã quan tâm file vừa download lại về vẫn mở dc bạn à. Mình dùng cad 2007, để thuận tiện mình up lại file đó lên ( đã chuyển sang cad 2004). Bình và a em giúp mình nhé
- http://www.cadviet.c...advietcom_1.dwg
  • 0

#2363 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 26 October 2010 - 02:01 AM

- Cám ơn ban phamthanhbinh đã quan tâm file vừa download lại về vẫn mở dc bạn à. Mình dùng cad 2007, để thuận tiện mình up lại file đó lên ( đã chuyển sang cad 2004). Bình và a em giúp mình nhé
- http://www.cadviet.c...advietcom_1.dwg

Drawing file is not valid
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#2364 innuzasha

innuzasha

    Chưa sử dụng CAD

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

Đã gửi 26 October 2010 - 09:14 AM

các bác cao thủ ơi viết giùm em cái list thống kê bản vẽ cho khung tên này với . em đang rất rất cần. bớt chút thời gian viết giùm em nhe . chân thành cảm ơn . mong co tin sơm nhât .thanks các bác rất nhìu nhìu http://www.cadviet.c...khung_ten_4.dwg
  • 0

#2365 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

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

Đã gửi 26 October 2010 - 09:56 AM

Hề hề hề,
Nếu có thể bác cho mình ngó cái lisp bác dùng để tạo boundary với. Mình loay hoay chưa ngộ ra cái đường lối chi cả. Phương án của bác Thiếp mình cũng đã có thấy xong giờ tìm hoài chửa ra nên không rõ có ứng dụng được vào trường hợp của bác hay không???
Trong bản vẽ bác post lên mình thấy có nhẽ có thể cải sửa cái việc tạo boundary của bác vì thực tế trên đó mình thấy còn khá nhiều đường polyline hở trùng với các boundary. Do vậy mình phải dùng phép chọ chỉ lấy các polyline kín để đỡ rối bác ạ.
Việc mình thấy khá hay là giải quyết trường hợp có nhiều boundary lồng nhau tạo thêm các đảo cấp hai, cấp ba, hay cấp 4 ..... nữa. Vì thực tế không phải hiếm các trường hợp này, nhất là với mấy cái vùng sông nước mênh mông như miền Nam này. Tuy nhiên nghĩ là vậy nhưng còn chửa tìm ra thuật toán sao cho hợp lý nhất. Rất mong các bác góp thêm ý kiến để có thể giải quyết tận gốc vấn đề này.
Hề hề hề.....

Em dùng lệnh trong Hatch(Em kích vào đối tượng Hatch và sử dùng lệnh Recreateboundary ) để tạo ra đường bo sau đó em dùng lisp nối các đường line lại với nhau thôi.Em kích vào đối tượng Hatch và sử dùng lệnh Recreateboundary.
  • 1

#2366 phongbk

phongbk

    biết pan

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

Đã gửi 26 October 2010 - 10:53 AM

Bạn ơi, cho mình hỏi có lisp nào tính tổng độ dài của nhiều đoạn thẳng mà mình chỉ định được ko ???
Nếu có thì cho mình xin
Hiện mình đang rất cần :lol:
Cảm ơn nhiều :lol: :lol: :cheers:
  • 0

#2367 w1nDream

w1nDream

    biết lệnh ddedit

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

Đã gửi 26 October 2010 - 11:14 AM

Bạn ơi, cho mình hỏi có lisp nào tính tổng độ dài của nhiều đoạn thẳng mà mình chỉ định được ko ???
Nếu có thì cho mình xin
Cảm ơn rất nhiều :lol: :lol: :lol:


Lần sau hãy chịu khó tìm kiếm trước khi yêu cầu bạn ơi.Chứ cứ yêu cầu toàn những thứ đã có thì các bác trên diễn đàn cũng nản khi fải đi tìm lại hay giải thích cho bạn.Sau đây là 1 Link ví dụ.Bạn mà chịu khó ngồi tìm kiếm chắc chắn sẽ tìm thấy nhiều hơn những jì mong đợi đó.Chúc vui.

http://www.cadviet.c...?showtopic=8438
  • 2
__Tâm tựa lưu thủY__
Vi nhân nan

#2368 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 October 2010 - 12:12 PM

- Cám ơn ban phamthanhbinh đã quan tâm file vừa download lại về vẫn mở dc bạn à. Mình dùng cad 2007, để thuận tiện mình up lại file đó lên ( đã chuyển sang cad 2004). Bình và a em giúp mình nhé
- http://www.cadviet.c...advietcom_1.dwg

Invalid group code.
Hề hề hề, bó tay.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2369 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 October 2010 - 01:54 PM

các bác cao thủ ơi viết giùm em cái list thống kê bản vẽ cho khung tên này với . em đang rất rất cần. bớt chút thời gian viết giùm em nhe . chân thành cảm ơn . mong co tin sơm nhât .thanks các bác rất nhìu nhìu http://www.cadviet.c...khung_ten_4.dwg

Chào bạn innuzasha,
Có phải bạn cần cái này không???
Lần sau nên post rõ ràng nội dung cái bạn cần nhé, lisp này là mình tự phỏng đoán mà viết nên có thể không giống cái bạn cần. Hãy tự trách mình chứ đừng trách cái lisp bạn nhé. Hề hề hề....

(defun c:tkbv ( )
(setq tk (getstring t "/n Nhap ten block khung ten: "))
(if tk
(setq sbv (ssget "x" (list (cons 0 "insert") (cons 2 tk))))
)
(if sbv
(setq n (sslength sbv))
(alert "Khong co ban ve dung khung ten ban chon"
)
(alert (strcat "So ban ve su dung khung ten " tk " la " (rtos n 2 0)))
)

Chúc bạn vui, nếu cần bổ sung gì thì post lên nhé. 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.

#2370 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

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

Đã gửi 26 October 2010 - 03:05 PM

Chào bạn innuzasha,
Có phải bạn cần cái này không???
Lần sau nên post rõ ràng nội dung cái bạn cần nhé, lisp này là mình tự phỏng đoán mà viết nên có thể không giống cái bạn cần. Hãy tự trách mình chứ đừng trách cái lisp bạn nhé. Hề hề hề....


(defun c:tkbv ( )
(setq tk (getstring t "/n Nhap ten block khung ten: "))
(if tk
(setq sbv (ssget "x" (list (cons 0 "insert") (cons 2 tk))))
)
(if sbv
(setq n (sslength sbv))
(alert "Khong co ban ve dung khung ten ban chon"
)
(alert (strcat "So ban ve su dung khung ten " tk " la " (rtos n 2 0)))
)

Chúc bạn vui, nếu cần bổ sung gì thì post lên nhé. Hề hề hề.

Bác bình xem lại hộ với.lisp ko sử dụng được bác ah
  • 0

#2371 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 October 2010 - 03:20 PM

Bác bình xem lại hộ với.lisp ko sử dụng được bác ah

Hề hề hề,
Nó báo lỗi gì hở bác,
Mình đã kiểm tra trên file của bạn gì gì đó có cái block khung tên khá oái oăm mà nó vẫn chạy phe phé mà. Bác cần kiểm tra trước cái tên block khung tên của bác kẻo nó nhận nhằng thì khổ bác ạ.
Để lấy tên cho chuẩn bác cứ xài thằng (setq tk (cdr (assoc 2 (entget (car (entsel)))))) là nó sẽ đúng bác ạ. Lúc lisp hỏi bác chọn vô cái block khung tên là nó chuẩn ngay.
Sở dĩ mình để lisp yêu cầu phải nhập tên khung bản vẽ, ấy là vì bạn gì gì đó đưa ra cái tên block hơi oái oăm nên mình muốn để xem bạn đó sẽ nhập tên block kiểu chi mà thôi. Mình thì mình chơi kiểu quét chọn rồi copy chứ không nhập từ bàn phím được. Hề hề hề.....
Bác xem nó nè
http://www.cadviet.c...files/3/mh1.jpg
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#2372 tamkt

tamkt

    biết vẽ ellipse

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

Đã gửi 26 October 2010 - 09:09 PM

Bạn cứ "gáy" anh em. Mình sẽ giúp bạn. Vấn đề này cũng không khó lắm mình nghĩ bạn cũng làm được nên không động đến.

Hehe, anh Tú vui tính quá, quả thực là em đang mò lisp, mà viết hoài không xong, nên nhờ mấy anh trên diễn đàn giúp, để khắc phục đó mà, hihi...
  • 0

#2373 tamkt

tamkt

    biết vẽ ellipse

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

Đã gửi 26 October 2010 - 09:12 PM

Bạn ơi, cho mình hỏi có lisp nào tính tổng độ dài của nhiều đoạn thẳng mà mình chỉ định được ko ???
Nếu có thì cho mình xin
Hiện mình đang rất cần :lol:
Cảm ơn nhiều :lol: :lol: :cheers:


Lisp này phải không bạn, trên diễn đán Cad viet có đó bạn:

;;;--- ADDLEN.lsp - Total lengths of objects.
;;; Polylines, LWPolylines, Splines, Arcs, Circles, Lines, and Ellipse
;;;
;;;
;;;
;;;--- Copyright 2005 by JefferyPSanders.com
;;; All rights reserved.
;;;
;;;
;;;
;;;--- Created on 11/25/05
;;;


(defun c:AD()

(setvar "cmdecho" 0)

;;;--- Function to get the length of an ARC entity
(defun getArc(en)
(command "lengthen" en "")
(getvar "perimeter")
)

;;;--- Function to get the length of a LINE entity
(defun getLine(en)
(setq enlist(entget en))
(distance (cdr(assoc 10 enlist)) (cdr(assoc 11 enlist)))
)

;;;--- Function to get the length of a POLY, CIRCLE, SPLINE, OR ELLIPSE
(defun getPoly(en)
(command "area" "Object" en)
(getvar "perimeter")
)

;;;--- Main application

;;;--- Let the user select objects
(if(setq eset(ssget))
(progn

;;;--- Set up a variable to hold the length
(setq totalLen 0)

;;;--- Set up a counter
(setq cntr 0)

;;;--- Cycle through each entity in the selection set
(while(< cntr (sslength eset))

;;;--- Get the first entity's name
(setq en(ssname eset cntr))

;;;--- Get the DXF group codes
(setq enlist(entget en))

;;;--- Get the type of entity
(setq enType(cdr(assoc 0 enlist)))

;;;--- Get the length based on entity type
(cond
((= enType "ARC" )(setq len(getArc en)))
((= enType "CIRCLE" )(setq len(getPoly en)))
((= enType "ELLIPSE" )(setq len(getPoly en)))
((= enType "LINE" )(setq len(getLine en)))
((= enType "LWPOLYLINE")(setq len(getPoly en)))
((= enType "POLYLINE" )(setq len(getPoly en)))
((= enType "SPLINE" )(setq len(getPoly en)))
(T (setq len 0.0))
)

;;;--- Format the entity type to be 12 characters long
(while(< (strlen enType) 12)(setq enType(strcat enType " ")))

;;;--- Inform the user of progress
(princ "\n Found ")
(princ enType)
(princ " with a length of: ")
(princ (rtos len))

;;;--- Total the length
(setq totalLen(+ totalLen len))


;;;--- Increment the counter to get the next entity
(setq cntr (+ cntr 1))
)
)
)

(setvar "cmdecho" 1)

;;;--- Inform the user of the results
(alert (strcat "\n Found " (itoa cntr) " entitie(s) with a Total Length of " (rtos totalLen)))

;;;--- Suppress the last echo for a clean exit
(princ)
)

  • 0

#2374 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 27 October 2010 - 10:58 AM

Mấy hôm nay vẽ thép gần 50 bản, mình phải liên tục chuyển số liệu từ Excel sang Cad : vào edit - paste special - autocad entities --- lặp lại các bước trên cả trăm lần đuối quá, bạn nào giúp mình viết 1 lisp thực hiện các bước trên chỉ bằng 1 lệnh được k, mình cám ơn rất nhiều :lol:
  • 0

#2375 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 27 October 2010 - 10:59 AM

Mấy hôm nay vẽ thép gần 50 bản, mình phải liên tục chuyển số liệu từ Excel sang Cad : vào edit - paste special - autocad entities --- lặp lại các bước trên cả trăm lần đuối quá, bạn nào giúp mình viết 1 lisp thực hiện các bước trên chỉ bằng 1 lệnh được k, mình cám ơn rất nhiều :lol:

Bạn up file mẫu lên đi (ghi rõ đối tượng gốc và kết quả)
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#2376 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 27 October 2010 - 12:21 PM

File excel (số liệu ở dạng table): http://www.mediafire...uzzbncz08j6hief
Xuất sang file cad (xem như là file trắng) thì các text ở dạng DTEXT.

---
Thực ra mình chỉ cần 1 lệnh tắt thay cho các bước "Edit - Paste special - Autocad Entities" thôi (còn nguồn và kết quả k quan trọng)
  • 0

#2377 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 27 October 2010 - 08:47 PM

Em xin hỏi cách viết text bằng tiếng việt.
- Khi muốn viết một dòng text có nội dung : "Chào cad việt. Tôi là học hoài vẫn dốt" chẳng hạn.
Hình đã gửi
Tôi dùng hàm (entmake (list (cons 0 "TEXT") (cons 1 "...").
Nếu muốn viết text trên với font Unicode, VNI, TCVN3, Vietwarex thì nội dung ... sẽ khác nhau.
Hình đã gửi
Trường hợp tương tự khi em muốn viết nội dung tiếng việt cho hộp thoại ứng với các font tuơng ứng cũng vậy.
Để tạo ra kết quả này em làm theo cách viết text trong cad với nội dung cần và với style có font chữ cần. Sau đó tìm max DXF 1 của text.
1. Nếu diễn đàn đã có bài viết hay topic nào liên quan mong các anh chỉ giúp link (em thử tìm mà không thấy).
2. Có cách nào nhanh để lấy các nội dung "..." này.
3. Quy luật tạo ra các nội dung này là như thế nào.
4. Em yêu cầu 1 lisp convert text sang nội dung ... của nó.
Đầu vào và đầu ra như sau :
Hình đã gửi
Khi nhập text dầu vào nếu có thể thì mình quy định luôn nhập bằng unicode hoặc là luôn nhập bằng TCVN3.
Còn text kết quả thì tuỳ thuộc là lựa chọn ở popup_list .

Đây là file đính kèm các anh em ghi nội dung yêu cầu. http://www.cadviet.c.../tieng_viet.dwg
  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#2378 ceddtu

ceddtu

    biết vẽ spline

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

Đã gửi 27 October 2010 - 10:18 PM

Xin chào mọi người, mình có một vấn dề cần mọi người giúp đỡ: mình cần tách 1 đoạn text gồm nhiều từ thành nhiều đoạn nhỏ, ví dụ mình có 1 câu viết bằng Dtext : "Dien dan cadviet rất hữu ích" Giờ mình muốn chia câu đó thành 3 câu riêng biệt là " Dien dan" ; "cadviet" ; "rất hữu ích"
Mọi người có cách nào giúp mình với,vì mình cần tách câu với một khối lượng khổng lồ, cứ copy rồi edit chắc mình chết mất. Rất cám ơn mọi người
  • 0
Đời vắng mẹ hiền không phụ nữ.
Anh hùng thi sĩ hỏi còn đâu !

#2379 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 27 October 2010 - 10:28 PM

Xin chào mọi người, mình có một vấn dề cần mọi người giúp đỡ: mình cần tách 1 đoạn text gồm nhiều từ thành nhiều đoạn nhỏ, ví dụ mình có 1 câu viết bằng Dtext : "Dien dan cadviet rất hữu ích" Giờ mình muốn chia câu đó thành 3 câu riêng biệt là " Dien dan" ; "cadviet" ; "rất hữu ích"
Mọi người có cách nào giúp mình với,vì mình cần tách câu với một khối lượng khổng lồ, cứ copy rồi edit chắc mình chết mất. Rất cám ơn mọi người

Quy luật như nào?
  • 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


#2380 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 27 October 2010 - 11:23 PM

Em xin hỏi cách viết text bằng tiếng việt.
- Khi muốn viết một dòng text có nội dung : "Chào cad việt. Tôi là học hoài vẫn dốt" chẳng hạn.
Hình đã gửi
Tôi dùng hàm (entmake (list (cons 0 "TEXT") (cons 1 "...").
Nếu muốn viết text trên với font Unicode, VNI, TCVN3, Vietwarex thì nội dung ... sẽ khác nhau.
Hình đã gửi
Trường hợp tương tự khi em muốn viết nội dung tiếng việt cho hộp thoại ứng với các font tuơng ứng cũng vậy.
Để tạo ra kết quả này em làm theo cách viết text trong cad với nội dung cần và với style có font chữ cần. Sau đó tìm max DXF 1 của text.
1. Nếu diễn đàn đã có bài viết hay topic nào liên quan mong các anh chỉ giúp link (em thử tìm mà không thấy).
2. Có cách nào nhanh để lấy các nội dung "..." này.
3. Quy luật tạo ra các nội dung này là như thế nào.
4. Em yêu cầu 1 lisp convert text sang nội dung ... của nó.
Đầu vào và đầu ra như sau :
Hình đã gửi
Khi nhập text dầu vào nếu có thể thì mình quy định luôn nhập bằng unicode hoặc là luôn nhập bằng TCVN3.
Còn text kết quả thì tuỳ thuộc là lựa chọn ở popup_list .

Đây là file đính kèm các anh em ghi nội dung yêu cầu. http://www.cadviet.c.../tieng_viet.dwg

Hề hề hề,
Chưa hiễu yêu cầu của bạn,
Nếu bạn muốn dùng lisp thì khổ lắm lisp chửa có hỗ trợ viết text tiếng Việt
Còn bạn muốn vẽ chữ trên bản vẽ thì bạn đã làm khá tốt đó thôi.

Trong các mã DXF của text, Có mã DXF 7 là để xác định cái Style của text . Bạn có thể tạo trước các style theo tiếng việt của bạn rồi khi tạo text bạn thêm thằng (cons 7 "Cái style bạn khoái") vào. Khi đó lưu ý rằng bạn phải nhập nội dung text theo đúng cái kiểu gõ mà bạn dùng trong style của bạn nó mới cho được hiển thị tiếng Việt bạn nhé. Dưng mà trong code thì cái text ấy nó chả giống ai bạn cũng hổng được phàn nàn đâu đấy. Hề hề hề.

Chúc bạn chóng giỏi hỉ....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.