乐筑天下

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

[编程交流] pareatlb公司

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:01:07 | 显示全部楼层 |阅读模式
嗨,这是我第一次参加论坛。我不是程序员,但我不是
知道该做什么。
我有一个lisp,它可以在autocad 11 windows xp中运行,但在windows 7中运行
不要工作。我能做什么???也许你能帮我。
 
这是lisp:
  1. (defun C:PAREATLB ( / en cmdname fld txt fc tblset tblobj row col pt
  2.                whatAcadVer)
  3. (defun whatAcadVer ( / Aver)
  4. (setq Aver (atof (substr (getvar "ACADVER") 1 4)))
  5. (cond ((= Aver 17.1) 2008)((= Aver 17.0) 2007)((= Aver 16.2) 2006)
  6.     ((= Aver 16.1) 2005)((= Aver 16.0) 2004)((= Aver 15.06) 2002)((= Aver
  7. 18.1) 2011)
  8.     (t O)))
  9. (vl-load-com)
  10. (or *SCALE* (setq *SCALE* 0.0001))
  11. (or *PREC* (setq *PREC* 2))
  12. (or *TEXTSIZE* (setq *TEXTSIZE* 30))
  13. (or *SUFF* (setq *SUFF* ""))(or *PREF* (setq *PREF* ""))
  14. (setq *SUFF* (vl-princ-to-string *SUFF*))
  15. (setq *PREF* (vl-princ-to-string *PREF*))
  16. (princ "\nscale factor = ")(princ *SCALE*)
  17. (princ " precision = ")(princ *PREC*)
  18. (princ " text height = ")(princ *TEXTSIZE*)
  19. (princ " prefix= ")(princ *PREF*)(princ " suffix= ")(princ *SUFF*)
  20. (initget "Polyline Setting sElect Polyline Setting sElect _Polyline
  21. Setting sElect Polyline Setting sElect")
  22. (and
  23.   (or ;_ >check-up a version
  24.     (> (whatAcadVer) 2005)
  25.     (alert "\nneed autocad 2006 at least")
  26.     ) ;_ < check-up a version
  27.   (or ;_ >
  28.   (while (= (setq cmdname (getkword "\nselect or draw
  29. [Polyline/Setting/sElect] <sElect>: "))
  30.             "Setting")
  31.     (princ "\nnew scale factor <")(princ *SCALE*)(princ "> : ")
  32.     (initget 6)
  33.     (if (setq en (getdist))(setq *SCALE* en))
  34.     (princ "\nnew precision <")(princ *PREC*)(princ "> : ")
  35.     (initget 4)
  36.     (if (setq en (getint))(setq *PREC* en))
  37.     (princ "\nnew text height <")(princ *TEXTSIZE*)(princ "> : ")
  38.     (initget 6)
  39.     (if (setq en (getdist))(setq *TEXTSIZE* en))
  40.     (princ "\nprefix (space-clean) <")(princ *PREF*)(princ "> : ")
  41.     (setq en (getstring t))(if (= en "")(setq en *PREF*))
  42.     (if (= en " ")(setq en ""))
  43.     (if (= (substr (vl-string-left-trim "\/" en) 1 2) "U+")
  44.     (setq en (strcat "\" (vl-string-left-trim "\/" en))))(setq *PREF*
  45. en)
  46.     (princ "\nsuffix (space-clean) <")(princ *SUFF*)(princ "> : ")
  47.     (setq en (getstring t))(if (= en "")(setq en *SUFF*))
  48.     (if (= en " ")(setq en ""))
  49.     (if (= (substr (vl-string-left-trim "\/" en) 1 2) "U+")
  50.     (setq en (strcat "\" (vl-string-left-trim "\/" en))))(setq *SUFF*
  51. en)
  52.     (initget "Polyline Setting sElect Polyline Setting sElect _Polyline
  53. Setting sElect Polyline Setting sElect")
  54.     )
  55.   t
  56.   ) ;_ <
  57. (cond
  58.   ((= cmdname "Polyline")(setvar "CMDECHO" 1)(command "_.PLINE")
  59.    (while (> (getvar "CMDACTIVE") 0)(command pause))
  60.    (setq en (entlast))
  61.    )
  62.   ((or (null cmdname)(= cmdname "sElect"))
  63.        (princ "\nselect polyline,circl,spline ellipse,arc ")
  64.        (and
  65.          (setq tblset (ssget "_:S:E" '((0 .
  66. "LINE,*POLYLINE,ARC,SPLINE,ELLIPSE,CIRCLE"))))
  67.          (setq en (ssname tblset 0))
  68.          )
  69.    )
  70.   (t nil)
  71.   )
  72. ;_
  73. (setq fld (strcat "%<\\AcObjProp Object(%<\\_ObjId "
  74.            (vl-princ-to-string(vla-get-objectid (vlax-ename->vla-object
  75. en)))
  76.               ">%).Area \\f "%lu2%ps["*PREF* "," *SUFF*
  77.               "]%pr"(itoa *PREC*) "%ct8["(vl-princ-to-string
  78. *SCALE*)"]">%"
  79.               ) ;_ strcat
  80.         ) ;_ setq
  81.   ;_
  82. (setq txt (entmakex
  83.     (list
  84.       (cons 0 "TEXT")
  85.       (cons 100 "AcDbEntity")
  86.       (cons 100 "AcDbText")
  87.       (cons 72 0)           ;_
  88.       (cons 1 fld)
  89.       ;(cons 7 style) ;_
  90.       ;(cons 8 layer) ;_
  91.       (cons 10 '(0 0 0))
  92.       (cons 11 '(0 0 0))
  93.       (cons 40 *TEXTSIZE*) ;_
  94.       ) ;_ list
  95.     ) ;_ entmakex
  96.         )
  97. ;_
  98. (setvar "cmdecho" 0)
  99. (vl-cmdf "_updatefield" txt "")
  100. (princ "\n select insert point:")
  101. (vl-cmdf "_.copybase" (trans '(0 0 0) 0 1) txt "" "_.erase" txt ""
  102. "_.pasteclip" "_none" pause)
  103. ;_
  104. (setq txt (entlast) pt (getvar "LASTPOINT"))
  105. (or
  106.   (and ;_
  107.     (setq  tblobj nil tblset (ssget "_X" '((0 . "ACAD_TABLE"))))
  108.     (setq lst (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar
  109. 'cadr (ssnamex tblset)))))
  110.     (mapcar '(lambda (x)
  111.          (or tblobj
  112.              (and
  113.                (= :vlax-true (vla-HitTest x
  114.                              (vlax-3d-point (trans pt 1 0))
  115.                              (vlax-3d-point (trans (getvar "VIEWDIR") 1
  116. 0))
  117.                              'row 'col))
  118.                (setq tblobj x)
  119.                )
  120.              )
  121.          )
  122.       lst)
  123.     tblobj row col
  124.     (or (vla-SetText tblobj row col fld) t)
  125.     (entdel txt)
  126.     )
  127.   (and ;_
  128.     (setq txt (vlax-ename->vla-object txt))
  129.     (vlax-write-enabled-p txt)
  130.     (vlax-method-applicable-p txt 'FieldCode) ;_
  131.     (vlax-property-available-p txt 'TextString)
  132.     (vlax-put txt 'TextString fld)
  133.     )
  134.   )
  135. )
  136. (setvar "filedia" 1)
  137. (princ)
  138. )

 
谢谢
纳德尔-b@zahav.net.il
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 11:53:50 | 显示全部楼层
纳德尔
我也欢迎你!
我添加了代码标签,如您所见,现在看起来更好了。
我会删除邮件末尾的电子邮件地址;这是一个让收件箱充满垃圾邮件的好方法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 23:57 , Processed in 1.275654 second(s), 57 queries .

© 2020-2025 乐筑天下

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