乐筑天下

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

[编程交流] 高程标记

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-5 23:25:22 | 显示全部楼层 |阅读模式
大家好,
 
好久不写了。。。。
我正在尝试使用此lisp:
http://www.cadlispandtips.com/2011/10/lisp-elevation-marker.html
 
但是,当我按照说明操作时,我得到了一个标高为0的块。
 
我错过什么了吗?
我加载了2个lisp文件并运行EDAT,选择了设置基准的位置,然后运行ELE命令,但块的高程为0。
 
非常感谢您的帮助。。
谢谢
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 00:10:05 | 显示全部楼层
所以我回到了李的例行程序,并对其进行了轻微修改,以显示我们在办公室所做的标高:
 
  1. ;;-----------------------=={ Elevation Marker }==-----------------------;;
  2. ;;                                                                      ;;
  3. ;;  This program continuously prompts the user to specify a point and   ;;
  4. ;;  constructs an elevation marker composed of a variable width         ;;
  5. ;;  polyline & single-line text object at the specified point, with     ;;
  6. ;;  the text content displaying the UCS Y-coordinate of the point.      ;;
  7. ;;                                                                      ;;
  8. ;;----------------------------------------------------------------------;;
  9. ;;  Author:  Lee Mac, Copyright © 2013  -  www.lee-mac.com              ;;
  10. ;;----------------------------------------------------------------------;;
  11. (defun c:em ( / *error* ang hgt len ocs pt1 pt2 pt3 pt4 str )
  12.    (defun *error* ( msg )
  13.        (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
  14.            (princ (strcat "\nError: " msg))
  15.        )
  16.        (princ)
  17.    )
  18.    (setq hgt (getvar 'textsize)
  19.          ocs (trans '(0.0 0.0 1.0) 1 0 t)
  20.          ang (angle '(0.0 0.0) (trans (getvar 'ucsxdir) 0 ocs t))
  21.    )
  22.    (terpri)
  23.    (while (setq pt1 (getpoint "\rSpecify point <exit>: "))
  24.        (setq str (rtos (cadr pt1))
  25.              len (strlen str)
  26.              pt2 (list (car  pt1) (+ (cadr pt1) (* hgt 0.5 (sqrt 3))))
  27.              pt3 (list (- (car pt1) (* hgt len)) (cadr pt2))
  28.              pt4 (list (- (car pt2) (* hgt 0.5 len)) (+ (cadr pt2) hgt))
  29.        )
  30.        (foreach sym '(pt1 pt2 pt3 pt4)
  31.            (set sym (trans (eval sym) 1 ocs))
  32.        )
  33.        (entmake
  34.            (list
  35.               '(000 . "LWPOLYLINE")
  36.               '(100 . "AcDbEntity")
  37.               '(100 . "AcDbPolyline")
  38.               '(090 . 3)
  39.               '(070 . 0)
  40.                (cons 038 (caddr pt1))
  41.                (cons 010 pt1)
  42.               '(040 . 0.0)
  43.                (cons 041 hgt)
  44.                (cons 010 pt2)
  45. [color="red"]                (cons 040 (* hgt 0.01))
  46.                (cons 041 (* hgt 0.01))[/color]
  47. [color="red"]                ;(cons 010 pt3)
  48.                ;(cons 210 ocs)[/color]
  49.            )
  50.        )
  51.        (entmake
  52.            (list
  53.               '(000 . "TEXT")
  54.                (cons 007 (getvar 'textstyle))
  55.                (cons 001 str)
  56.                (cons 050 ang)
  57.                (cons 040 hgt)
  58. [color="red"]                (cons 010 pt3) ; turns text on and off[/color]
  59.                (cons 011 pt4)
  60. [color="red"]               '(072 . 0)[/color]
  61.               '(073 . 2)
  62.                (cons 210 ocs)
  63.            )
  64.        )
  65.    )
  66.    (princ)
  67. )

 
如果有人能帮忙,我需要并希望有一件事是,可以改变标高是否出现在箭头指向下的线的上方和箭头指向上的线的下方。只是我们对很多墙进行了详细设计,有时在墙盖下放置标高非常方便。。
 
谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:40:08 | 显示全部楼层
因为文本只是为了检查pt1 pt2角度,并在末尾移动文本作为额外步骤。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:25 , Processed in 1.009662 second(s), 69 queries .

© 2020-2025 乐筑天下

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