Chuyển đến nội dung
Diễn đàn CADViet
ponaparte2003

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

Các bài được khuyến nghị

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!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 ạ ?

  • Vote tăng 4

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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!

  • Like 1
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 "")

  • Like 1
  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

http://www.cadviet.com/upfiles/3/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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.com/upfiles/3/114381_do_va_ghi_chieu_dai.dwg

Cám ơn

Hề hề hề,'

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

http://www.cadviet.com/forum/topic/11610-do-duong-polyline/page-2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 ^^

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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


 


:(

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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!!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

  • Vote giảm 3

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 !

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chao bac Kieu tan !

Em nhờ bác viết hộ em 1 lisp suất ra text với nội dung như sau:

- Pick điểm 1 , 

- Pick điểm 2 

Xuất ra text độ dài giữa 2 điểm ghi L = ...M  tại giữa 2 điểm vừa pick. Lưu ý  là 2 điểm pick đó bất kỳ xoay góc bao nhiêu đi mữa thì Text xuất ra sẽ xoay theo 2 điểm đó và Text chẵn VD: L=10M không suất ra L=10.2M

Mong sớm nhận được bài của bác

  • Vote giảm 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 nhân hệ số 1.1 lẫn tiền tố và hậu tố. Ví dụ chiều dài là 5.20 nó sẽ ra là L=5.72m chẳng hạn. Thank's!

  • Vote giảm 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

chào các bác

hiện tại em cũng có nhu cầu như của bác này, nhưng kết quả làm tròn đến 2 số phần thập phân.

bác nào có có thể share cho em đc ko, hay bác nào viết đc tính phí thì cũng liên hệ cho em nhé

các bác nào tính phí thì gọi vào số cầm tay cho em:09722741 bôn năm

cảm ơn các bác đọc tin

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×