明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 883|回复: 5

[LISP群(2)] 2013-09-16 明经 AutoLISP 编程②(177027547) 群聊记录:[@250563800,@[198526]DZ] ssget完全可以实现这

 关闭 [复制链接]
发表于 2013-9-16 10:14:45 | 显示全部楼层 |阅读模式
Beverage 10:14:45
[@250563800,@[198526]DZ] ssget完全可以实现这个功能阿
 楼主| 发表于 2013-9-16 10:25:56 | 显示全部楼层
[taohuaxiao]风中瑟瑟 10:25:56
请教如何随意画个四角房,使其为各角都为直角
[vormittag]桔子 10:29:28
直接画矩形不行么?
[taohuaxiao]风中瑟瑟 10:30:37
钜形都是正角度的,四角房什么角度的都有。
[vormittag]桔子 10:31:19
ucs换一下不就行了?
[taohuaxiao]风中瑟瑟 10:34:53
就是画房子的时候不能保证都是直角的,在画完之后不是直角的自动变为直角。
[vormittag]桔子 10:35:54
没有定解。
[taohuaxiao]风中瑟瑟 10:36:33
什么意思?
[vormittag]桔子 10:36:37
开始画的都不是直角,想自动变成全部直角有多种解。
[taohuaxiao]风中瑟瑟 10:37:02
就是这个意思。
最好还能闭合。
[taohuaxiao]风中瑟瑟 10:45:18
用lisp该怎么实现啊?
 楼主| 发表于 2013-9-16 10:56:51 | 显示全部楼层
[vormittag]桔子 10:56:51
rtos 的返回值受 dimzin 变量的影响,使用时先把dimzin 设置为零,最后恢复。老生常谈的问题了。
[zhongguola]秋水 11:01:52
还是不行输入文字: ; 错误: 参数类型错误: fixnump: 0.0
[958620832]仁者 11:02:43
(defun c:ls ()
  (setq ss (ssget) len (sslength ss) index 0)
  (setq gr (grread t) mode (car gr) pt (cadr gr) pd t)
  (while pd
    (if (or (= mode 5) (= mode 3)) (progn
      (repeat len
        (setq ent (entget (ssname ss index)))
        (setq pmin (cdr (assoc 10 ent)) pmax (cdr (assoc 11 ent)))
        (setq pc (if (= index 0) (osnap pmin "mid")))
        (setq pt (cond ((= (car pmin) (car pmax)) (list (car pmin) (cadr pt))) ((= (cadr pmin) (cadr pmax)) (list (car pt) (cadr pmin)))))
        (if (or (> (car pt) (car pc)) (> (cadr pt) (cadr pc))) (entmod (subst (cons 11 pt) (assoc 11 ent) ent)))
        (if (or (< (car pt) (car pc)) (< (cadr pt) (cadr pc))) (entmod (subst (cons 10 pt) (assoc 10 ent) ent)))
        (setq pt1 (if (not pt1) pt))
        (if (= code 5) (command "line" pt pt1 ""))
        (setq index (+ index 1)))
        (if (= code 3) (setq pd nil))))
    (if (or (= mode 25) (= mode 11)) (setq pd nil)))
  (princ))
[958620832]仁者 11:04:03
程序倒挺简单的,只是出现了一点小问题,*error* 函数中出错参数类型错误: lentityp nil
[958620832]仁者 11:04:48
什么叫参数类型错误啊,前辈们
[958620832]仁者 11:05:44
(defun c:ls ()
  (setq ss (ssget) len (sslength ss) index 0)
  (setq gr (grread t) mode (car gr) pt (cadr gr) pd t)
  (while pd
    (if (or (= mode 5) (= mode 3)) (progn
      (repeat len
        (setq ent (entget (ssname ss index)))
        (setq pmin (cdr (assoc 10 ent)) pmax (cdr (assoc 11 ent)))
        (setq pc (if (= index 0) (osnap pmin "mid")))
        (setq pt (cond ((= (car pmin) (car pmax)) (list (car pmin) (cadr pt))) ((= (cadr pmin) (cadr pmax)) (list (car pt) (cadr pmin)))))
        (if (or (> (car pt) (car pc)) (> (cadr pt) (cadr pc))) (entmod (subst (cons 11 pt) (assoc 11 ent) ent)))
        (if (or (< (car pt) (car pc)) (< (cadr pt) (cadr pc))) (entmod (subst (cons 10 pt) (assoc 10 ent) ent)))
        (setq pt1 (if (not pt1) pt))
        (if (= code 5) (command "line" pt pt1 ""))
        (setq index (+ index 1)))
        (if (= code 3) (setq pd nil))))
    (if (or (= mode 25) (= mode 11)) (setq pd nil)))
  (princ))
[958620832]仁者 11:06:26
(defun c:ls ()
  (setq ss (ssget) len (sslength ss) index 0)
  (setq gr (grread t) mode (car gr) pt (cadr gr) pd t)
  (while pd
    (if (or (= mode 5) (= mode 3)) (progn
      (repeat len
        (setq ent (entget (ssname ss index)))
        (setq pmin (cdr (assoc 10 ent)) pmax (cdr (assoc 11 ent)))
        (setq pc (if (= index 0) (osnap pmin "mid")))
        (setq pt (cond ((= (car pmin) (car pmax)) (list (car pmin) (cadr pt))) ((= (cadr pmin) (cadr pmax)) (list (car pt) (cadr pmin)))))
        (if (or (> (car pt) (car pc)) (> (cadr pt) (cadr pc))) (entmod (subst (cons 11 pt) (assoc 11 ent) ent)))
        (if (or (< (car pt) (car pc)) (< (cadr pt) (cadr pc))) (entmod (subst (cons 10 pt) (assoc 10 ent) ent)))
        (setq pt1 (if (not pt1) pt))
        (if (= code 5) (command "line" pt pt1 ""))
        (setq index (+ index 1)))
        (if (= code 3) (setq pd nil))))
    (if (or (= mode 25) (= mode 11)) (setq pd nil)))
  (princ))
 楼主| 发表于 2013-9-16 15:26:42 | 显示全部楼层
[zhongguola]秋水 15:26:42
新建一个楷体为什么不行?(command "style" "楷体" "楷体" "" "0.85" "0" "" "")
 楼主| 发表于 2013-9-16 18:53:58 | 显示全部楼层
[vormittag]桔子 18:53:58
rectangle
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 03:34 , Processed in 0.172273 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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