Đến nội dung


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

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


  • Please log in to reply
9 replies to this topic

#1 vetgo

vetgo

    biết vẽ polygon

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

Đã gửi 07 August 2013 - 03:53 PM

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!
  • 0
Nếu nội dung post là có ích, xin tick + để thăng hàm lên lương...

#2 hantinh

hantinh

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 413 Bài viết
Điểm đánh giá: 44 (tàm tạm)

Đã gửi 07 August 2013 - 04:33 PM

"bệnh nhân" của bạn đâu rồi???


  • 0

#3 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 07 August 2013 - 06:39 PM

   

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.c...t_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][/youtube]
  • 1

#4 vetgo

vetgo

    biết vẽ polygon

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

Đã gửi 08 August 2013 - 09:03 AM

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)
)
  • 1
Nếu nội dung post là có ích, xin tick + để thăng hàm lên lương...

#5 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 08 August 2013 - 11:57 AM

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.c...267gmailcom.dwg
(Cad ver 2007) http://www.cadviet.c...267gmailcom.dwg
[youtube][/youtube]

Bài viết đã được chỉnh sửa nội dung bởi quansla: 08 August 2013 - 10:25 PM

  • 1

#6 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 08 August 2013 - 03:05 PM

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


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

#7 vetgo

vetgo

    biết vẽ polygon

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

Đã gửi 09 August 2013 - 11:45 AM

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.c...edit_lisp_1.rar


  • 1
Nếu nội dung post là có ích, xin tick + để thăng hàm lên lương...

#8 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 09 August 2013 - 01:10 PM

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


Bài viết đã được chỉnh sửa nội dung bởi quansla: 09 August 2013 - 01:27 PM

  • 1

#9 vetgo

vetgo

    biết vẽ polygon

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

Đã gửi 09 August 2013 - 03:30 PM

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!


  • 1
Nếu nội dung post là có ích, xin tick + để thăng hàm lên lương...

#10 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 09 August 2013 - 08:31 PM

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


  • 0