Đến nội dung


Hình ảnh
- - - - -

lisp lấy ra giá trị dim overall và dim linear!


  • Please log in to reply
7 replies to this topic

#1 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 19 December 2007 - 12:27 PM

Các bác ơi có bác nào có lisp lisp lấy ra giá trị dim overall và dim linear thì cho mình xin, mình đang rất cần, thanks!
  • 0

#2 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 19 December 2007 - 01:23 PM

Các bác ơi có bác nào có lisp lisp lấy ra giá trị dim overall và dim linear thì cho mình xin, mình đang rất cần, thanks!

'giá trị dim overall và dim linear' là cái gì bạn?
  • 0

#3 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 19 December 2007 - 08:38 PM

'giá trị dim overall và dim linear' là cái gì bạn?

Là giá trị dim overall scale và dim linear scale đó anh à, biến thứ nhất kiểm soát tỉ lệ của các chữ số kích thước, chiều dài nét dóng nghiêng(nếu để oblique), hai đoạn thò ra của 2 đường gióng...(nôm na là như vậy), biến thứ hai là tỉ lệ thôi bác!
  • 0

#4 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 19 December 2007 - 09:30 PM

Là giá trị dim overall scale và dim linear scale đó anh à, biến thứ nhất kiểm soát tỉ lệ của các chữ số kích thước, chiều dài nét dóng nghiêng(nếu để oblique), hai đoạn thò ra của 2 đường gióng...(nôm na là như vậy), biến thứ hai là tỉ lệ thôi bác!

Trời! overall với overall scale hay linear với linear scale là 2 khái niệm khác nhau hoàn toàn.
Mặc dù vậy vẫn chưa rõ bạn muốn lấy dim overal scale của dimstyle hiện hành hay của đối tượng dim được chọn?
  • 0

#5 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 19 December 2007 - 09:37 PM

Trời! overall với overall scale hay linear với linear scale là 2 khái niệm khác nhau hoàn toàn.
Mặc dù vậy vẫn chưa rõ bạn muốn lấy dim overal scale của dimstyle hiện hành hay của đối tượng dim được chọn?

À, ý tưởng lisp của em là chọn 1 đối tượng dim trên màn hình sau đó lisp hỏi chọn điểm chèn kết quả, sẽ hiện lên 2 kết quả số trên màn hình anh à! bác giúp em nha, thanks!
  • 0

#6 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 19 December 2007 - 10:31 PM

À, ý tưởng lisp của em là chọn 1 đối tượng dim trên màn hình sau đó lisp hỏi chọn điểm chèn kết quả, sẽ hiện lên 2 kết quả số trên màn hình anh à! bác giúp em nha, thanks!

Lệnh là GDI (get dim information).


(defun c:gdi (/ str ent)
(setq ent (car (entsel "\nHay chon dim: "))
str (strcat "DIMEXE: "
(rtos (getdimcode ent 40) 2 2)
" | DIMSCALE: "
(rtos (getdimcode ent 44) 2 2)
)
)
(wtxt str (getpoint "\nVao diem chen ket qua: "))
(princ)
)

(defun getdimcode (ent code / tt data ovs ext kq)
(setq
tt (entget ent '("ACAD"))
kq (member (cons 1070 code) (cadr (assoc -3 tt)))
)
(if kq
(cdr (car (cdr kq)))
(cdr (assoc code (tblsearch "DIMSTYLE" (cdr (assoc 3 tt)))))
)
)

(defun wtxt (txt p / sty d h)
(setq
sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d))
)
(entmake (list (cons 0 "TEXT")
(cons 7 sty)
(cons 1 txt)
(cons 10 p)
(if (> h 0)
(cons 40 h)
(assoc 40 d)
)
(assoc 41 d)
)
)
)

  • 0

#7 xaydung

xaydung

    biết lệnh trim

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

Đã gửi 20 December 2007 - 02:33 PM

Lệnh là GDI (get dim information).


(defun c:gdi (/ str ent)
(setq ent (car (entsel "\nHay chon dim: "))
str (strcat "DIMEXE: "
(rtos (getdimcode ent 40) 2 2)
" | DIMSCALE: "
(rtos (getdimcode ent 44) 2 2)
)
)
(wtxt str (getpoint "\nVao diem chen ket qua: "))
(princ)
)

(defun getdimcode (ent code / tt data ovs ext kq)
(setq
tt (entget ent '("ACAD"))
kq (member (cons 1070 code) (cadr (assoc -3 tt)))
)
(if kq
(cdr (car (cdr kq)))
(cdr (assoc code (tblsearch "DIMSTYLE" (cdr (assoc 3 tt)))))
)
)

(defun wtxt (txt p / sty d h)
(setq
sty (getvar "textstyle")
d (tblsearch "style" sty)
h (cdr (assoc 40 d))
)
(entmake (list (cons 0 "TEXT")
(cons 7 sty)
(cons 1 txt)
(cons 10 p)
(if (> h 0)
(cons 40 h)
(assoc 40 d)
)
(assoc 41 d)
)
)
)

thanks anh Hoanh, dimexe thì đúng rồi, nhưng cái dimscale hiện trên màn hình chưa đúng anh à, anh sủa cho em chút nữa được không ạ, nó chính là cái : khi anh vô Ctrl+1 hiện bảng ở phần primary units --> dim scale linear đó (mặc định là 1)
kết quả màn hình là :dimexe :1.00 dimscale : 1.00 !
  • 0

#8 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 20 December 2007 - 03:58 PM

thanks anh Hoanh, dimexe thì đúng rồi, nhưng cái dimscale hiện trên màn hình chưa đúng anh à, anh sủa cho em chút nữa được không ạ, nó chính là cái : khi anh vô Ctrl+1 hiện bảng ở phần primary units --> dim scale linear đó (mặc định là 1)
kết quả màn hình là :dimexe :1.00 dimscale : 1.00 !

Bạn hãy sửa mã 40 với 44 thành cái bạn muốn.
Nội dung của các code này như sau:

40
DIMSCALE

41
DIMASZ

42
DIMEXO

43
DIMDLI

44
DIMEXE

45
DIMRND

46
DIMDLE

47
DIMTP

48
DIMTM

140
DIMTXT

141
DIMCEN

142
DIMTSZ

143
DIMALTF

144
DIMLFAC

145
DIMTVP

146
DIMTFAC

147
DIMGAP

148
DIMALTRND

71
DIMTOL

72
DIMLIM

73
DIMTIH

74
DIMTOH

75
DIMSE1

76
DIMSE2

77
DIMTAD

78
DIMZIN

79
DIMAZIN

170
DIMALT

171
DIMALTD

172
DIMTOFL

173
DIMSAH

174
DIMTIX

175
DIMSOXD

176
DIMCLRD

177
DIMCLRE

178
DIMCLRT

179
DIMADEC

270
DIMUNIT (obsolete, now use DIMLUNIT AND DIMFRAC)

271
DIMDEC

272
DIMTDEC

273
DIMALTU

274
DIMALTTD

275
DIMAUNIT

276
DIMFRAC

277
DIMLUNIT

278
DIMDSEP

279
DIMTMOVE

280
DIMJUST

281
DIMSD1

282
DIMSD2

283
DIMTOLJ

284
DIMTZIN

285
DIMALTZ

286
DIMALTTZ

287
DIMFIT (obsolete, now use DIMATFIT and DIMTMOVE)

288
DIMUPT

289
DIMATFIT

340
DIMTXSTY (handle of referenced STYLE)

341
DIMLDRBLK (handle of referenced BLOCK)

342
DIMBLK (handle of referenced BLOCK)

343
DIMBLK1 (handle of referenced BLOCK)

344
DIMBLK2 (handle of referenced BLOCK)

371
DIMLWD (lineweight enum value)

372
DIMLWE

  • 0