乐筑天下

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

[编程交流] 阻止对象插入点?

[复制链接]

13

主题

126

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 12:57:27 | 显示全部楼层 |阅读模式
我试图修改李·麦克几周前为我写的LISP,我用它在与现有块相同的插入点插入一个块。Lee的代码使用excell电子表格作为输入,用于在图形中查找块列表。由于代码已经找到了每个块,我认为它应该也能够插入新块。我就是不知道如何在不让用户点击的情况下编码插入点。
 
  1. (defun c:BLOCKINSERT (/ file nl lst Minp Maxp pts elst ipt)
  2. (vl-load-com)
  3. (if (setq file
  4.             (getfiled "Select Text File"
  5.                       (if *load
  6.                         *load
  7.                         ""
  8.                       )
  9.                       "txt"
  10.                       8
  11.             )
  12.      )
  13.    (progn
  14.      (setq *load file
  15.            file  (open file "r")
  16.      )
  17.      (while (setq nl (read-line file))
  18.        ;(princ nl)
  19.        (setq lst (cons (car (StrBrk nl 9)) lst))
  20.      )
  21.      (close file)
  22.      (princ "\n<< Closed file >>")
  23.      (if (setq elst (vl-remove-if
  24.                       'null
  25.                       (mapcar 'handent
  26.                               (mapcar
  27.                                 (function
  28.                                   (lambda (x)
  29.                                     (substr x 2)
  30.                                   )
  31.                                 )
  32.                                 (reverse lst)
  33.                               )
  34.                       )
  35.                     )
  36.          )
  37.        (foreach Obj (mapcar 'vlax-ename->vla-object elst)
  38.          (vla-getBoundingBox Obj 'Minp 'Maxp)
  39.          (setq pts (mapcar 'vlax-safearray->list (list Minp Maxp)))
  40.          (vla-ZoomCenter
  41.            (vlax-get-acad-object)
  42.            (vlax-3D-point
  43.              (polar (car pts)
  44.                     (apply 'angle pts)
  45.                     (/ (apply 'distance pts) 2.)
  46.              )
  47.            )
  48.            400.
  49.          )
  50.          [color=red](setq ipt (assoc 10 entget (Obj))) [/color]
  51. [color=red]         (command "-insert" "KEY_MG_RED" ipt 1 1 0)[/color]
  52.        )
  53.      )
  54.    )
  55.    (princ "\n<< No File Selected >>")
  56. )
  57. (princ)
  58. )
  59. (defun StrBrk (str chrc / pos lst)
  60. (while (setq pos (vl-string-position chrc str))
  61.    (setq lst (cons (substr str 1 pos) lst)
  62.          str (substr str (+ pos 2))
  63.    )
  64. )
  65. (reverse (cons str lst))
  66. )

 
有人能给我指出正确的方向吗?
 
格伦
回复

使用道具 举报

37

主题

125

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
190
发表于 2022-7-6 13:09:09 | 显示全部楼层
 
上述代码应为
  1. [color=red](setq ipt (cdr(assoc 10 (entget (Obj))))[/color])
  2. [color=red]         (command "-insert" "KEY_MG_RED" ipt 1 1 0)[/color]

如果Obj实体没有来自选择集,则该行将为
 
  1. [color=red](setq ipt (cdr(assoc 10 (entget(car (Obj))))[/color]))
  2. [color=red]         (command "-insert" "KEY_MG_RED" ipt 1 1 0)[/color]

 
希望有帮助
回复

使用道具 举报

13

主题

126

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 13:23:07 | 显示全部楼层
使用这两个中的第一个,我得到了错误:
命令:;错误:功能错误:#
 
 
使用第二个,我得到:
命令:;错误:功能错误:#
 
我不认为obj实体来自选择集,尽管我不完全确定。
 
谢谢
格伦
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:29:16 | 显示全部楼层
Obj是通过foreach函数表示为符号的VLA对象。
 

 
  1. (foreach [b]Obj[/b] ...
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:43:25 | 显示全部楼层
 
我希望不是!。。。我将其编码为txt文件。。
回复

使用道具 举报

13

主题

126

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 13:49:39 | 显示全部楼层
哎呀,真的,我只是用Excel修改了txt文件,以至于我忘了它们是不一样的。
 
我知道你过去曾发布过解释VLA函数的来源,但我的搜索一直徒劳。请转寄好吗?我还读到,你有一个LISP常见问题解答,它是“即将推出”是可用的吗?
 
谢谢
格伦
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:59:10 | 显示全部楼层
显然,有几个站点可以解释VL功能,下面是几个站点:
 
http://www.afralisp.net/
 
VL方法差异
 
VL中的属性
 
图纸空间/模型空间对象
 
至于LISP常见问题解答,在向公众开放之前需要得到其他成员的批准,而这一批准似乎需要一些时间。
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:08 , Processed in 0.324191 second(s), 66 queries .

© 2020-2025 乐筑天下

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