乐筑天下

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

[编程交流] 使用autolisp标记

[复制链接]

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:28:34 | 显示全部楼层 |阅读模式
我的同事制作了这个lsip例程来测量和标记线,但它不起作用,请帮助。
 
  1. (defun C:LF()
  2. (setq en(car (entsel "\n Select Line: ")))
  3. (setq enlist(entget en)
  4.        pt1 (cdr(assoc 10 enlist))
  5.        pt2 (cdr(assoc 11 enlist))
  6.        ang (angle pt1 pt2)
  7.        dis (distance pt1 pt2)
  8. )
  9. (command "Dtext"
  10.    (polar (polar pt1 ang (/ dis 2.0)) (+ ang (/ pi 2.0))(* (getvar"ltscale") 0.0625))
  11.    (* (getvar"ltscale") 0.09375)
  12.    (angtos ang)
  13.    (strcat (rtos (/ dis 12.0) 2 2) "'   " (angtos ang))
  14. )
  15. )  
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 09:32:03 | 显示全部楼层
  1. (defun c:lf (/ p1 p2 di ang ins txt)
  2. (setq p1 (getpoint "\nspecify first point: "))
  3. (setq p2 (getpoint p1 "\nspecify second point: "))
  4. (setq di (distance p1 p2))
  5. (setq ang (angle p1 p2))
  6. (setq ins (getpoint "\nspecify text location: "))
  7. (setq txt (strcat (rtos di 2 2) "' " (angtos ang)))
  8. (command "text" ins 2.5 0 txt)
  9. (princ)
  10. )

 
我刚刚修改了我使用的那个。你需要进一步修改,但我认为这更容易理解发生了什么。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:36:55 | 显示全部楼层
谢谢你做得很好
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:40:07 | 显示全部楼层
有没有可能让它写在建筑而不是十进制
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:42:19 | 显示全部楼层
值得深思。。。
 
  1. (defun c:Test (/ ss)
  2. (if (setq ss (ssget '((0 . "LINE"))))
  3.    ((lambda (i / e l p1 p2 a)
  4.       (while (setq e (ssname ss (setq i (1+ i))))
  5.         (entmake
  6.           (list
  7.             '(0 . "TEXT")
  8.             (cons 10
  9.                   (mapcar (function (lambda (a b) (/ (+ a b) 2.)))
  10.                           (setq p1 (cdr (assoc 10 (setq l (entget e)))))
  11.                           (setq p2 (cdr (assoc 11 l)))
  12.                   )
  13.             )
  14.             (cons 40 (getvar 'textsize))
  15.             (cons 1
  16.                   (strcat (rtos (/ (distance p1 p2) 12.) 4 2)
  17.                           "'   "
  18.                           (angtos (setq a (angle p1 p2)))
  19.                   )
  20.             )
  21.             (cons 50 a)
  22.           )
  23.         )
  24.       )
  25.     )
  26.      -1
  27.    )
  28. )
  29. (princ)
  30. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:46:08 | 显示全部楼层
很好,艾伦,这是我唯一会做的改变-希望你不介意:
 
  1. (defun c:Test (/ ss)
  2. ;; AJ Thompson, angle modified by LeeMac
  3. (if (setq ss (ssget '((0 . "LINE"))))
  4.    ((lambda (i / e l p p1 p2 a)
  5.       (while (setq e (ssname ss (setq i (1+ i))))
  6.         (entmake
  7.           (list
  8.             '(0 . "TEXT")
  9.             (cons 10
  10.               (setq p ; LM
  11.                   (mapcar (function (lambda (a b) (/ (+ a b) 2.)))
  12.                           (setq p1 (cdr (assoc 10 (setq l (entget e)))))
  13.                           (setq p2 (cdr (assoc 11 l)))
  14.                   )
  15.               )
  16.             )
  17.             (cons 40 (getvar 'textsize))
  18.             (cons 1
  19.                   (strcat (rtos (/ (distance p1 p2) 12.) 4 2)
  20.                           "'   "
  21.                           (angtos (setq a (angle p1 p2)))
  22.                   )
  23.             )
  24.             (cons 50 (LM:MakeReadable a)) ; LM
  25.             (cons 72 1) ; LM
  26.             (cons 73 0) ; LM
  27.             (cons 11 p) ; LM
  28.           )
  29.         )
  30.       )
  31.     )
  32.      -1
  33.    )
  34. )
  35. (princ)
  36. )
  37. (defun LM:MakeReadable ( a )
  38. ;; © Lee Mac 2010
  39. (cond
  40.    (
  41.      (and (> a (/ pi 2)) (<= a pi))
  42.      (- a pi)
  43.    )
  44.    (
  45.      (and (> a pi) (<= a (/ (* 3 pi) 2)))
  46.      (+ a pi)
  47.    )
  48.    (
  49.      a
  50.    )
  51. )
  52. )

 
 
我终于进入了entmake/mod!谢谢李和艾伦
 
____
很抱歉编辑了这么多。。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:50:25 | 显示全部楼层
谢谢我不想再要求你们了,因为你们已经为我做了这么多了,但有没有可能让你们的程序写成10'-6“而不是10 1/2”。我是一个autolisp新手,不知道自己怎么做
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:53:08 | 显示全部楼层
哦,没关系,我明白了
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:56:14 | 显示全部楼层
谢谢大家的帮助
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 09:57:36 | 显示全部楼层
 
不客气。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 03:19 , Processed in 0.626875 second(s), 72 queries .

© 2020-2025 乐筑天下

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