乐筑天下

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

[编程交流] 2点高度

[复制链接]

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:29:11 | 显示全部楼层 |阅读模式
你好
 
我需要在路面上增加很多点高度,我想使用lisp。
 
需要在路缘线下添加2个点值。
 
第一个(11.11 ex.)位于路缘石下方,第二个(22.22 ex.)位于路缘石下方。
 
我构建了一个具有2个提示值的块:
 
街道。图纸
 
高度_1=11.11
高度2:22.22
 
此lisp应适用于:
 
1: 拾取插入点。
2: 拾取第一个值(Height_1)
3: 选取第二个值(Height_2)
 
通常我使用follow-lisp,但它一次只能添加一个值。
 
  1. (defun c:CRC (/ sp p)
  2. ;; Tharwat 15.Feb.2016 ;;
  3. (setq sp
  4.         (vlax-get (vla-get-activelayout
  5.                     (vla-get-ActiveDocument (vlax-get-acad-object)))
  6.                   'Block)
  7.        )
  8. (if (tblsearch "BLOCK" "STREET" )
  9.    (while (setq p (getpoint "\nSpecify point :"))
  10.      (vla-put-textstring
  11.        (car (vlax-invoke
  12.               (vla-insertblock
  13.                 sp
  14.                 (vlax-3d-point p)
  15.                 "STREET"
  16.                 1.0
  17.                 1.0
  18.                 1.0
  19.                 0.0)
  20.               'getattributes))
  21.       
  22. (rtos (/ (caddr p) 1000.) 2 2)
  23.        )
  24.      )
  25.    )
  26. (princ)
  27. )(vl-load-com)

 
 
172915gmd65da0561d6mk5.jpg
 
 
提前感谢
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:33:49 | 显示全部楼层
我会使用:
 
  1. (setvar "ATTDIA" 0 )
  2. (setvar "ATTREQ" 1 )
  3. (command "-insert" "STREET" p "1" "1" "0")

 
由于插入块时ATTREQ变量,itll会询问属性。
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:38:41 | 显示全部楼层
谢谢,很遗憾我不知道Lisp代码。你能建议我如何修改lisp吗?
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:41:23 | 显示全部楼层
你好
 
您是否在选取两个点后,将其按顺序写入属性块“STREET”?
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:45:36 | 显示全部楼层
是的,我想这样做。
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:49:11 | 显示全部楼层
  1. (defun c:CRC (/ sp p)
  2. (if (tblsearch "BLOCK" "STREET" )
  3.         (progn
  4.                 (setq p (getpoint "\nSpecify point :"))
  5.                 (setvar "ATTDIA" 0 )
  6.                 (setvar "ATTREQ" 1 )
  7.                 (command "-insert" "STREET" p "1" "1" "0")
  8.         )
  9. )
  10. (princ)
  11. )
  12. (vl-load-com)
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:55:01 | 显示全部楼层
嗨@Aftertouch,
 
这很好,但我需要手动添加值。我想选取2个点,得到z值,并用它填充属性值
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:58:46 | 显示全部楼层
 
  1. (defun c:crc (/ sp p p1 p2 ats)
  2. ;; Tharwat 10.Mar.2017 ;;
  3. (setq sp
  4.         (vlax-get (vla-get-activelayout
  5.                     (vla-get-activedocument (vlax-get-acad-object))
  6.                   )
  7.                   'block
  8.         )
  9. )
  10. (if (tblsearch "BLOCK" "STREET")
  11.    (while (and (setq p (getpoint "\nSpecify insertion point :"))
  12.                (setq p1 (getpoint "\nSpecify 1st point :"))
  13.                (setq p2 (getpoint "\nSpecify 2nd point :"))
  14.           )
  15.      (setq ats (vlax-invoke
  16.                  (vla-insertblock
  17.                    sp
  18.                    (vlax-3d-point p)
  19.                    "STREET"
  20.                    1.0
  21.                    1.0
  22.                    1.0
  23.                    0.0
  24.                  )
  25.                  'getattributes
  26.                )
  27.      )
  28.      (mapcar
  29.        '(lambda (at)
  30.           (vla-put-textstring
  31.             at
  32.             (rtos (/ (caddr (if (= (vla-get-tagstring at) "Height_1")
  33.                               p1
  34.                               p2
  35.                             )
  36.                      )
  37.                      1000.
  38.                   )
  39.                   2
  40.                   2
  41.             )
  42.           )
  43.         )
  44.        ats
  45.      )
  46.    )
  47. )
  48. (princ)
  49. )(vl-load-com)
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 17:02:44 | 显示全部楼层
对不起,我误解了这个问题
回复

使用道具 举报

20

主题

94

帖子

86

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 17:05:28 | 显示全部楼层
Tharwat,谢谢你。
 
我尝试了lisp,但在两个不同的点上得到了相同的高度值,z值不同。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:10 , Processed in 0.552279 second(s), 74 queries .

© 2020-2025 乐筑天下

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