Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Lisp xuất chiều dài Line ra Text có sẵn và có tiền tố, hậu tố


  • Please log in to reply
26 replies to this topic

#1 ponaparte2003

ponaparte2003

    biết vẽ rectang

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

Đã gửi 26 June 2011 - 01:11 PM

http://www.cadviet.c...les/3/ql2_1.lsp
E có Lisp trên dùng để tính chiều dài của Polyline và pick vào text có sẵn sẽ ra chiều dài của Polyline đó. E muốn nhờ các bác có thể sửa (hoặc có sẵn 1 Lisp nào đó) để khi pick vào text sẵn có nó sẽ ra giá trị chiều dài lẫn tiền tố và hậu tố. Ví dụ chiều dài là 5.20 nó sẽ ra là L=5.20m chẳng hạn. Thank's!
  • 0
Y=acosh(x/a)

#2 pdle

pdle

    biết lệnh mtext

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

Đã gửi 26 June 2011 - 03:10 PM

http://www.cadviet.com/upfiles/3/ql2_1.lsp
E có Lisp trên dùng để tính chiều dài của Polyline và pick vào text có sẵn sẽ ra chiều dài của Polyline đó. E muốn nhờ các bác có thể sửa (hoặc có sẵn 1 Lisp nào đó) để khi pick vào text sẵn có nó sẽ ra giá trị chiều dài lẫn tiền tố và hậu tố. Ví dụ chiều dài là 5.20 nó sẽ ra là L=5.20m chẳng hạn. Thank's!


Của anh đây ạ :
(defun c:cc (/ doituong total dtuong1 tdt dt ktext ktratext ktratext1 ktextcu textdt ktextmoi newcolor oldcolor)
(setq doituong (ssget '((0 . "*POLYLINE"))))
(setq total (sslength doituong))
(setq tdt 0)
(repeat total
(setq total (- total 1))
(setq dtuong1 (cdr (car (entget (ssname doituong total)))))
(command "area" "e" dtuong1)
(setq dt (getvar "Perimeter"))
(setq tdt (+ tdt dt))
)
(setq ktext (car (entsel "chi vµo text cЗn ghi: ")))
(setq ktratext (entget ktext))
(setq ktratext1 (cdr (assoc 0 ktratext)))
(if (= ktratext1 "TEXT")
(progn
(setq ktextcu (assoc 1 ktratext))
(setq textdt (strcat "L= " (rtos (- tdt 0) 2 2) " m"))
(setq ktextmoi (cons 1 textdt))
(setq ktratext (subst ktextmoi ktextcu ktratext))
(entmod ktratext)
(setq color 4)
(setq newcolor (cons 62 color))
(if (assoc 62 ktratext)
(progn
(setq oldcolor (assoc 62 ktratext))
(setq ktratext (subst newcolor oldcolor ktratext))
(entmod ktratext)
)
(entmod (append ktratext (list (cons 62 color))))
)
)
(alert "¤i trкi ¬i, chдn nhЗm rеi, ®г kh«ng ph¶i lµ tetx!")
)
(textpage)
(graphscr)
)

Nhân tiện cho em hỏi là biến nào lưu giữ đơn vị hiện hành của CAD ạ ?
  • 3
Share your knowledge. It is a way to achieve immortality !

***

PS: Nếu bài viết của mình có ích, xin hãy "Bình chọn cho bài viết này" nhé :D

#3 ponaparte2003

ponaparte2003

    biết vẽ rectang

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

Đã gửi 26 June 2011 - 04:27 PM

Của anh đây ạ :
.............
Nhân tiện cho em hỏi là biến nào lưu giữ đơn vị hiện hành của CAD ạ ?

Thank's bác!
  • 0
Y=acosh(x/a)

#4 alpha1810

alpha1810

    biết pan

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

Đã gửi 29 August 2011 - 08:06 AM

Của anh đây ạ :

(defun c:cc (/ doituong total dtuong1 tdt dt ktext ktratext ktratext1 ktextcu textdt ktextmoi newcolor oldcolor)
(setq doituong (ssget '((0 . "*POLYLINE"))))
(setq total (sslength doituong))
(setq tdt 0)
(repeat total
(setq total (- total 1))
(setq dtuong1 (cdr (car (entget (ssname doituong total)))))
(command "area" "e" dtuong1)
(setq dt (getvar "Perimeter"))
(setq tdt (+ tdt dt))
)
(setq ktext (car (entsel "chi vµo text cЗn ghi: ")))
(setq ktratext (entget ktext))
(setq ktratext1 (cdr (assoc 0 ktratext)))
(if (= ktratext1 "TEXT")
(progn
(setq ktextcu (assoc 1 ktratext))
(setq textdt (strcat "L= " (rtos (- tdt 0) 2 2) " m"))
(setq ktextmoi (cons 1 textdt))
(setq ktratext (subst ktextmoi ktextcu ktratext))
(entmod ktratext)
(setq color 4)
(setq newcolor (cons 62 color))
(if (assoc 62 ktratext)
(progn
(setq oldcolor (assoc 62 ktratext))
(setq ktratext (subst newcolor oldcolor ktratext))
(entmod ktratext)
)
(entmod (append ktratext (list (cons 62 color))))
)
)
(alert "¤i trкi ¬i, chдn nhЗm rеi, ®г kh«ng ph¶i lµ tetx!")
)
(textpage)
(graphscr)
)

Nhân tiện cho em hỏi là biến nào lưu giữ đơn vị hiện hành của CAD ạ ?


sao minh dung nó toàn báo lỗi vậy ban:
Select objects: 1 found
1 was filtered out.
; error: bad argument type: lselsetp nil
Command:
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 29 August 2011 - 08:45 AM

sao minh dung nó toàn báo lỗi vậy ban:
Select objects: 1 found
1 was filtered out.
; error: bad argument type: lselsetp nil
Command:

1). Bạn phải chọn đối tượng để tính chiều dài là POLYLINE hoặc LWPOLYLINE, nếu không chương trình sẽ báo lỗi. Nếu bạn muốn chọn cả LINE và SPLINE thì bạn sửa như sau:
Sửa *POLYLINE thành *LINE.
2). Chắc do viết vội nên tác giả không bắt lỗi khi chọn đối tượng tính chiều dài nên mới thế.
Thân thương!
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#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 29 August 2011 - 09:23 AM

1). Bạn phải chọn đối tượng để tính chiều dài là POLYLINE hoặc LWPOLYLINE, nếu không chương trình sẽ báo lỗi. Nếu bạn muốn chọn cả LINE và SPLINE thì bạn sửa như sau:
Sửa *POLYLINE thành *LINE.
2). Chắc do viết vội nên tác giả không bắt lỗi khi chọn đối tượng tính chiều dài nên mới thế.
Thân thương!

Với LINE thì sử dụng dòng này không được
(command "area" "e" dtuong1)
Vì LINE không có diện tích
Và ngoài ý 1 mà bạn DoanVanHa đã nêu trên, bạn alpha1810 phải thay dòng
(command "area" "e" dtuong1)
thành dòng :
(command "LENGTHEN" dtuong1 "")
hoặc : (command "LIST" dtuong1 "")
  • 1

#7 vanchieugtvt

vanchieugtvt

    Chưa sử dụng CAD

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

Đã gửi 12 April 2013 - 09:37 AM

http://www.cadviet.c.../71197_cd_1.lsp Tôi có sưu tầm được 1 líp tính chiều dài này. Giờ muốn xuất kết quả ra text. Mong mọi người viết giùm.


  • 0

#8 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 12 April 2013 - 10:43 AM

http://www.cadviet.c.../71197_cd_1.lsp Tôi có sưu tầm được 1 líp tính chiều dài này. Giờ muốn xuất kết quả ra text. Mong mọi người viết giùm.

Hề hề hề,

Lisp này đã xuất kết quả ra text rồi đó. Có điều cái text này hiển thị trên dòng command của CAD mà thôi.

Vậy bạn muốn xuất ra text thế nào thì phải nói cho rõ chứ, đánh đố người sửa lisp như vầy thì thật là ..... tiết kiệm.


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

#9 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 07 October 2013 - 04:47 PM

Nhờ Bạn giúp đo và ghi chiểu dài của từng cạnh khi chọn tất cả các cạnh một lần, theo hướng của cạnh

http://www.cadviet.c...i_chieu_dai.dwg

Cám ơn


  • 0

#10 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 07 October 2013 - 05:52 PM

Nhờ Bạn giúp đo và ghi chiểu dài của từng cạnh khi chọn tất cả các cạnh một lần, theo hướng của cạnh

http://www.cadviet.c...i_chieu_dai.dwg

Cám ơn

Hề hề hề,'

Dòm thử cái ni coi đã ưng ý chưa hè???

http://www.cadviet.c...polyline/page-2


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

#11 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 07 October 2013 - 07:19 PM

Quá thủ công bạn ơi !!! Đo và thể hiện nhiều đường thì le le luoi.....


  • 0

#12 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 07 October 2013 - 07:41 PM

Quá thủ công bạn ơi !!! Đo và thể hiện nhiều đường thì le le luoi.....

Hề hề hề,

Thủ công hay thủ lợn gì thì ít nhất cũng cần biết là nó có đúng cái ý của bạn hay không??? Nếu không thì cũng cần biết cái ý của bạn nó oai như thế nào thì mới nói chuyện làm được hay không làm được bạn ơi.

Cái kiểu post bài khơi khơi chỏng lỏn như bạn rồi ngồi đợi kết quả thì xem ra cũng chả hơn cái thủ công ni bao nhiêu đâu.

Cái thủ công ni có được là cũng do có người yêu cầu với nội dung đo và ghi kích thước cho polyline đấy. Và chí ít nó cũng không đến nỗi bỏ đi đâu bạn ạ.

Nên nhớ là cái hình bạn post chả phải là polyline đâu nhé. Cái mà bạn gọi là chiều của cạnh ấy sẽ được xác định kiểu chi, chiều nào xuôi, chiều nào ngược???

Nếu không trả lời được những điều tối thiểu cần biết như vầy thì cái lisp bạn cần có nhẽ cũng còn phải đợi lâu đấy.

Hy vọng bạn có đủ kiên nhẫn để ngồi chớ ....... lisp rụng.


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

#13 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 07 October 2013 - 08:12 PM

Quá thủ công bạn ơi !!! Đo và thể hiện nhiều đường thì le le luoi.....

 

 

=> K thích. Sếp mình nói mình cũng nghỉ việc chứ đừng nói người dưng ^^


  • 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


#14 xuanduc1031

xuanduc1031

    biết zoom

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

Đã gửi 12 June 2014 - 12:08 PM

ai có lisp thêm tiền tố hậu tố thêm vào text thì chỉ giúp với

mình đang cần 

1324.6 thành (1324.6)

234.5 thành (234.5)

.....

nói chung là thêm ngoặc trước và sau text


  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 12 June 2014 - 12:17 PM

Có đây! Của 1 chú ngoại quốc, tải về nhưng chưa test, bạn thử xem.

http://www.cadviet.c...suffix_text.lsp


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#16 rancua1501

rancua1501

    biết zoom

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

Đã gửi 22 July 2014 - 09:29 AM

xin các cao thủ viết lisp này giùm e

e muốn viết một lisp để thống kê kích thước, chiều sâu và chiều dài đóng cừ của một cái mương ,như mô tả

comand: tke

chọn tỉ lệ bản vẽ:

chọn chiều cao chữ:

chọn điểm để đặt bảng thống kê:

đo chiều dài mương (dùng lệnh):

đo chiều rộng mương ( dùng lệnh):

Nhập chiều sâu mương:

Nhập chiều dài đóng cừ:

enter

 

:(

  • 0

#17 tamtrong.kt

tamtrong.kt

    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 December 2014 - 11:48 AM

Em cần 1 đoạn lisp kê ra các thông số chiều dài, chiêu rộng và chiều cao của một hình hộp chữ nhật. Mong cái Bác Pro giúp Em!!!

Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!

 

 
Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!
 
Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!

 

 
Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!
 
Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!

 

 
Em cần 1 đoạn lisp kê ra các thông số chiều dài các cạnh của một hình hộp chữ nhật. mong các bác pro giup Em với!!!!

  • 0

#18 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 01 October 2015 - 09:54 PM

Của anh đây ạ :

(defun c:cc (/ doituong total dtuong1 tdt dt ktext ktratext ktratext1 ktextcu textdt ktextmoi newcolor oldcolor)
   (setq doituong (ssget '((0 . "*POLYLINE"))))
   (setq total (sslength doituong))
   (setq tdt 0)
   (repeat total
         (setq total (- total 1))
         (setq dtuong1 (cdr (car (entget (ssname doituong total)))))
         (command "area" "e" dtuong1)
         (setq dt (getvar "Perimeter"))
         (setq tdt (+ tdt dt))
   )
   (setq ktext (car (entsel "chi vµo text cЗn ghi: ")))
   (setq ktratext (entget ktext))
   (setq ktratext1 (cdr (assoc 0 ktratext)))
   (if (= ktratext1 "TEXT")
       (progn
               (setq ktextcu (assoc 1 ktratext))
               (setq textdt (strcat "L= " (rtos (- tdt 0) 2 2) " m"))
               (setq ktextmoi (cons 1 textdt))
               (setq ktratext (subst ktextmoi ktextcu ktratext))
               (entmod ktratext)
               (setq color 4)
               (setq newcolor (cons 62 color))
                  (if (assoc 62 ktratext)
                      (progn
                           (setq oldcolor (assoc 62 ktratext))
                           (setq ktratext (subst newcolor oldcolor ktratext))
                           (entmod ktratext)
                      )
                      (entmod (append ktratext (list (cons 62 color))))
                   )
        )
        (alert "¤i trкi ¬i, chдn nhЗm rеi, ®г kh«ng ph¶i lµ tetx!")
   )
  (textpage)
  (graphscr)
)

Các bạn ai biết thì chỉnh giúp mình sao cho lsp khi xuất ra text luôn là 1 số chẳn(không có .00 ở phía sau). Thanks các bạn


  • -3

#19 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 02 October 2015 - 07:59 AM

Các bạn ai biết thì chỉnh giúp mình sao cho lsp khi xuất ra text luôn là 1 số chẳn(không có .00 ở phía sau). Thanks các bạn

 

Anh sửa đoạn này (rtos (- tdt 0) 2 2) --> (rtos (- tdt 0) 2 0) là oki!

Chúc thành công !


  • 1

#20 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 02 October 2015 - 06:59 PM

Anh sửa đoạn này (rtos (- tdt 0) 2 2) --> (rtos (- tdt 0) 2 0) là oki!

Chúc thành công !

ok. Thanks bạn nha!


  • 0