明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1997|回复: 6

求助一个LSP命令

[复制链接]
发表于 2012-3-15 10:00:51 | 显示全部楼层 |阅读模式
学习lisp几天,今天试着写了一个 生成圆孔及中心线,并且生成块的语句。可是并不能生成图块,请各位哥哥姐姐能够指导。
语句如下:
defun c:k (); 绘孔
  (princ "请选择一点")
  (setq pt1 (getpoint))
  (setq md (getdist pt1 "\ndia:"));要求输入螺栓大小值
  (setq k1 command "circle" pt1 "d" (+ md 1.5 )) ;完成画圆
  (setq pt2 (polar pt1 0 (+ (/ md 2) 5.75)))
  (setq pt3 (polar pt1 pi (+ (/ md 2) 5.75)))
  (setq pt4 (polar pt1 (/ pi 2) (+ (/ md 2) 5.75)))
  (setq pt5 (polar pt1 (* pi 1.5) (+ (/ md 2) 5.75)))
  (setq k2 command "line" pt2 pt3 "")
  (setq k3 command "line" pt4 pt5 "")
  (setq sss (list k1 k2 k3))
  (setq ss (getvar "cdate"))
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (command "block" ss pt1 sss "")
  (setvar "osmode" os)
)

发表于 2012-3-15 11:07:33 | 显示全部楼层
本帖最后由 Andyhon 于 2012-3-15 11:24 编辑


  1. (defun c:k (); 绘孔

  2.   (setq os (getvar "osmode"))
  3.   
  4.   (princ "请选择一点")
  5.   (setq pt1 (getpoint)
  6.         ssK (ssadd)  
  7.   )
  8.   (setq md (getdist pt1 "\ndia:"));要求输入螺栓大小值
  9.   (setvar "osmode" 0)
  10.   (command "circle" pt1 "d" (+ md 1.5 )) ;完成画圆
  11.   (ssadd (entlast) ssK)
  12.   (setq pt2 (polar pt1 0 (+ (/ md 2) 5.75)))
  13.   (setq pt3 (polar pt1 pi (+ (/ md 2) 5.75)))
  14.   (setq pt4 (polar pt1 (/ pi 2) (+ (/ md 2) 5.75)))
  15.   (setq pt5 (polar pt1 (* pi 1.5) (+ (/ md 2) 5.75)))
  16.   (command "line" pt2 pt3 "")
  17.   (ssadd (entlast) ssK)
  18.   (command "line" pt4 pt5 "")
  19.   (ssadd (entlast) ssK)
  20.   (setq ss (getvar "cdate"))
  21.   (command "block" ss pt1 ssK "")
  22.   (setvar "osmode" os)
  23. )
 楼主| 发表于 2012-3-15 11:21:20 | 显示全部楼层
Andyhon 发表于 2012-3-15 11:07

谢谢大侠,原来需要添加到集,认真学习了。
 楼主| 发表于 2012-3-15 12:34:40 | 显示全部楼层
Andyhon 发表于 2012-3-15 11:07

请问一下为什么做成块了自动消失了呢?我不明白
发表于 2012-3-15 13:18:38 | 显示全部楼层
  (command "block" ss pt1 ssK "")
  (command "insert" ss pt1 1 1 0)   ;add this line
  (setvar "osmode" os)
 楼主| 发表于 2012-3-15 13:22:18 | 显示全部楼层
Andyhon 发表于 2012-3-15 13:18
(command "block" ss pt1 ssK "")
  (command "insert" ss pt1 1 1 0)   ;add this line
  (setvar "os ...

谢谢,按照你的方法,已经解决
发表于 2012-3-15 17:37:23 | 显示全部楼层
学习了 非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-25 03:09 , Processed in 0.182400 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表