Đến nội dung


Hình ảnh
- - - - -

Nhờ Chỉnh Sửa Lisp Chuyển Dim Về Dim Hiện Hành


  • Please log in to reply
6 replies to this topic

#1 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 17 July 2016 - 11:14 AM

http://www.cadviet.c...6/111575_ha.lsp

 

Nhờ các anh   sửa thêm lisp. Khi setcurent Dim thì set thêm cả các thông số của Dim được chọn nữa. Vì trong 1 số trường hợp chỉ cần dùng loại Dim. Khi đo tùy đối tượng có tỉ lệ khác nhau thì tùy chỉnh thông số DIM SCALE OVERALL theo tỉ lệ bản vẽ:

Ví dụ, Như hình vẽ : cùng 1 loại Dim nhưng Kiểu 2 được sửa thông số trong thanh Properties của Dim: DIM SCALE OVERALL :45 về 22.5, thì được như kiểu 2.

Nhưng khi dùng lisp set Dim, (cần set curent D100,kiểu 2). Thì Lisp chỉ set D100 (kiểu 1- gốc) làm Dim hiện hành không chọn được kiểu 2.

 

Nhờ anh bổ sung giúp tính năng trên.152245_1_3.png


  • 0

#2 minhtanx2

minhtanx2

    biết lệnh stretch

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

Đã gửi 17 July 2016 - 12:32 PM

không nên lạm dụng lisp


  • 0

Khi bạn tán tỉnh một cô gái đẹp, một giờ đồng hồ chẳng qua như một giây. Khi bạn ngồi trên một hòn than nóng bỏng, một giây như thể một giờ. Đó chính là tính tương đối. (Albert Einstein)


#3 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 17 July 2016 - 04:57 PM

không nên lạm dụng lisp

mình nghĩ nó rất hữu ích mà, nó giúp mình kiểm soát  bản vẽ có nhiều tỉ lệ dim tốt hơn, kiểm tra bản vẽ hiệu quả hơn.


  • 0

#4 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 18 July 2016 - 07:47 AM

Thử cái này xem:

(defun c:tt  (/ adoc ent obj)
 (if (setq ent (car (entsel "\nChon 1 doi tuong: ")))
  (progn (setq adoc (vla-get-activedocument (vlax-get-acad-object))
               obj  (vlax-ename->vla-object ent))
         (mapcar 'setvar
                 '("CLAYER" "CELTYPE" "CECOLOR")
                 (mapcar '(lambda (x) (vl-princ-to-string (vlax-get obj x))) '("Layer" "Linetype" "Color")))
         (cond ((wcmatch (strcase (vla-get-ObjectName obj)) "*TEXT") (setvar 'TEXTSTYLE (vlax-get obj 'StyleName)))
               ((wcmatch (strcase (vla-get-ObjectName obj)) "*DIMENSION")
                (vla-put-activedimstyle adoc (vla-item (vla-get-dimstyles adoc) (vlax-get obj 'StyleName)))
                (setvar 'DIMSCALE (vlax-get obj 'ScaleFactor))))))
 (princ))

  • 1

#5 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 18 July 2016 - 01:29 PM

 

Thử cái này xem:

(defun c:tt  (/ adoc ent obj)
 (if (setq ent (car (entsel "\nChon 1 doi tuong: ")))
  (progn (setq adoc (vla-get-activedocument (vlax-get-acad-object))
               obj  (vlax-ename->vla-object ent))
         (mapcar 'setvar
                 '("CLAYER" "CELTYPE" "CECOLOR")
                 (mapcar '(lambda (x) (vl-princ-to-string (vlax-get obj x))) '("Layer" "Linetype" "Color")))
         (cond ((wcmatch (strcase (vla-get-ObjectName obj)) "*TEXT") (setvar 'TEXTSTYLE (vlax-get obj 'StyleName)))
               ((wcmatch (strcase (vla-get-ObjectName obj)) "*DIMENSION")
                (vla-put-activedimstyle adoc (vla-item (vla-get-dimstyles adoc) (vlax-get obj 'StyleName)))
                (setvar 'DIMSCALE (vlax-get obj 'ScaleFactor))))))
 (princ))

 

cảm ơn anh đã giúp em, lisp của anh gần đúng với ý của em rồi, chỉ còn 1 thông số " Dim scale linear" nó chưa thay đổi theo dim hiện hành. Anh chỉnh sửa thêm cho em  nhé. Cám ơn anh !!!!


  • 0

#6 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 18 July 2016 - 03:05 PM

Bạn thêm dòng này: (setvar 'DIMLFAC (vlax-get obj 'LinearScaleFactor)) ngay trước hoặc sau dòng này:

(setvar 'DIMSCALE (vlax-get obj 'ScaleFactor))

 

*** Chú ý dấu mở, đóng "()"


  • 1

#7 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 18 July 2016 - 03:31 PM

Bạn thêm dòng này: (setvar 'DIMLFAC (vlax-get obj 'LinearScaleFactor)) ngay trước hoặc sau dòng này:

(setvar 'DIMSCALE (vlax-get obj 'ScaleFactor))

 

*** Chú ý dấu mở, đóng "()"

 

cảm ơn anh, em làm được rồi. hoàn hảo ^^


  • 0