Đến nội dung


Hình ảnh
- - - - -

viết chữ theo đường thẳng bất kỳ bằng auto Lisp


  • Please log in to reply
22 replies to this topic

#21 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 31 May 2014 - 11:33 AM

Các bác cứ réo bác HA làm chi, lisp này có từ năm 2009, bác HA có "phê" thêm năm 2012, từ đó tới giờ chẳng ai đụng tới nữa.

Bác HA có vẻ không thích sửa lisp của người khác, thôi thì tôi sửa dùm cho các bác "làm phước" vậy.

(defun c:ist(/ chu os ent obj ndai p1 p2 pm ang caoc)
  (setq chu (getstring t "Chen chu :")
caoc (getreal (strcat "\nCao chu <" (rtos (getvar "USERR1")) ">:"))
os (getvar "OSMODE"))
  (prompt "\nChon duong de chen :")
  (setq ent (ssget '((0 . "LINE"))) n -1)
  (setvar "OSMODE" 0)
  (if (not caoc) (setq caoc (getvar "USERR1")) (setvar "USERR1" caoc))
  (repeat (sslength ent)
    (setq obj  (vlax-ename->vla-object (ssname ent (setq n (1+ n))))
 ndai (/ (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)) 2)
 pr   (vlax-curve-getParamAtDist obj ndai)  
 p1   (vlax-curve-getPointAtParam obj (- pr 0.1))
 p2   (vlax-curve-getPointAtParam obj (+ pr 0.1))
 pm   (vlax-curve-getPointAtParam obj pr)
 ang  (if (< (car p1) (car p2)) (angle p1 p2) (angle p2 p1))
)
(command "text" "j" "BC" pm caoc (* 180 (/ ang pi)) chu)
  )
  (setvar "OSMODE" os)
)

  • 1

#22 phamhieu236

phamhieu236

    biết pan

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

Đã gửi 03 May 2016 - 10:49 AM

Command: (LOAD "C:/Users/146LTN/Desktop/ist.lsp") ; error: syntax error
Lisp e tải về để ở màn hình.khi load vào dòng command báo như vậy.các bác xem giúp e vs.em cảm ơn nhiều.


  • 0

Cad còn đang lơ mơ lắm.


#23 MRCEM

MRCEM

    biết pan

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

Đã gửi 11 October 2016 - 12:45 AM

Em thấy bài này đã lâu, nay em cần lisp cũng tương tự, mạo muội cao nhân giúp đỡ.

Em muốn xin 1 cái lisp cũng viết chữ lên đoạn thẳng theo nhu cầu công việc của em được không ạ

- chữ viết từ trái theo phương ngang nằm trên hoặc dưới đoạn thẳng

- chữ viết từ dưới lên theo phương đứng bên trái hoặc phải đoạn thẳng

- chữ cách đoạn thẳng 80 hoặc tùy chỉnh

em đang mỏi tay chỉnh mong cao nhân giúp đỡ

 

Bạn thử dùng cái này xem. Kiểu chữ và chiều cao chữ do bạn chọn trước khi vào lệnh.

(defun c:int ()

  (setq ss (ssget '((0 . "LINE")))

	  chu (getstring "Chen chu :"))

  (setq os (getvar "OSMODE"))

  (setvar "OSMODE" 0)

  (repeat (sslength ss)

	(setq v  (ssname ss 0)

	  p1 (cdr (assoc 10 (entget v)))

	  p2 (cdr (assoc 11 (entget v)))

	  pm (polar p1 (angle p1 p2) (* 0.5 (distance p1 p2)))

	)

	(command "text" "j" "MC" pm "" (* 180 (/ (angle p1 p2) pi)) chu)

	(ssdel v ss)

  )

  (setvar "OSMODE" os)

)

EM MUỐN CHỈNH ĐƯỢC KHOẢNG CÁCH CHỮ ĐẾN ĐOẠN THẢNG VÀ VỊ TRÍ CHỮ ĐẶT TRÊN HOẶC DƯỚI LINE ĐƯỢC KHÔNG BÁC


  • 0