Đến nội dung


Hình ảnh
- - - - -

[Hỏi] Liệu có thể tạo một DimStyle mới bằng "entmake"


  • Please log in to reply
19 replies to this topic

#1 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 08:08 AM

Các bác cho em hỏi thế này với, hiện nay em vẫn dùng lisp tạo Dimstyle mới bằng một lisp mà nội dùng là một loạt các câu lệnh (setqvar "dim..." ??) và kết thúc bằng (command "-dimstyle" "save" ..)
Nhưng hôm nay em phát hiện ra Dimstyle cũng có thể lấy được DXF.
Kiểu như thế này

((0 . "DIMSTYLE") (2 . "123") (70 . 0) (3 . "") (4 . "") (5 . "ArchTick") (6 .
"") (7 . "") (40 . 100.0) (41 . 1.2) (42 . 0.0) (43 . 6.0) (44 . 1.0) (45 .
0.0) (46 . 1.0) (47 . 0.0) (48 . 0.0) (140 . 2.0) (141 . 2.0) (142 . 0.0) (143
. 0.0393701) (144 . 1.0) (145 . 0.0) (146 . 1.0) (147 . 0.5) (71 . 0) (72 . 0)
(73 . 0) (74 . 0) (75 . 0) (76 . 0) (77 . 1) (78 . 8) (170 . 0) (171 . 3) (172
. 1) (173 . 0) (174 . 1) (175 . 0) (176 . 19) (177 . 250) (178 . 4) (270 . 2)
(271 . 2) (272 . 2) (273 . 2) (274 . 3) (340 . <Entity name: 7ef03490>) (275 .
0) (280 . 0) (281 . 0) (282 . 0) (283 . 0) (284 . 8) (285 . 0) (286 . 0) (287 .
3) (288 . 0))
Vậy em hỏi liệu có cách nào dùng hàm (entmake ..) để tạo thêm Dimstyle được không ạh
Cảm ơn mọi người
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 October 2012 - 08:58 AM

Được! Dưới đây là 1 ví dụ. Bạn căn cứ vào đó mà tạo dimstyle riêng cho mình.
Về cơ bản là lấy entget của 1 dimstyle hiện có trên bản vẽ để tạo cái tương tự (loại trừ các entity).

(defun C:HA()
(entmake '((0 . "DIMSTYLE") (100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")
(2 . "HA") (70 . 0) (3 . "") (4 . "") (5 .
"ArchTick") (6 . "") (7 . "")
(40 . 96.0) (41 . 0.09375) (42 . 0.125) (43 . 0.38) (44 . 0.125)
(45 . 0.0) (46 . 0.0) (47 . 0.0) (48 . 0.0) (140 . 0.18) (141 .
0.09) (142 . 0.0)
(143 . 25.4) (144 . 1.0) (145 . 0.0) (146 . 1.0) (147 . 0.0625) (71
. 0)
(72 . 0) (73 . 1) (74 . 1) (75 . 0) (76 . 0) (77 . 0) (78 . 3) (170
. 0) (171 . 2)
(172 . 0) (173 . 0) (174 . 0) (175 . 0) (176 . 2) (177 . 2) (178 .
3) (270 . 4)
(271 . 4) (272 . 4) (273 . 2) (274 . 2) (275 . 0) (280 . 0) (281 .
0) (282 . 0)
(283 . 1) (284 . 0) (285 . 0) (286 . 0) (287 . 3) (288 . 0)
)))

  • 2

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


#3 avi612

avi612

    biết lệnh move

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

Đã gửi 16 October 2012 - 09:57 AM

Có tài liệu nào thống kê riêng mã DXF cho Dimension ko nhỉ....nhiều thế này tra Help của CAD loạn luôn....:)
  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 October 2012 - 10:13 AM

http://www.cadviet.c...ariables_vn.pdf
  • 2

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


#5 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 10:14 AM

Được! Dưới đây là 1 ví dụ. Bạn căn cứ vào đó mà tạo dimstyle riêng cho mình.
Về cơ bản là lấy entget của 1 dimstyle hiện có trên bản vẽ để tạo cái tương tự (loại trừ các entity).

cảm ơn bác thì ra chỉ cần bỏ entity đi là được hì hì
  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 October 2012 - 10:29 AM

Đừng đùa! Có 2 dòng này rất quan trọng nè (chứ không phải chỉ loại entity trong entget đâu):
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")
  • 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.


#7 avi612

avi612

    biết lệnh move

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

Đã gửi 16 October 2012 - 10:42 AM

Cảm ơn bác Doan Van Ha đã share file...:) Thanks
  • 0

#8 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 10:45 AM

Có tài liệu nào thống kê riêng mã DXF cho Dimension ko nhỉ....nhiều thế này tra Help của CAD loạn luôn.... :)

Tra thì lâu lắm bạn àh, nếu hiểu sơ sơ lisp bạn có thể làm theo cách này
Tự tạo một kiểu Dim phù hợp với mình, dùng cú pháp sau

(tblsearch "dimstyle" "d100")
để có mã DXF của DimStyle đó, sau đó chỉ cần sửa lại 2 giá trị quan trọng nhất là biến DimScale (mã DXF là 40) và biến DimLfac(Mã DXF là 144)
sau đó dùng hàm (entmake) như của bác Hà, bằng cách thay các thông số của bác ấy là thông số của mình và bỏ đi thông tin về entity,


thêm vào hai dòng
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")

ở phía dưới Mã DXF 0


chúc bạn thành công
còn đây là một số mã DXF mình khai thác được ý nghĩa

((0 . "DIMSTYLE") ;la thiet lap danh cho DimStyle
(2 . "D100") ;Ten Dimstyle
(70 . 0)
(3 . "")
(4 . "")
(5 . "ArchTick") ;Mui ten chung (2 dau kich thuoc)
(6 . "" ) ;Mui ten cho dau KT 1
(7 . "") ;Mui ten cho dau KT 2
(40 . 100.0) ;Gia tri cua bien DimScale
(41 . 1.2) ;Gia tri cua mui ten (bien DimAsz)
(42 . 0.0)
(43 . 6.0) ;;gia tri khoang cach dim do bang lenh DimBase
(44 . 1.0) ;gia tri giong nho ra duong ghi.KT
(45 . 0.0 ) ;;gia tri duong giong lay cach diem bat chan dim
(46 . 1.0) ;bien DImDle gia tri D.ghi.KT nho ra duong giong
(47 . 0.0)
(48 . 0.0)
(140 . 2.0) ;Kich thuoc Dimtext (bien Dimtxt)
(141 . 2.0) ;Bien DimCen (gia tri cua duong tam)
(142 . 0.0)
(143 . 0.0393701 ) ;;Kha nang la Unit
(144 . 1.0) ;GIA TRI BIEN DIMLFAC , quan trong
(145 . 0.0)
(146 . 1.0)
(147 . 0.5) ;Gia tri text Offset duong giong(bien DimGap)
(71 . 0)
(72 . 0)
(73 . 0)
(74 . 0)
(75 . 0)
(76 . 0)
(77 . 1)
(78 . 8)
(170 . 0)
(171 . 3)
(172 . 1)
(173 . 0)
(174 . 1)
(175 . 0)
(176 . 19)
(177 . 250)
(178 . 4)
(270 . 2)
(271 . 2) ;;So chu so sau dau "," phan thap phan cua DIM
(272 . 2)
(273 . 2)
(274 . 3)
(340 . <Entity name: 7ef03490>)
(275 . 0)
(280 . 0)
(281 . 0)
(282 . 0)
(283 . 0)
(284 . 8)
(285 . 0)
(286 . 0)
(287 . 3)
(288 . 0)
)

Bài viết đã được chỉnh sửa nội dung bởi quansla: 16 October 2012 - 10:57 AM

  • 2

#9 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 10:49 AM

Đừng đùa! Có 2 dòng này rất quan trọng nè (chứ không phải chỉ loại entity trong entget đâu):
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")

A, quả thế thật, để em tìm hiểu lại đã
  • 0

#10 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 10:55 AM

A, quả thế thật, để em sửa lại bài vừa post trên ,cảm ơn anh


  • 0

#11 quansla

quansla

    biết lệnh xclip

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

Đã gửi 16 October 2012 - 11:02 AM

Tra thì lâu lắm bạn àh, nếu hiểu sơ sơ lisp bạn có thể làm theo cách này
Tự tạo một kiểu Dim phù hợp với mình, dùng cú pháp sau


(tblsearch "dimstyle" "d100")
để có mã DXF của DimStyle đó, sau đó chỉ cần sửa lại 2 giá trị quan trọng nhất là biến DimScale (mã DXF là 40) và biến DimLfac(Mã DXF là 144)
sau đó dùng hàm (entmake) như của bác Hà,tạo một lisp tạo DImstyle bằng cách thay toàn bộ nội dung của phía sau (entmake ' ....đến hết hàm của nó(trong lisp bác Hà) bằng phần ((0 . "(0 . "DIMSTYLE")... mà Cad vừa cung cấp

và bỏ đi thông tin về entity,


thêm vào hai dòng
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")

ở phía dưới Mã DXF 0


chúc bạn thành công
còn đây là một số mã DXF mình khai thác được ý nghĩa

((0 . "DIMSTYLE") ;la thiet lap danh cho DimStyle
(2 . "D100") ;Ten Dimstyle
(70 . 0)
(3 . "")
(4 . "")
(5 . "ArchTick") ;Mui ten chung (2 dau kich thuoc)
(6 . "" ) ;Mui ten cho dau KT 1
(7 . "") ;Mui ten cho dau KT 2
(40 . 100.0) ;Gia tri cua bien DimScale
(41 . 1.2) ;Gia tri cua mui ten (bien DimAsz)
(42 . 0.0)
(43 . 6.0) ;;gia tri khoang cach dim do bang lenh DimBase
(44 . 1.0) ;gia tri giong nho ra duong ghi.KT
(45 . 0.0 ) ;;gia tri duong giong lay cach diem bat chan dim
(46 . 1.0) ;bien DImDle gia tri D.ghi.KT nho ra duong giong
(47 . 0.0)
(48 . 0.0)
(140 . 2.0) ;Kich thuoc Dimtext (bien Dimtxt)
(141 . 2.0) ;Bien DimCen (gia tri cua duong tam)
(142 . 0.0)
(143 . 0.0393701 ) ;;Kha nang la Unit
(144 . 1.0) ;GIA TRI BIEN DIMLFAC , quan trong
(145 . 0.0)
(146 . 1.0)
(147 . 0.5) ;Gia tri text Offset duong giong(bien DimGap)
(71 . 0)
(72 . 0)
(73 . 0)
(74 . 0)
(75 . 0)
(76 . 0)
(77 . 1)
(78 . 8)
(170 . 0)
(171 . 3)
(172 . 1)
(173 . 0)
(174 . 1)
(175 . 0)
(176 . 19)
(177 . 250)
(178 . 4)
(270 . 2)
(271 . 2) ;;So chu so sau dau "," phan thap phan cua DIM
(272 . 2)
(273 . 2)
(274 . 3)
(340 . <Entity name: 7ef03490>)
(275 . 0)
(280 . 0)
(281 . 0)
(282 . 0)
(283 . 0)
(284 . 8)
(285 . 0)
(286 . 0)
(287 . 3)
(288 . 0)
)


  • 0

#12 quangtb

quangtb

    biết zoom

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

Đã gửi 22 December 2012 - 10:17 AM

http://www.cadviet.c...3/111868_ct.lsp
mấy a xem dùm e cái lisp này với e ko dùng đuơc hịc ấn lệnh xong nó hiện lỗi này mọi ngừoi giúp e với
Hình đã gửi
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 22 December 2012 - 11:42 AM

Bạn chép lisp lên 4rum thiếu 2 dấu ngoặc => chẳng bao giờ có lỗi như bạn nói cả.
  • 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.


#14 quangtb

quangtb

    biết zoom

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

Đã gửi 22 December 2012 - 01:27 PM

em không hiểu lắm anh có thể sửa lisp đó giúp e được không ? em cám ơn
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 22 December 2012 - 03:00 PM

Lisp này dùng để tạo 1 dimstyle mới. Bạn thêm vào cuối lisp 2 dấu ngoặc như sau:
))
  • 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 quangtb

quangtb

    biết zoom

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

Đã gửi 22 December 2012 - 07:32 PM

em đã thêm nhưng vẫn báo lỗi như trên :(
  • 0

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 22 December 2012 - 09:07 PM



(defun C:CT()
(entmake '((0 . "DIMSTYLE") (100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")
(2 . "CT") (70 . 0) (3 . "") (4 . "") (5 .
"ARCHTICK") (6 . "") (7 . "")
(40 . 0.0) (41 . 50.0) (42 . 0.0) (43 . 40.0) (44 . 50.0)
(45 . 0.0) (46 . 50.0) (47 . 0.0) (48 . 0.0) (140 . 100.0) (141 .
10.0) (142 . 0.0)
(143 . 0.0394) (144 . 1.0) (145 . 0.0) (146 . 1.0) (147 . 50.0) (71
. 0)
(72 . 0) (73 . 0) (74 . 0) (75 . 0) (76 . 0) (77 . 1) (78 . 8) (170
. 0) (171 . 4)
(172 . 1) (173 . 0) (174 . 1) (175 . 0) (176 . 156) (177 . 156) (178 .
33) (270 . 2)
(271 . 0) (272 . 0) (273 . 2) (274 . 4) (275 . 0) (280 . 0) (281 .
0) (282 . 0)
(283 . 1) (284 . 0) (285 . 0) (286 . 0) (287 . 5) (288 . 0))
))

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


#18 quangtb

quangtb

    biết zoom

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

Đã gửi 23 December 2012 - 12:32 PM

cám ơn a nhiều e đã làm đc lisp của e bị thiếu 3 dấu ngoặc chứ ko phải 2 @@
  • 0

#19 engineer0405

engineer0405

    biết vẽ polygon

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

Đã gửi 23 October 2013 - 11:23 PM

Tra thì lâu lắm bạn àh, nếu hiểu sơ sơ lisp bạn có thể làm theo cách này
Tự tạo một kiểu Dim phù hợp với mình, dùng cú pháp sau

(tblsearch "dimstyle" "d100")
để có mã DXF của DimStyle đó, sau đó chỉ cần sửa lại 2 giá trị quan trọng nhất là biến DimScale (mã DXF là 40) và biến DimLfac(Mã DXF là 144)
sau đó dùng hàm (entmake) như của bác Hà, bằng cách thay các thông số của bác ấy là thông số của mình và bỏ đi thông tin về entity,


thêm vào hai dòng
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbDimStyleTableRecord")

ở phía dưới Mã DXF 0


chúc bạn thành công
còn đây là một số mã DXF mình khai thác được ý nghĩa
((0 . "DIMSTYLE")  ;la thiet lap danh cho DimStyle
  (2 . "D100")   ;Ten Dimstyle
  (70 . 0)  
  (3 . "")
  (4 . "")
  (5 . "ArchTick")  ;Mui ten chung (2 dau kich thuoc)
  (6   .   ""  )  ;Mui ten cho dau KT 1
  (7 . "")   ;Mui ten cho dau KT 2
  (40 . 100.0)   ;Gia tri cua bien DimScale
  (41 . 1.2)   ;Gia tri cua mui ten (bien DimAsz)
  (42 . 0.0)  
  (43 . 6.0)   ;;gia tri khoang cach dim do bang lenh DimBase
  (44 . 1.0)   ;gia tri giong nho ra duong ghi.KT
  (45  .  0.0 )   ;;gia tri duong giong lay cach diem bat chan dim
  (46 . 1.0)   ;bien DImDle gia tri D.ghi.KT nho ra duong giong
  (47 . 0.0)
  (48 . 0.0)
  (140 . 2.0)   ;Kich thuoc Dimtext (bien Dimtxt)
  (141 . 2.0)   ;Bien DimCen (gia tri cua duong tam)
  (142 . 0.0)  
  (143  .  0.0393701 )  ;;Kha nang la Unit
  (144 . 1.0)   ;GIA TRI BIEN DIMLFAC , quan trong
  (145 . 0.0)
  (146 . 1.0)
  (147 . 0.5)   ;Gia tri text Offset duong giong(bien DimGap)
  (71 . 0)
  (72 . 0)
  (73 . 0)
  (74 . 0)
  (75 . 0)
  (76 . 0)
  (77 . 1)
  (78 . 8)
  (170 . 0)
  (171 . 3)
  (172 . 1)
  (173 . 0)
  (174 . 1)
  (175 . 0)
  (176 . 19)
  (177 . 250)
  (178 . 4)
  (270 . 2)
  (271 . 2)   ;;So chu so sau dau "," phan thap phan cua DIM
  (272 . 2)
  (273 . 2)
  (274 . 3)
  (340 . <Entity name: 7ef03490>)
  (275 . 0)
  (280 . 0)
  (281 . 0)
  (282 . 0)
  (283 . 0)
  (284 . 8)
  (285 . 0)
  (286 . 0)
  (287 . 3)
  (288 . 0)
)

Anh ơi cho em hỏi làm sao để đổi style chữ và chiều cao chữ khi tạo bằng entmake vậy ạ

em cảm ơn ạ


  • 0

#20 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 24 October 2013 - 11:48 AM

Hề hề hề,

Anh ơi cho em hỏi làm sao để đổi style chữ và chiều cao chữ khi tạo bằng entmake vậy ạ

em cảm ơn ạ

Đổi giá trị mã dxf 7 và dxf 40


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