- UID
- 763408
- 积分
- 30
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2016-8-25
- 最后登录
- 1970-1-1
|
悬赏20D豆未解决
本帖最后由 newer 于 2021-2-4 05:03 编辑
平时画图经常使用几类块,使用块插入insert命令会弹出交互式窗口,使用CTRL+C/V觉得也不方便。
想编程做个简化LSP程序,比如CRXG.lsp(插入巡更点图块的快捷命令),输入命令再选择某点,可直接插入指定图块。
程序是参考以前论坛坛主编写代码中的InsertBlock ( strBlockName listInsertPoint floatRotateAngle )函数。
目前使用中出现问题,提示错误,代码如下。请高手帮忙指导点拨。谢谢!
;;==============================crxg 插入巡更点图块(打开的dwg文件上已有 巡更点 块了)
(defun c:crxg()
(setq strBlockName "巡更点")
(setq pt (getpoint "\n请选择要插入新块的位置:"))
(setq floatBlockBoundingBoxTargetMinPointX (car pt)
floatBlockBoundingBoxTargetMinPointY (cadr pt)
(setq listInsertPoint (list floatBlockBoundingBoxTargetMinPointX floatBlockBoundingBoxTargetMinPointY ) )
(InsertBlock strBlockName listInsertPoint 0)
;;以块缩略图允许放置范围的左下角点为块缩略图的基点插入图块
)
;;;------------------------------------------------------------------------
;;;在当前图层、当前空间插入块
;;;调用形式 ( InsertBlock 显示 插入点 旋转角度 )
;;;成功时,返回dxf组码,否则返回nil
(defun InsertBlock ( strBlockName listInsertPoint floatRotateAngle )
(entmake (list '(0 . "INSERT")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockReference")
(cons 2 strBlockName)
(cons 10 listInsertPoint)
(cons 50 floatRotateAngle)))
)
|
-
-
crxg.lsp
919 Bytes, 下载次数: 10, 下载积分: D豆 -1 , 活跃度 1
LSP文件
-
-
CRXG.rar
13.65 KB, 下载次数: 10, 下载积分: D豆 -1 , 活跃度 1
dwg文件
|