Đến nội dung


Hình ảnh
- - - - -

Nhờ Xem Giúp Lips Điền Cao Độ Tk


  • Please log in to reply
7 replies to this topic

#1 zizpo_hetxang

zizpo_hetxang

    biết vẽ arc

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

Đã gửi 21 September 2015 - 09:08 AM

Trước đây em đang dùng lips này nó vẫn chạy tốt không biết đợt này thế nào nó lại báo lỗi
Lips này nó điền cao độ đường pline đã có cao độ 
Error:Automation Error. No database; error: An error has occurred inside the 
*error* functionbad argument type: fixnump: "BYLAYER"
. Sẵn đây anh chị xem giúp. Nếu các bác ngại xem thìị viết giùm lips xuất cao độ của đường Pline. Đường này bản thân nó đã có cao độ, bây giờ em muốn nó xuất ra cao độ ngay trên đường pline đó. em gởi kèm bản vẽ và lips trước đây.
http://www.mediafire...tl/san nen1.rar
http://www.mediafire...ci0hl04/dcd.lsp
  • 0

#2 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 21 September 2015 - 11:40 AM

Trong Lisp bạn thử thay thế biến có tên là ver thành một tên khác vert chẳng hạn.


  • 0

#3 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 21 September 2015 - 11:49 AM

Lisp chạy ổn mà chắc bị trùng biến như bạn quocmanh04tt nói


  • 0

#4 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 21 September 2015 - 01:24 PM

Trước đây em đang dùng lips này nó vẫn chạy tốt không biết đợt này thế nào nó lại báo lỗi
Lips này nó điền cao độ đường pline đã có cao độ 
Error:Automation Error. No database; error: An error has occurred inside the 
*error* functionbad argument type: fixnump: "BYLAYER"
. Sẵn đây anh chị xem giúp. Nếu các bác ngại xem thìị viết giùm lips xuất cao độ của đường Pline. Đường này bản thân nó đã có cao độ, bây giờ em muốn nó xuất ra cao độ ngay trên đường pline đó. em gởi kèm bản vẽ và lips trước đây.
http://www.mediafire...tl/san nen1.rar
http://www.mediafire...ci0hl04/dcd.lsp

Một cách viết khác :) :

(defun c:dcd (/ doc ms a p) (vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)) 
ms (vla-get-modelspace doc))
(if (ssget (list (cons 0 "*POLYLINE"))) 
(vlax-map-collection (vla-get-ActiveSelectionset doc) '(lambda (obj)
(foreach x (acet-geom-vertex-list (vlax-vla-object->ename obj))
(vla-put-Alignment (setq a (vla-addtext ms (rtos (last x) 2 2)
(setq p (vlax-3d-point (list (car x) (cadr x)))) 1.)) 10)
(vla-put-TextAlignmentPoint a p) )))))

Cad bạn phải có Express Tools!


  • 1

#5 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 21 September 2015 - 03:17 PM

Một cách viết khác :) :

(defun c:dcd (/ doc ms a p) (vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)) 
ms (vla-get-modelspace doc))
(if (ssget (list (cons 0 "*POLYLINE"))) 
(vlax-map-collection (vla-get-ActiveSelectionset doc) '(lambda (obj)
(foreach x (acet-geom-vertex-list (vlax-vla-object->ename obj))
(vla-put-Alignment (setq a (vla-addtext ms (rtos (last x) 2 2)
(setq p (vlax-3d-point (list (car x) (cadr x)))) 1.)) 10)
(vla-put-TextAlignmentPoint a p) )))))

Cad bạn phải có Express Tools!

Hề hề hề,

Bác pphung183 có thể giải thích giùm hai tham số 1. và 10 ở trong đoạn code trên giùm mình không???


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

#6 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 21 September 2015 - 03:34 PM

Là textsize và textAlignment mà bác!

***

+ (vla-AddText object TextString InsertionPoint Height)
+ (vla-put-Alignment Obj Alignment)
+ Alignment:
'(("L" 0)("C" 1)("R" 2)("M" 4)("TL" 6)("TC" 7)("TR" 8)("ML" 9)("MC" 10)("MR" 11)("BL" 12)("BC" 13)("BR" 14))​


  • 0

#7 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 21 September 2015 - 03:55 PM

Cấu trúc lệnh

(vla-put-Alignment object acAlignment)

trong help phần ActiveX and VBA Reference - Properties -  Alignment Property

acAlignment là loại enum

  acAlignmentLeft = 0
  acAlignmentCenter
  acAlignmentRight
  acAlignmentAligned
  acAlignmentMiddle
  acAlignmentFit
  acAlignmentTopLeft
  acAlignmentTopCenter
  acAlignmentTopRight
  acAlignmentMiddleLeft
  acAlignmentMiddleCenter = 10
  acAlignmentMiddleRight
  acAlignmentBottomLeft
  acAlignmentBottomCenter
  acAlignmentBottomRight

Trong lisp trên nếu viết rõ ràng là

(vla-put-Alignment object acAlignmentMiddleCenter)


  • 0

#8 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 22 September 2015 - 05:17 AM

Hề hề hề,

Bác pphung183 có thể giải thích giùm hai tham số 1. và 10 ở trong đoạn code trên giùm mình không???

Chào bác phamthanhbinh :) !

Tham số 10 thì như giải thích cụ thể của bạn ndtnv , viết rõ ràng là acAlignmentMiddleCenter (sẽ không sợ lỗi không như ý khi Cad thay đổi Version).

Giống như :vlax-true có thể thay bằng 1;   :vlax-false thay bằng 0 ...

Hàm (vla-AddText Object TextString InsertionPoint Height)

Height : Cao Text chính là 1. (lấy theo bản vẽ của chủ thớt)

Lưu ý là : Height > 0 ; tôi thấy là trong diễn đàn một số bạn đặt biến cho Height rất sai lầm :

(setq h (* (getvar "dimtxt") (getvar "dimscale"))). Lý do : (getvar "dimscale") có thể = 0

Vài dòng chia sẽ cùng Bác  :) .


  • 0