Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
vetgo

[Nhờ chỉnh sửa] Lisp xuất block ATTRIBUTE chuyên ngành

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

vetgo    17

Tình hình là em có 1 cái Lisp chuyên ngành nhưng giờ muốn chỉnh sửa cho phù hợp với yêu cầu (chỉnh thông số rectangle trong block Attribute) nhưng không thể nào mọ ra được (e biết lơ mơ về Lisp) vì vậy e post lên 4 room nhờ các cao thủ giúp đỡ. Cái Lisp này nó dài ngoằ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
quansla    232

   

 

Hic, mình không thấy chỗ up file lên, ngày trước giao diện cũ còn up lên được, giao diện mới này không thấy đâu, mà của mình pải up cả file cad lên thì mới nói rõ cụ thể được! Bác nào giúp em cho e xin cái d/c email e send vào. Thank's!

{thử nghiệm}http://www.cadviet.com/upfiles/3/101306_cat_doi_tuong.lsp{không tải}

vậy là xong

Video hướng dẫn up file lên cadviet.com, chú ý kiểu file phải phù hợp với kiểu file mà forum hỗ trợ upload; nếu khó khăn có thể đổi tên file về .txt, ... hoặc nén lại về file .rar .. là được

youtube]
  • 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
vetgo    17

Em xem lại rồi, hóa ra là công ty em chặn upload, Dropbox không sử dụng được. Vậy em xin hỏi xem các bác kiểm tra giúp em xem đoạn code sau có phải vẽ 1 Block Hình chữ nhật có kích thước Rộng x Dài là 2x12 không, điểm Base của Block là góc trên cùng bên trái? Và nếu là đúng thì chỉnh giúp em về kích thước 2x8 hoặc 2x8.5. Em cảm ơn trước!

 

;;;; *************** *******************

;;;; Prepare function when start program

(defun d:startlay (/ f text)

(if d:pline

(princ)

(progn

(setq dsve (list 69 114 114 111 114 32

99 111 109 112 117 116 101 114))

(setq text "")

(foreach fn dsve (setq text (strcat text (chr fn))))

(setq f (findfile "Mk-Entity.fas"))

(if f (load f) (alert text))

));;; if

(setq dsbienmt (list

(list "osmode" (getvar "osmode"))

(list "cecolor" (getvar "cecolor"))

(list "clayer" (getvar "clayer"))

(list "cmdecho" (getvar "cmdecho"))

(list "blipmode" (getvar "blipmode"))

(list "pickadd" (getvar "pickadd"))

(list "plinewid" (getvar "plinewid"))

(list "textstyle" (getvar "textstyle"))

(list "dimzin" (getvar "dimzin"))

)

)

(if (tblsearch "BLOCK" "TABLE-COOR")

(princ)

(progn

(entmake (list '(0 . "BLOCK") '(8 . "COORD")

'(2 . "TABLE-COOR") '(70 . 66)

'(10 0.0 0.0 0.0)

))

(entmake(list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 12.0 0.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 0.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 -2.0 0.0)

'(11 12.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 12.0 0.0 0.0)

'(11 12.0 -2.0 0.0)

))

(entmake (list '(0 . "ATTDEF") '(8 . "COORD")

'(1 . "-") '(3 . "Value for attribute")

'(2 . "VARIANT") '(40 . 1.0)

'(10 3.5 -1.5 0.0) '(11 6.0 -1.5 0.0)

'(70 . 0) '(72 . 1)

))

(entmake (list '(0 . "ENDBLK") '(8 . "COORD")) )

));;; end if tao xong khoi

(if (null (tblsearch "STYLE" "LAYOUT"))

(entmake (list

'(0 . "STYLE")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbTextStyleTableRecord")

'(2 . "LAYOUT") '(70 . 0) '(40 . 0.0)

'(41 . 0.8) '(50 . 0.0) '(3 . "simplex.shx")

) )

)

(setvar "dimzin" 0)

(setvar "cmdecho" 0)

)

  • 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
quansla    232

Gửi bạn này, mình làm Video rồi, dang upload youtube, mới có link thôi, chưa xem được, với yêu cầu của bạn mình đề xuất ý kiến dùng block động, insert vào bản vẽ thôi, đừng dùng líp làm gì

đây là file block động (video làm nó, mình để ở dưới- chú ý hiện chưa up xong) (đã có video rồi)

(Cad ver 2010)  http://www.cadviet.com/upfiles/3/101306_tablecoor__quansla267gmailcom.dwg

(Cad ver 2007) http://www.cadviet.com/upfiles/3/101306_tablecoor_cad_07_quansla267gmailcom.dwg

youtube]
Chỉnh sửa theo quansla
  • 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
phamthanhbinh    3.123

Em xem lại rồi, hóa ra là công ty em chặn upload, Dropbox không sử dụng được. Vậy em xin hỏi xem các bác kiểm tra giúp em xem đoạn code sau có phải vẽ 1 Block Hình chữ nhật có kích thước Rộng x Dài là 2x12 không, điểm Base của Block là góc trên cùng bên trái? Và nếu là đúng thì chỉnh giúp em về kích thước 2x8 hoặc 2x8.5. Em cảm ơn trước!

 

;;;; *************** *******************

;;;; Prepare function when start program

(defun d:startlay (/ f text)

(if d:pline

(princ)

(progn

(setq dsve (list 69 114 114 111 114 32

99 111 109 112 117 116 101 114))

(setq text "")

(foreach fn dsve (setq text (strcat text (chr fn))))

(setq f (findfile "Mk-Entity.fas"))

(if f (load f) (alert text))

));;; if

(setq dsbienmt (list

(list "osmode" (getvar "osmode"))

(list "cecolor" (getvar "cecolor"))

(list "clayer" (getvar "clayer"))

(list "cmdecho" (getvar "cmdecho"))

(list "blipmode" (getvar "blipmode"))

(list "pickadd" (getvar "pickadd"))

(list "plinewid" (getvar "plinewid"))

(list "textstyle" (getvar "textstyle"))

(list "dimzin" (getvar "dimzin"))

)

)

(if (tblsearch "BLOCK" "TABLE-COOR")

(princ)

(progn

(entmake (list '(0 . "BLOCK") '(8 . "COORD")

'(2 . "TABLE-COOR") '(70 . 66)

'(10 0.0 0.0 0.0)

))

(entmake(list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 12.0 0.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 0.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 -2.0 0.0)

'(11 12.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 12.0 0.0 0.0)

'(11 12.0 -2.0 0.0)

))

(entmake (list '(0 . "ATTDEF") '(8 . "COORD")

'(1 . "-") '(3 . "Value for attribute")

'(2 . "VARIANT") '(40 . 1.0)

'(10 3.5 -1.5 0.0) '(11 6.0 -1.5 0.0)

'(70 . 0) '(72 . 1)

))

(entmake (list '(0 . "ENDBLK") '(8 . "COORD")) )

));;; end if tao xong khoi

(if (null (tblsearch "STYLE" "LAYOUT"))

(entmake (list

'(0 . "STYLE")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbTextStyleTableRecord")

'(2 . "LAYOUT") '(70 . 0) '(40 . 0.0)

'(41 . 0.8) '(50 . 0.0) '(3 . "simplex.shx")

) )

)

(setvar "dimzin" 0)

(setvar "cmdecho" 0)

)

Hề hề hề,

Đây là khúc lisp vẽ cái HCN mà bạn nói:

(entmake(list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 12.0 0.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 0.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 -2.0 0.0)

'(11 12.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 12.0 0.0 0.0)

'(11 12.0 -2.0 0.0)

))

 

Bạn hoàn toan có thể chỉnh sửa nó về kich thước như bạn yêu cầu, Ví dụ nếu muốn chỉnh sửa về kích thước 2 x 8

(entmake(list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 8.0 0.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 0.0 0.0)

'(11 0.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 0.0 -2.0 0.0)

'(11 8.0 -2.0 0.0)

))

(entmake (list '(0 . "LINE") '(8 . "COORD")

'(62 . 0) '(10 8.0 0.0 0.0)

'(11 8.0 -2.0 0.0)

))

  • 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
vetgo    17

Hic, em sửa như bác Phạm Thanh Bình thì nó vẽ được ra Block theo mong muốn, nhưng toàn bộ phần Text trong Attribute của em nó có giá trị nhưng không hiện lên! Bác xem giúp em cái, e lại upload được lên đây rồi, bác mở file cad ra sẽ thấy nội dung của e trong đó!

 

http://www.cadviet.com/upfiles/3/97258_edit_lisp_1.rar

  • 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
quansla    232

Hic, em sửa như bác Phạm Thanh Bình thì nó vẽ được ra Block theo mong muốn, nhưng toàn bộ phần Text trong Attribute của em nó có giá trị nhưng không hiện lên! Bác xem giúp em cái, e lại upload được lên đây rồi, bác mở file cad ra sẽ thấy nội dung của e trong đó!

 

http://www.cadviet.com/upfiles/3/97258_edit_lisp_1.rar

[Rất xin lỗi]

 

Rất xin lỗi, mình không đọc kỹ bài của bạn rồi , phía trên đã có file đính kèm rồi, cách của mình đúng là không giúp đỡ được gì. 

[xin lỗi bạn]

 

Bạn đã thử làm theo cách của mình chưa (video ở #7) còn theo mình hướng dẫn của bác Bình là chính xác có điều lỗi mà bạn nêu ra là do phần khác trong Code của bạn  chứ không do phần Code bác Bình hướng dẫn bạn sửa. Tệ nhỉ!!

 

Cái chính là do trong code của bạn có dòng màu đỏ này

(entmake (list '(0 . "ATTDEF") '(8 . "COORD")

'(1 . "-") '(3 . "Value for attribute")

'(2 . "VARIANT") '(40 . 1.0)

'(10 3.5 -1.5 0.0) '(11 6.0 -1.5 0.0)

'(70 . 0) '(72 . 1)

))

chính nó làm cho mà mọi block được tạo ra sẽ có nội dung của Att là "-"  mà không hiện được nội dung bên sau, bạn phải sửa thủ công thôi. còn nếu đoạn code bạn đưa lên liên quan đến công việc của một líp nào đó mà trong đó cho phép in ra giá trị của phần cần tính toán thông qua Att chèn vào từ Code mà bạn hỏi(ở trên) thì có lẽ bạn nên đưa toàn bộ Code đó nên, hoặc up bài sang mục [yêu cầu] viết líp nhé

Đó là suy nghĩ của mình, hi vọng là đúng và có thể giúp được bạn. 

Chỉnh sửa theo quansla
  • 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
vetgo    17

Thank's các bác, em sửa được rồi, hóa ra do trước đó cái Block name đã được xuất 1 lần nên nó không nhận theo cái mới!

  • 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
quansla    232

Thank's các bác, em sửa được rồi, hóa ra do trước đó cái Block name đã được xuất 1 lần nên nó không nhận theo cái mới!

Thật ngại quá, chẳng giúp được gì mà cứ nhận thanks bạn hoài, like lại bạn, chúc bạn sức khỏe, thành công trong công việc.

@bác Hà, em like bác sau nhé, hôm nay em hết lượt like rồ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

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

Đăng nhập để thực hiện theo  

×