Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Nhờ Viết Lisp Tạo Block Attribute Từ Text


  • Please log in to reply
10 replies to this topic

#1 vietanh2108

vietanh2108

    biết zoom

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

Đã gửi 22 February 2017 - 07:43 PM

Thưa các bác, kiểu là em có sẵn 1 block CODE_COL vs 4 attribute

-Tên_cột

-Cao_đáy

-Cao_đỉnh

-Trừ_cao

và mặt bằng có text tên cột C1, C2... Cn. Em muốn chọn tất cả các text tên cọc và chạy LISP để biến tất cả các text tên cột đó thành block CODE_COL vs tên cột được đưa vào attribute Tên_cột... bác nào đi qua giúp dùm em với, em xin cám ơn trc!


  • 0

#2 Bee

Bee

    biết dimradius

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

Đã gửi 22 February 2017 - 09:56 PM

Thưa các bác, kiểu là em có sẵn 1 block CODE_COL vs 4 attribute

-Tên_cột

-Cao_đáy

-Cao_đỉnh

-Trừ_cao

và mặt bằng có text tên cột C1, C2... Cn. Em muốn chọn tất cả các text tên cọc và chạy LISP để biến tất cả các text tên cột đó thành block CODE_COL vs tên cột được đưa vào attribute Tên_cột... bác nào đi qua giúp dùm em với, em xin cám ơn trc!

Nghịch tí nào. Lisp yêu cầu là đã có block CODE_COL trong bản vẽ nhé. ^_^

(defun c:test (/ osm ss n value ins)
  (setq osm (getvar 'osmode))
  (if (setq ss (ssget '((0 . "TEXT"))))
    (progn
      (setq n 0)
      (repeat (sslength ss)
	(setq value (cdr (assoc 1 (entget (ssname ss n)))))
	(setq ins (cdr (assoc 10 (entget (ssname ss n)))))
	(mapcar 'setvar (mapcar 'vl-list->string (list '(65 84 84 68 73 65) '(79 83 77 79 68 69))) '(0 0))
	(command "insert" "CODE_COL" ins 1 1 0 value "" "" "")
	(entdel (ssname ss n))
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon text.")
    );if
  (setvar 'osmode osm)
  (princ)
  )

  • 1

#3 vietanh2108

vietanh2108

    biết zoom

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

Đã gửi 23 February 2017 - 08:43 AM

Hì hì hì, Cám ơn bác Bee nhiều nhiều, em tìm nát google mà không có chút manh mốt nào, bác code giúp em vài dòng là xong ngay :D Xin đa tạ, đa tạ!!!!!


  • 0

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 23 February 2017 - 11:07 AM

Thay đổi biến ATTDIA mà không trả lại cho người ta kìa bác ^^
  • 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


#5 Bee

Bee

    biết dimradius

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

Đã gửi 23 February 2017 - 01:55 PM

Thay đổi biến ATTDIA mà không trả lại cho người ta kìa bác ^^

He he nó không ảnh hưởng gì nên cứ để vậy thoai ^_^


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 February 2017 - 02:41 PM

ATTDIA + ATTREQ ảnh hưởng đến user mà?


  • 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.


#7 Bee

Bee

    biết dimradius

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

Đã gửi 23 February 2017 - 06:33 PM

ATTDIA + ATTREQ ảnh hưởng đến user mà?

 

ATTDIA tắt bảng cho nhập dòng lênh thôi mà bác. Em thấy có không trả lại biến nó vẫn hiện ở command promp nên ko ảnh hưởng nhiều. ^_^


  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 February 2017 - 08:49 PM

ATTDIA tắt bảng cho nhập dòng lênh thôi mà bác. Em thấy có không trả lại biến nó vẫn hiện ở command promp nên ko ảnh hưởng nhiều. ^_^

Cả 2 biến kết hợp. Nó hoặc hiện prompt hoặc hiện dialog khi insert block_att. Tôi đã từng bị lỗi 1 lần về chúng rồi.


  • 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.


#9 Bee

Bee

    biết dimradius

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

Đã gửi 23 February 2017 - 09:44 PM

Cả 2 biến kết hợp. Nó hoặc hiện prompt hoặc hiện dialog khi insert block_att. Tôi đã từng bị lỗi 1 lần về chúng rồi.

Ah cái thằng ATTREQ set to 1 chứ để 0 nó không chèn value mà chèn defaults. Ok thanks bác DVH. ^_^ Ồ mà tên bác viết tắt như Đàm Vĩnh Hưng nhỉ ^_^ Ca sĩ nổi tiếng. :)


  • 1

#10 vietanh2108

vietanh2108

    biết zoom

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

Đã gửi 24 February 2017 - 11:26 AM

Cám ơn các bác đã góp ý cho em học hỏi đc thêm nhiều điều, em có một mong muốn cải tiến nho nhỏ cái líp trên nữa.. giúp em viết thêm 2 dòng này với

- Lấy màu của Text đối tượng để đưa vào màu cho block vừa insert vào.

- Nếu ko có block "CODE_COL" trong bản vẽ thì báo về "Chua khoi tao block CODE_COL".

Em xin cám ơn!!!!


  • 0

#11 Bee

Bee

    biết dimradius

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

Đã gửi 24 February 2017 - 07:52 PM

Cám ơn các bác đã góp ý cho em học hỏi đc thêm nhiều điều, em có một mong muốn cải tiến nho nhỏ cái líp trên nữa.. giúp em viết thêm 2 dòng này với

- Lấy màu của Text đối tượng để đưa vào màu cho block vừa insert vào.

- Nếu ko có block "CODE_COL" trong bản vẽ thì báo về "Chua khoi tao block CODE_COL".

Em xin cám ơn!!!!

1. Bạn nên post dwg ví dụ thì làm nhanh hơn rất nhiều.

2. Để thay đổi màu att có nhiều cách: command BATTMAN hoặc BEDIT xong dùng ATTSYNS là thay hết màu......


  • 1