春秋末年,楚王想攻打宋国,命人叫公输般(即鲁班)设计制造了攻城的云梯。墨子是个反对战争的人,他知道这事后,马上从鲁国动身,昼夜兼程地走了十天十夜,好容易才到了楚国的都城。在楚王接见他的时候,他对楚王说:“你如果去打宋国,那是不会得到胜利的。”楚王十分骄傲地说:“公输般是天下手艺最精巧的木匠,他已替我造好了攻城的云梯,我一定能把宋国攻下来。”墨子说:“那么我就试作宋国守城的准备,你叫鲁班来攻,看他攻得进不?”于是公输般攻,墨子守,连攻九次,墨子皆胜。然后公输般又作守城的准备,墨子来攻,公输般又输了九次。但是公输般并不认输,他说:“我已知道对付你的办法了,只是我不想说出来。”墨子也说:“我也知道你将用什么办法来对付我,只是我不愿说罢了。”楚王故作不解地问墨子道:“先生理解公输般的意思吗?”墨子正气凛然地说:“我当然理解:那就是把我杀掉!他以为这样做宋国就无人守城了,就可一举攻下宋国,不过,我早已经叫我的学生禽滑厘等三百多人运载着我的守城器械到宋国去了。他们正在宋国的城上等待着你们呢!你就是把我杀了,也挽救不了你们的失败。”鲁班站在一旁,十分尴尬。接着,墨子又严肃而高声地说:“你们到底怎么办?”楚王叹了一口气道:“好吧,我们取消攻打宋国的计划。”这时墨子才带着胜利的微笑,辞别楚王而去。

后来人们把墨子的守城规则称为“墨守城规”。人们又将“墨守城规”说成“墨守成规”或“墨守陈规”,用来表示思想保守,坚持按老规矩办事,不肯改变。