明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 明经快报

[LISP群(1)] 2013-07-28 明经 AutoLISP 编程(102918348) 群聊记录:谁知道注释性怎么用的?

 关闭 [复制链接]
 楼主| 发表于 2013-7-28 13:37:21 | 显示全部楼层
[500w008]500w008 13:37:21
(defun c:cc ( / sss si i pt1 pt2 pt_10 pt_11 ptlt pt_in )
 (setvar "osmode" 0)
 (setvar "cmdecho" 0)
 (graphscr)
 (COMMAND "LAYER" "MAKE" "flj" "COLOR" "2" "flj" "LT" "continuous" "flj" "")
 (setq pt1 (getpoint "\n 请输入点pt1:"))
 (setq pt2 (getpoint "\n 请输入点pt2:"))
 (setq sss (ssget "f" (list pt1 pt2) '((0 . "line") (8 . "*doet*,*axis*"))))
 (setq si 0 i 0 ptlt'())
 (repeat (sslength sss)
   (progn
     (setq pt_10 (cdr (assoc 10 (entget(ssname sss si)))))
     (setq pt_11 (cdr (assoc 11 (entget(ssname sss si)))))
     (setq pt_in (inter pt1 pt2 pt_10 pt_11))
     (setq ptlt (cons pt_in ptlt))
   )
  (setq si (1+ si))
 )
  (while (setq pt_n (ssname ptlt i))
     (setq g_lst (cons (cdr (assoc 10 (entget pt_n))) g_lst) i (1+ i))
  )
 (setq nlt (vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
 (foreac e nlt 
  (apply '(lambda (x) (setq dis_1 (distance 
 (princ)
)
(defun wr_l ();写钢筋写字
(if (=> dis_1 dis_n) (setq 0.25d (/ dis_1 4)) (setq 0.25d (/ dis_n 4)))
(setq ang_g (angle pt1 pt2))
(setq pt_z (polar pt_in ang_g 0.25d)
      pt_y (polar pt_in ang_g (* -1 0.25d))
      pt_gz (polar pt_z (+ ang_g 45) 75)
      pt_gy (polar pt_y (+ ang_g 135) 75)
      pt_tz (polar pt_z ang_g (* 0.25d 0.5))
      pt_ty (polar pt_z ang_g (* 0.25d -0.5))
      pz_z  (polar pt_tz (+ ang_g 90) 100)
      pz_y  (polar pt_ty (+ ang_g 90) 100) 
)
(tx_bj pz_z (* 0.25d 0.5))
(tx_bj pz_y (* 0.25d 0.5))
(command "pline"  pt_gz pt_z pt_y pt_gy "")
(setq flj (entlast))
(command "chrop" flj "la" flj "")
(princ)
)

(defun tx_bj (pzy sz / );创建文字
(entmake (list '(0 . "TEXT");字形式TEXT MTEXT
               '(100 . "AcDbEntity") 
               '(100 . "AcDbTex")
               '(67 . 0) 
               '(7 . "STANDARD")
                (cons 2 name) 
                (cons 1 sz) 
                (cons 40 300);字高 
                (cons 41 0.7)
                (cons 11 pzt) 
               '(3 . "romans.shx") 
               '(4 . "Hztxts.shx")
        )
)
(entmake tx_bj)
 (princ)
)
 楼主| 发表于 2013-7-28 14:24:14 | 显示全部楼层
[野狼谷]笨鸟 14:24:14
好像不好使??
 楼主| 发表于 2013-7-28 14:35:45 | 显示全部楼层
[dcl1214]昌立 14:35:45
(while (= 1 (getvar "cmdactive")) (command pause))
这句的作用是啥
[野狼谷]笨鸟 14:36:05
终止交互,用在pline上
[dcl1214]昌立 14:36:18
[野狼谷]笨鸟 14:37:46
(command "LINE" (getpoint) "W" 0.2 "")
               (while (> (getvar "CMDACTIVE") 0) (command AUSE))
[dcl1214]昌立 14:38:04
[dcl1214]昌立 14:45:28
[qqimg]201307/{B8E08E02-956F-37F4-3D0A-92A0BFA599E6}.jpg[/qqimg]
如何批量操作啊?
我每一行操作的,很繁琐
[vormittag]桔子 14:50:08
mapcar
[dcl1214]昌立 14:50:42
我以为有有快捷的引用方式呢
就像批量注释一样的
[dcl1214]昌立 14:52:52
这是注释嘛
[pzweng][pzweng]路人 14:54:02
你试试
[dcl1214]昌立 14:54:49
我试试
 楼主| 发表于 2013-7-28 15:12:49 | 显示全部楼层
[dcl1214]昌立 15:12:49
(setvar "DIMSTYLE" 中线标注)
这个变量拒绝
怎么回事?
加引号也是拒绝
[vormittag]桔子 15:14:02
只读,不能写
[dcl1214]昌立 15:14:22
要置为当前该怎么写
(if (not (tblsearch "DIMSTYLE" "中线标注"))
  (progn
    (command "-dimstyle" "s" "中线标注")
     (setvar "DIMSTYLE" 中线标注)
    )
)
[vormittag]桔子 15:15:55
dimstyle的命令里就有啊
[dcl1214]昌立 15:16:13
我试试
[vormittag]桔子 15:18:10
不想用command 就用这个:
(vla-put-ActiveDimStyle
   (vla-get-ActiveDocument 
      (vlax-get-acad-object)) 
   (vlax-ename->vla-object 
       (tblobjname "DIMSTYLE" dstylename)))
[dcl1214]昌立 15:18:43
command在很多版本上报错,不知道咋回事
[vormittag]桔子 15:20:34
有些系统变量不同时,命令的需要的参数及顺序有区别。用command函数写程序是不太稳定的。
[dcl1214]昌立 15:21:12
我们都是菜鸟,只会command
 楼主| 发表于 2013-7-28 15:33:12 | 显示全部楼层
[dcl1214]昌立 15:33:12
[qqimg]201307/{57A470F8-A762-0E96-4AD2-9FDA4F709039}.jpg[/qqimg]
cad总是跳出来一个样式替代
怎么回事
删除了,又出来了
[vormittag]桔子 15:34:09
你改了跟这个标注样式有关的系统变量。
[dcl1214]昌立 15:34:35
修改一个就会跳出来?
[vormittag]桔子 15:35:20
只要跟标注样式有关的系统变量和标注样式定义时确定的值不一样就会跳出来。
[dcl1214]昌立 15:35:46
但是跳出来后,这个无法用啊
[vormittag]桔子 15:36:08
一样用,有啥区别?
[dcl1214]昌立 15:36:09
本来设置好的样式,被这个样式替代给覆盖了
我看了,这个样式替代里面的设置不是我要的
[vormittag]桔子 15:36:44
你改系统变量的时候注意要复原啊。
 楼主| 发表于 2013-7-28 17:00:45 | 显示全部楼层
[ZZXXQQ] 17:00:45
样式替代是临时的。如果想要设置到当前样式可以:
(command "DIMSTYLE" "S" (getvar"DIMSTYLE") "y")
 楼主| 发表于 2013-7-28 20:26:23 | 显示全部楼层
[zk2140]Kevin 20:26:23
求指教:cui自定义菜单加载成功,但CAD上面的菜单栏没有显示自定义的菜单
[ZZXXQQ] 20:27:04
菜单咋写的?
是啥菜单?
 楼主| 发表于 2013-7-28 21:11:40 | 显示全部楼层
[LC100]建筑设计 21:11:40
(defun c:tes (/ OS 4 D)
  (IF (NULL date) (setq date 1))
  (setq d (getdist (strcat " 矩形宽度:")));这一句为什么出错了?
  (if (NULL d) (setq d date) (SETQ date D))
  );dn
[LC100]建筑设计 21:12:15
(defun c:tes (/ OS 4 D)
  (IF (NULL date) (setq date 1))
  (setq d (getdist (strcat " 矩形宽度:")))
  ;上面这一句为什么出错了?
  (if (NULL d) (setq d date) (SETQ date D))
  );dn
[ZZXXQQ] 21:20:53
date ?是否与什么东东冲突了
[LC100]建筑设计 21:21:22
没有冲突吧
[LC100]建筑设计 21:22:07
改成别的也不行
[ZZXXQQ] 21:25:39
(defun c:tes (/ OS 4 D)
  (IF (NULL date) (setq date 1))
  (setq d (getdist (strcat " 矩形宽度:")))
  ;上面这一句为什么出错了?
  (if (NULL d) (setq d date) (SETQ date D))
  )
[ZZXXQQ] 21:26:55
(itoa date)
[LC100]建筑设计 21:27:19
好像那里出错了
你操作第一次就可以,第二次就不行了。
设定值后,第二次就不行了。
[LC100]建筑设计 21:28:27
(rtos date 2 2)改成这样就又行了。真晕死哦。
[ZZXXQQ] 21:29:09
数字不能直接出现在strcat中
[LC100]建筑设计 21:31:23
哦。明白了
但是改成你那个只能出现一次啊。
输入值后,你再运行命令就运行不了了。
但改成(rtos date 2 2)这个随时都可以运行。
[ZZXXQQ] 21:32:26
那是变量类型变了从整数变成实数了
[LC100]建筑设计 21:32:40
哦。
 楼主| 发表于 2013-7-28 22:32:16 | 显示全部楼层
[野狼谷]笨鸟 22:32:16
D 是什么?又不是变量,又不是"D"
[LC100]建筑设计 22:32:28
是变量
[野狼谷]笨鸟 22:32:44
(setq d     D
看到了
[LC100]建筑设计 22:32:59
哦。
 楼主| 发表于 2013-7-28 22:44:16 | 显示全部楼层
[野狼谷]笨鸟 22:44:16
求助高手:一直没有太理解出错函数的意义,随着程序越写越多,相互调用,经常程序出错了,不知道是在哪一步哪一个函数出的问题,想定义一个出错函数,当出错是,提示:你所出错在***文件的xxx位置
[pzweng][pzweng]路人 22:46:48
函数错了?
[野狼谷]笨鸟 22:47:19
任何程序在运行中都可能不完全会按照程序设计者预想的方式去运行,程序运行中会出现各种意想不到的情况,AutoLisp提供的标准错误处理函数*error*,仅能告诉你程序运行有了错误,但不能对错误进行善后处理。这对于一个优秀的程序来说,是不能忍受的,为此,我们应当用自定义的错误处理函数来改善这种情况,使程序在出现任何错误情况下都能正确处理!
     ——  作者 Gu_xl   转载请注明出处
[ZZXXQQ] 22:47:20
调试程序时用VLISP不就行了
[野狼谷]笨鸟 22:47:57
还得回到程序开头,把参数预设值进行验证
你的意思是进行变量跟踪??
[野狼谷]笨鸟 22:48:42
有时候一个函数里面套另外一个,另外一个再套另外一个。。。
[ZZXXQQ] 22:48:45
不是,是程序出错时可以选择停止在出错行
[野狼谷]笨鸟 22:49:04
哦???这个功能还没有用过
[野狼谷]笨鸟 22:49:43
我是到cad界面加载的,有些是深层次错误,能够编译,运行到那有问题
[野狼谷]笨鸟 22:50:28
那这么说,我对自定义出错函数又不理解了,为啥大家乐此不疲呢?
就像我经常看到*error*
[pzweng][pzweng]路人 22:51:16
error*是一个函数
[野狼谷]笨鸟 22:51:33
[ZZXXQQ] 22:52:44
你可以不用
[夏生生][x_s_s_1]生无可恋 22:53:06
正解
[ZZXXQQ] 22:53:13
但出错后有些系统变量没恢复
[野狼谷]笨鸟 22:53:19
[夏生生][x_s_s_1]生无可恋 22:53:21
自己用的东西
出错处理给别人用才写
[夏生生][x_s_s_1]生无可恋 22:54:40
自己写的程序自己最清楚
[野狼谷]笨鸟 22:55:17
自己一点要给自己的语句多注释,我发现这个太重要了,时间长了回来看,没有注释太可怕了
[野狼谷]笨鸟 22:57:28
在问高手,lisp能不能生成一个桌面图标应用程序,让调用程序时,不从cad里打开;而是从桌面图标打开,激活cad应用程序。
这个看着才专业呢,期待一下!
[夏生生][x_s_s_1]生无可恋 22:57:58
论坛现成的
[野狼谷]笨鸟 22:58:11
关键字??
[夏生生][x_s_s_1]生无可恋 22:58:12
秋枫大侠的置顶帖吧
自己区搜搜
[野狼谷]笨鸟 22:58:28
哦,谢谢,我找秋枫大侠
[夏生生][x_s_s_1]生无可恋 22:58:53
在置顶,一眼就看得到
我是没看过,错了勿怪
[野狼谷]笨鸟 22:59:15
主要是有时候不知道用啥关键词,不好查
[夏生生][x_s_s_1]生无可恋 23:01:08
[野狼谷]笨鸟 23:09:46
学习了,高人不少
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 08:11 , Processed in 0.169383 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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