乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: vector

[编程交流] 是否有编号命令i

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:21:47 | 显示全部楼层
好的,这是怎么回事
 
  1. ;; ============ NumCur.lsp ===============
  2. ;;
  3. ;;  FUNCTION:
  4. ;;  Will sequentially place numerical
  5. ;;  text at the end of a leader, upon
  6. ;;  mouse click.
  7. ;;
  8. ;;  SYNTAX: numCur
  9. ;;
  10. ;;  AUTHOR:
  11. ;;  Copyright (c) 2009, Lee McDonnell
  12. ;;  (Contact Lee Mac, CADTutor.net)
  13. ;;
  14. ;;  PLATFORMS:
  15. ;;  No Restrictions,
  16. ;;  only tested in ACAD 2004.
  17. ;;
  18. ;;  VERSION:
  19. ;;  1.0  ~  05.04.2009
  20. ;;
  21. ;; =======================================
  22. (defun c:numCur (/ *error* vlst ovar doc spc dVars
  23.           tmpVars cObj tBox GLst mPos cPt
  24.           cDis EnPt ArPt1 ArPt2 AngCor vCol
  25.           Verts VertVar )
  26. (vl-load-com)
  27. (defun *error* (msg)
  28.    (redraw)
  29.    (if ovar (mapcar 'setvar vlst ovar))
  30.    (if (not (member msg '("Function cancelled" "quit / exit abort")))
  31.      (princ (strcat "\nError: " (strcase msg)))
  32.      (princ "\n<<-- cancelled -->>"))
  33.    (princ))
  34. (setq vlst '("OSMODE" "CLAYER")
  35.    ovar (mapcar 'getvar vlst))
  36. (setvar "OSMODE" 0)
  37. (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
  38.        spc (if (zerop (vla-get-activespace doc))
  39.              (if (= (vla-get-mspace doc) :vlax-true)
  40.                (vla-get-modelspace doc)
  41.                (vla-get-paperspace doc))
  42.              (vla-get-modelspace doc)))
  43. (or (tblsearch "LAYER" "Num-Text")
  44.      (vla-put-color
  45.    (vla-add
  46.      (vla-get-layers doc) "NumText") acYellow))
  47. (setq dVars '(sNum inNum Pref Suff))
  48. (mapcar '(lambda (x y) (or (boundp x) (set x y))) dVars '(1 1 "" ""))
  49. (setq tmpVars (list (getreal (strcat "\nSpecify Starting Number <" (rtos sNum 2 2) ">: "))
  50.              (getreal (strcat "\nSpecify Increment <" (rtos inNum 2 2) ">: "))
  51.              (getstring t (strcat "\nSpecify Prefix <" (if (eq "" Pref) "-None-" Pref) ">: "))
  52.              (getstring t (strcat "\nSpecify Suffix <" (if (eq "" Suff) "-None-" Suff) ">: "))))
  53. (mapcar '(lambda (x y) (or (or (not x) (eq "" x)) (set y x))) tmpVars dVars)
  54. (while (and (setq cEnt (car (entsel "\nSelect Curve to Label: ")))
  55.          (member (cdr (assoc 0 (entget cEnt)))
  56.            '("LINE" "POLYLINE" "LWPOLYLINE" "SPLINE" "ARC" "ELLIPSE" "CIRCLE")))
  57.    (vla-EndUndoMark doc)
  58.    (vla-StartUndomark doc)
  59.    (setq cObj (vlax-ename->vla-object cEnt)
  60.      tBox (textbox (list (cons 1 (setq tStr (strcat Pref (rtos sNum 2 0) Suff))))))
  61.    (princ "\nSelect Location for Leader... ")
  62.    (while (= (car (setq GLst (grread T 1))) 5)
  63.      (redraw)
  64.      (if (= (type (setq mPos (cadr GLst))) 'list)
  65.    (progn
  66.      (setq cPt (vlax-curve-getClosestPointto cObj mPos)
  67.        cAng (angle cPt mPos)
  68.        cDis (distance cPt mPos)
  69.        EnPt (polar cPt cAng (/ cDis 1.5))
  70.        ArPt1 (polar cPt (+ cAng (/ pi 12)) (/ cDis 8.0))
  71.        ArPt2 (polar cPt (- cAng (/ pi 12)) (/ cDis 8.0))
  72.        AngCor (fix (abs (* 10.0 (fix (* 18.0 (/ cAng pi)))))))
  73.      (or (and (< AngCor 1.0) (setq vCol 1)) (setq vCol AngCor))
  74.      (grvecs (list vCol cPt EnPt vCol cPt ArPt1 vCol cPt ArPt2)))))
  75.    (princ "\nSelect Leader Size & Angle...")
  76.    (while (= (car (setq GLst (grread T 1))) 5)
  77.      (redraw)
  78.      (if (= (type (setq mPos (cadr GLst))) 'list)
  79.    (progn
  80.      (setq cAng (angle cPt mPos)
  81.        cDis (distance cPt mPos)
  82.        ArPt1 (polar cPt (+ cAng (/ pi 12)) (/ cDis 8.0))
  83.        ArPt2 (polar cPt (- cAng (/ pi 12)) (/ cDis 8.0)))
  84.      (grvecs (list vCol cPt mPos vCol cPt ArPt1 vCol cPt ArPt2)))))
  85.    (setq Verts (apply 'append (list cPt mPos))
  86.      VertVar (vlax-make-variant
  87.            (vlax-safearray-fill
  88.              (vlax-make-safearray
  89.            vlax-vbdouble
  90.            (cons 0 (1- (length Verts))))
  91.              Verts)))
  92.    (vla-addleader spc VertVar
  93.      (vla-addMText spc
  94.    (vlax-3d-Point
  95.      (polar mPos 0 (/ (getvar "TEXTSIZE") 2.0)))
  96.    (- (caadr tBox) (caar tBox)) tStr) acLineWithArrow)
  97.    (redraw)
  98.    (setq sNum (+ sNum inNum)))
  99. (mapcar 'setvar vlst ovar)
  100. (redraw)
  101. (princ))
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 15:24:24 | 显示全部楼层
不要忘记在ExpressTools中计算
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:30:06 | 显示全部楼层
 
从来都不知道那是真的——指挥棒极了!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:30:48 | 显示全部楼层
实际上,这更好(按颜色):
 
  1. ;; ============ NumCur.lsp ===============
  2. ;;
  3. ;;  FUNCTION:
  4. ;;  Will sequentially place numerical
  5. ;;  text at the end of a leader, upon
  6. ;;  mouse click.
  7. ;;
  8. ;;  SYNTAX: numCur
  9. ;;
  10. ;;  AUTHOR:
  11. ;;  Copyright (c) 2009, Lee McDonnell
  12. ;;  (Contact Lee Mac, CADTutor.net)
  13. ;;
  14. ;;  PLATFORMS:
  15. ;;  No Restrictions,
  16. ;;  only tested in ACAD 2004.
  17. ;;
  18. ;;  VERSION:
  19. ;;  1.0  ~  05.04.2009
  20. ;;
  21. ;; =======================================
  22. (defun c:numCur (/ *error* vlst ovar doc spc dVars
  23.           tmpVars cObj tBox GLst mPos cPt
  24.           cDis EnPt ArPt1 ArPt2 AngCor vCol
  25.           Verts VertVar )
  26. (vl-load-com)
  27. (defun *error* (msg)
  28.    (redraw)
  29.    (if ovar (mapcar 'setvar vlst ovar))
  30.    (if (not (member msg '("Function cancelled" "quit / exit abort")))
  31.      (princ (strcat "\nError: " (strcase msg)))
  32.      (princ "\n<<-- cancelled -->>"))
  33.    (princ))
  34. (setq vlst '("OSMODE" "CLAYER")
  35.    ovar (mapcar 'getvar vlst))
  36. (setvar "OSMODE" 0)
  37. (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
  38.        spc (if (zerop (vla-get-activespace doc))
  39.              (if (= (vla-get-mspace doc) :vlax-true)
  40.                (vla-get-modelspace doc)
  41.                (vla-get-paperspace doc))
  42.              (vla-get-modelspace doc)))
  43. (or (tblsearch "LAYER" "Num-Text")
  44.      (vla-put-color
  45.    (vla-add
  46.      (vla-get-layers doc) "NumText") acYellow))
  47. (setq dVars '(sNum inNum Pref Suff))
  48. (mapcar '(lambda (x y) (or (boundp x) (set x y))) dVars '(1 1 "" ""))
  49. (setq tmpVars (list (getreal (strcat "\nSpecify Starting Number <" (rtos sNum 2 2) ">: "))
  50.              (getreal (strcat "\nSpecify Increment <" (rtos inNum 2 2) ">: "))
  51.              (getstring t (strcat "\nSpecify Prefix <" (if (eq "" Pref) "-None-" Pref) ">: "))
  52.              (getstring t (strcat "\nSpecify Suffix <" (if (eq "" Suff) "-None-" Suff) ">: "))))
  53. (mapcar '(lambda (x y) (or (or (not x) (eq "" x)) (set y x))) tmpVars dVars)
  54. (while (and (setq cEnt (car (entsel "\nSelect Curve to Label: ")))
  55.          (member (cdr (assoc 0 (entget cEnt)))
  56.            '("LINE" "POLYLINE" "LWPOLYLINE" "SPLINE" "ARC" "ELLIPSE" "CIRCLE")))
  57.    (vla-EndUndoMark doc)
  58.    (vla-StartUndomark doc)
  59.    (setq cObj (vlax-ename->vla-object cEnt)
  60.      tBox (textbox (list (cons 1 (setq tStr (strcat Pref (rtos sNum 2 0) Suff))))))
  61.    (princ "\nSelect Location for Leader... ")
  62.    (while (= (car (setq GLst (grread T 1))) 5)
  63.      (redraw)
  64.      (if (= (type (setq mPos (cadr GLst))) 'list)
  65.    (progn
  66.      (setq cPt (vlax-curve-getClosestPointto cObj mPos)
  67.        cAng (angle cPt mPos)
  68.        cDis (distance cPt mPos)
  69.        EnPt (polar cPt cAng (/ cDis 1.5))
  70.        ArPt1 (polar cPt (+ cAng (/ pi 12)) (/ cDis 8.0))
  71.        ArPt2 (polar cPt (- cAng (/ pi 12)) (/ cDis 8.0))
  72.        AngCor (fix (rem (abs (* 10.0 (fix (* 18.0 (/ cAng pi))))) 255.0)))
  73.      (or (and (< AngCor 1.0) (setq vCol 1)) (setq vCol AngCor))
  74.      (grvecs (list vCol cPt EnPt vCol cPt ArPt1 vCol cPt ArPt2)))))
  75.    (princ "\nSelect Leader Size & Angle...")
  76.    (while (= (car (setq GLst (grread T 1))) 5)
  77.      (redraw)
  78.      (if (= (type (setq mPos (cadr GLst))) 'list)
  79.    (progn
  80.      (setq cAng (angle cPt mPos)
  81.        cDis (distance cPt mPos)
  82.        ArPt1 (polar cPt (+ cAng (/ pi 12)) (/ cDis 8.0))
  83.        ArPt2 (polar cPt (- cAng (/ pi 12)) (/ cDis 8.0)))
  84.      (grvecs (list vCol cPt mPos vCol cPt ArPt1 vCol cPt ArPt2)))))
  85.    (setq Verts (apply 'append (list cPt mPos))
  86.      VertVar (vlax-make-variant
  87.            (vlax-safearray-fill
  88.              (vlax-make-safearray
  89.            vlax-vbdouble
  90.            (cons 0 (1- (length Verts))))
  91.              Verts)))
  92.    (vla-addleader spc VertVar
  93.      (vla-addMText spc
  94.    (vlax-3d-Point
  95.      (polar mPos 0 (/ (getvar "TEXTSIZE") 2.0)))
  96.    (- (caadr tBox) (caar tBox)) tStr) acLineWithArrow)
  97.    (redraw)
  98.    (setq sNum (+ sNum inNum)))
  99. (mapcar 'setvar vlst ovar)
  100. (redraw)
  101. (princ))
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2022-7-6 15:35:20 | 显示全部楼层
CAB在theswamp有一辆很棒的车。我的办公室每天使用的组织。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:38:18 | 显示全部楼层
我只是喜欢摆弄GRREAD、GRVECS等命令
回复

使用道具 举报

22

主题

272

帖子

254

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
111
发表于 2022-7-6 15:42:01 | 显示全部楼层
CAB例程的文件名是什么?
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2022-7-6 15:44:33 | 显示全部楼层
http://www.theswamp.org/index.php?topic=518.0
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 15:47:53 | 显示全部楼层
和http://asmitools.com/Files/Programs.html
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 15:51:18 | 显示全部楼层
谢谢
请确保在此处尝试版本26
http://www.theswamp.org/index.php?topic=518.msg295901#msg295901
 
还测试了29版,请参阅我的最后一篇文章。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 22:19 , Processed in 2.336107 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表