作者sjgau (sjgau)
看板Cad_Cae
标题Re: [心得] AutoCAD 物件锁点之鬼打墙事件…
时间Fri Oct 2 22:08:29 2009
/*
视标注型式的设定而定,会自动产生直径标注与半径标注的中心标记与中心线。只有标注
线被置於圆或弧的外部时,才会建立它们。您可以使用 DIMCENTER 指令,直接建立中心
线与中心标记。
您可以在「修改标注型式」对话方块的「符号与箭头」页签上,於「中心标记」下,控制
中心线与中心标记的大小与可见性。您还可以使用 DIMCEN 系统变数存取此设定。
*/
以上,是AutoCAD 2010, 关於 系统变数 DIMCEN 的说明,
你可以参考以下。
在 任何一个版本里面,在 AUTOCAD 里面,按F1 即可进入
AUTOCAD 所提供的说明。
我有测试你提供的程式,原则上OK.
有机会的话,我可以免费提供你 第二次的教学,
我想以数个实际的范例,阐述 海龟画图的概念,
应用在 程式设计上的实际范例。
※ 引述《phragmite (Θ.Θ)》之铭言:
: 仍在迷惑当中的新手一点小小心得:
: 这篇文章原本是要来求助的,不过字打着打着,想起高老师有句原本让我
: 以为无关紧要的话…一个动作,问题解决了八成。故事是这样的:一星期
: 前三小时的课让人了解到在 acad 中使用 lisp、script 配合高阶语言的
: 魅力,所以赶紧买了书回来看。可是才刚练习写个简单的中心线的程式,
: 马上就遇到鬼打墙。有兴趣往下看的板友,可以先载入程式试试看。原先
: 用意是想在点击圆後可以画出突出圆周2单位长的十字线:
: (defun c:cline(/ dat rad cpt len ept wpt spt npt)
: (setvar "cmdecho" 0)
: (setq dat (entget (car (entsel "\nSelect a circle to draw centerlines..."))))
: (setq rad (cdr (assoc 40 dat)))
: (setq cpt (cdr (assoc 10 dat)))
: (setq rad (+ rad 2))
: ; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄here is still in modifying by ph.
: (setq ept (polar cpt 0 rad))
: (setq wpt (polar cpt pi rad))
: (setq spt (polar cpt (* pi 1.5) rad))
: (setq npt (polar cpt (* pi 0.5) rad))
: (command "line" ept wpt "" "line" spt npt "")
: (prin1)
: )
: 仔细检查过一切ok,可是执行的时侯却只看到圆心上一个光点,并且回应
: 讯息:「建立了长度为零的线」。我取消区域变数宣告,把每个变数值都
: 查过了,想破了头还是找不出问题。更离奇的是若在命令列下:
: (command "line" '(0 0 0) ept) 或 (command "circle" wpt [任意值])
: 原本以为会出现在 ept wpt spt npt位置的,变成跑到圆心位置上。最後
: 索性把底线那一行改成 (setq rad (* rad 1.4)) 居然就可以执行。
: 用加的不行、用乘的就可以,一点道理也没有…。忽然想起 sjgau 说过:
: 「有很多错误都是因为物件锁点使用不当造成的」看见我的物件锁点果然
: 开着,半信半疑地按了F3……BINGO!!! 虽然现在还是不晓得为什麽选了
: 锁中心点会产生这样的结果、也不晓得为什麽用乘的就可以执行,不过就
: 问题本身而言算是解决了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.231.84.22